class NxtStateMachine::Transition::Proxy

Attributes

context[R]
event[R]
proxy[R]
state_machine[R]
transition[R]

Public Class Methods

new(event, state_machine, transition, context) click to toggle source
# File lib/nxt_state_machine/transition/proxy.rb, line 3
def initialize(event, state_machine, transition, context)
  @event = event
  @transition = transition
  @state_machine = state_machine
  @context = context
end

Public Instance Methods

call(&block) click to toggle source
# File lib/nxt_state_machine/transition/proxy.rb, line 10
def call(&block)
  proxy = if block.arity == 1
    Proc.new do
      block.call(transition.block)
    end
  else
    block
  end

  around_callback_chain(proxy).call
end

Private Instance Methods

around_callback_chain(proxy) click to toggle source
# File lib/nxt_state_machine/transition/proxy.rb, line 24
def around_callback_chain(proxy)
  @around_callback_chain ||= Transition::AroundCallbackChain.new(transition, context, state_machine).build(proxy)
end