Class: WorkflowTemplate::Definer::HasActions::Description

Inherits:
Object
  • Object
show all
Defined in:
lib/workflow_template/definer/has_actions/description.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(workflow) ⇒ Description

Returns a new instance of Description.



15
16
17
18
# File 'lib/workflow_template/definer/has_actions/description.rb', line 15

def initialize(workflow)
  @workflow = workflow
  freeze
end

Instance Attribute Details

#workflowObject (readonly)

Returns the value of attribute workflow.



13
14
15
# File 'lib/workflow_template/definer/has_actions/description.rb', line 13

def workflow
  @workflow
end

Class Method Details

.describe(workflow) ⇒ Object



24
25
26
# File 'lib/workflow_template/definer/has_actions/description.rb', line 24

def self.describe(workflow)
  describe_wrapper_actions(workflow.actions.wrapper, workflow.actions.simple)
end

.describe_actions(actions) ⇒ Object



42
43
44
# File 'lib/workflow_template/definer/has_actions/description.rb', line 42

def self.describe_actions(actions)
  actions.map(&:describe)
end

.describe_wrapper_action(action, rest, simple_actions) ⇒ Object



37
38
39
40
# File 'lib/workflow_template/definer/has_actions/description.rb', line 37

def self.describe_wrapper_action(action, rest, simple_actions)
  nested = describe_wrapper_actions(rest, simple_actions)
  action.describe(nested)
end

.describe_wrapper_actions(wrapper_actions, simple_actions) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/workflow_template/definer/has_actions/description.rb', line 28

def self.describe_wrapper_actions(wrapper_actions, simple_actions)
  action, *rest = wrapper_actions
  if action.nil?
    describe_actions(simple_actions)
  else
    [describe_wrapper_action(action, rest, simple_actions)]
  end
end

Instance Method Details

#format(level:) ⇒ Object



20
21
22
# File 'lib/workflow_template/definer/has_actions/description.rb', line 20

def format(level:)
  self.class.describe(workflow).flat_map { |action| action.format(level: level) }
end