Class: Workflow::Event
- Inherits:
-
Object
- Object
- Workflow::Event
- Defined in:
- lib/workflow/event.rb
Instance Attribute Summary collapse
-
#action ⇒ Object
Returns the value of attribute action.
-
#condition ⇒ Object
Returns the value of attribute condition.
-
#meta ⇒ Object
Returns the value of attribute meta.
-
#name ⇒ Object
Returns the value of attribute name.
-
#transitions_to ⇒ Object
Returns the value of attribute transitions_to.
Instance Method Summary collapse
- #condition_applicable?(object) ⇒ Boolean
- #draw(graph, from_state) ⇒ Object
-
#initialize(name, transitions_to, condition = nil, meta = {}, &action) ⇒ Event
constructor
A new instance of Event.
- #to_s ⇒ Object
Constructor Details
#initialize(name, transitions_to, condition = nil, meta = {}, &action) ⇒ Event
Returns a new instance of Event.
6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/workflow/event.rb', line 6 def initialize(name, transitions_to, condition = nil, = {}, &action) @name = name @transitions_to = transitions_to.to_sym @meta = @action = action @condition = if condition.nil? || condition.is_a?(Symbol) || condition.respond_to?(:call) condition else raise TypeError, 'condition must be nil, an instance method name symbol or a callable (eg. a proc or lambda)' end end |
Instance Attribute Details
#action ⇒ Object
Returns the value of attribute action.
4 5 6 |
# File 'lib/workflow/event.rb', line 4 def action @action end |
#condition ⇒ Object
Returns the value of attribute condition.
4 5 6 |
# File 'lib/workflow/event.rb', line 4 def condition @condition end |
#meta ⇒ Object
Returns the value of attribute meta.
4 5 6 |
# File 'lib/workflow/event.rb', line 4 def @meta end |
#name ⇒ Object
Returns the value of attribute name.
4 5 6 |
# File 'lib/workflow/event.rb', line 4 def name @name end |
#transitions_to ⇒ Object
Returns the value of attribute transitions_to.
4 5 6 |
# File 'lib/workflow/event.rb', line 4 def transitions_to @transitions_to end |
Instance Method Details
#condition_applicable?(object) ⇒ Boolean
18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/workflow/event.rb', line 18 def condition_applicable?(object) if condition if condition.is_a?(Symbol) object.send(condition) else condition.call(object) end else true end end |
#draw(graph, from_state) ⇒ Object
30 31 32 |
# File 'lib/workflow/event.rb', line 30 def draw(graph, from_state) graph.add_edges(from_state.name.to_s, transitions_to.to_s, .merge(:label => to_s)) end |
#to_s ⇒ Object
34 35 36 |
# File 'lib/workflow/event.rb', line 34 def to_s @name.to_s end |