class ExMachina::Event::Transition

Attributes

do_after[R]
do_before[R]
do_error[R]
do_failure[R]
do_if[R]
do_success[R]
do_unless[R]
from[R]
to[R]

Public Class Methods

new(**options) click to toggle source
# File lib/ex_machina/event/transition.rb, line 8
def initialize(**options)
  @from    = Array(options.fetch(:from)).map { |status| normalize(status) }
  @to      = normalize(options.fetch(:to))

  # optional args
  @do_if      = options[:if]
  @do_unless  = options[:unless]
  @do_before  = options[:before]
  @do_after   = options[:after]
  @do_success = options[:success]
  @do_failure = options[:failure]
  @do_error   = options[:error]
end

Public Instance Methods

conditional?() click to toggle source
# File lib/ex_machina/event/transition.rb, line 30
def conditional?
  !do_if.nil? || !do_unless.nil?
end
from?(status) click to toggle source
# File lib/ex_machina/event/transition.rb, line 22
def from?(status)
  from.include?(normalize(status))
end
to?(status) click to toggle source
# File lib/ex_machina/event/transition.rb, line 26
def to?(status)
  Array(to).include?(normalize(status))
end

Private Instance Methods

normalize(status) click to toggle source
# File lib/ex_machina/event/transition.rb, line 36
def normalize(status)
  status.to_s.to_sym
end