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.respond_to?(:call) condition else raise TypeError, 'condition must be nil or 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 |
# File 'lib/workflow/event.rb', line 18 def condition_applicable?(object) condition ? condition.call(object) : true end |
#draw(graph, from_state) ⇒ Object
22 23 24 |
# File 'lib/workflow/event.rb', line 22 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
26 27 28 |
# File 'lib/workflow/event.rb', line 26 def to_s @name.to_s end |