module ExMachina::Event::InstanceMethods
Attributes
context[R]
Public Class Methods
new(context)
click to toggle source
# File lib/ex_machina/event.rb, line 39 def initialize(context) @context = context end
Public Instance Methods
can_fire?()
click to toggle source
# File lib/ex_machina/event.rb, line 88 def can_fire? validate valid? end
fire()
click to toggle source
# File lib/ex_machina/event.rb, line 66 def fire validate return false unless can_fire? result = false within_transaction do transitions.each do |transition| runner = Execution.new(self, transition) runner.run result = runner.current break if runner.success? end end result end
fire!()
click to toggle source
# File lib/ex_machina/event.rb, line 83 def fire! raise error_messages unless can_fire? fire end
perform()
click to toggle source
Override this method on event implementation
# File lib/ex_machina/event.rb, line 62 def perform true end
status()
click to toggle source
The context current status
# File lib/ex_machina/event.rb, line 51 def status context.status end
transit(execution)
click to toggle source
Called on event success
# File lib/ex_machina/event.rb, line 56 def transit(execution) context.status = execution.current.to_s persist(context) end
transitions()
click to toggle source
Available transitions
# File lib/ex_machina/event.rb, line 44 def transitions self.class .transitions .select { |transition| transition.from?(status) } end