Class: Legion::Workflow::Manifest
- Inherits:
-
Object
- Object
- Legion::Workflow::Manifest
- Defined in:
- lib/legion/workflow/manifest.rb
Instance Attribute Summary collapse
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#relationships ⇒ Object
readonly
Returns the value of attribute relationships.
-
#requires ⇒ Object
readonly
Returns the value of attribute requires.
-
#settings ⇒ Object
readonly
Returns the value of attribute settings.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Instance Method Summary collapse
- #errors ⇒ Object
-
#initialize(path:) ⇒ Manifest
constructor
A new instance of Manifest.
- #valid? ⇒ Boolean
Constructor Details
#initialize(path:) ⇒ Manifest
Returns a new instance of Manifest.
10 11 12 13 14 15 16 17 18 |
# File 'lib/legion/workflow/manifest.rb', line 10 def initialize(path:) raw = YAML.safe_load_file(path, symbolize_names: true) @name = raw[:name] @version = raw[:version] @description = raw[:description] @requires = raw[:requires] || [] @relationships = parse_relationships(raw[:relationships] || []) @settings = raw[:settings] || {} end |
Instance Attribute Details
#description ⇒ Object (readonly)
Returns the value of attribute description.
8 9 10 |
# File 'lib/legion/workflow/manifest.rb', line 8 def description @description end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
8 9 10 |
# File 'lib/legion/workflow/manifest.rb', line 8 def name @name end |
#relationships ⇒ Object (readonly)
Returns the value of attribute relationships.
8 9 10 |
# File 'lib/legion/workflow/manifest.rb', line 8 def relationships @relationships end |
#requires ⇒ Object (readonly)
Returns the value of attribute requires.
8 9 10 |
# File 'lib/legion/workflow/manifest.rb', line 8 def requires @requires end |
#settings ⇒ Object (readonly)
Returns the value of attribute settings.
8 9 10 |
# File 'lib/legion/workflow/manifest.rb', line 8 def settings @settings end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
8 9 10 |
# File 'lib/legion/workflow/manifest.rb', line 8 def version @version end |
Instance Method Details
#errors ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/legion/workflow/manifest.rb', line 24 def errors errs = [] errs << 'name is required' unless name errs << 'at least one relationship is required' if relationships.empty? relationships.each_with_index do |rel, i| errs << "relationship #{i}: trigger is required" unless rel[:trigger] errs << "relationship #{i}: action is required" unless rel[:action] %i[trigger action].each do |key| next unless rel[key] %i[extension runner function].each do |field| errs << "relationship #{i}: #{key}.#{field} is required" unless rel[key][field] end end end errs end |
#valid? ⇒ Boolean
20 21 22 |
# File 'lib/legion/workflow/manifest.rb', line 20 def valid? errors.empty? end |