class NxtStateMachine::Transition::AroundCallbackChain
Attributes
context[R]
state_machine[R]
transition[R]
Public Class Methods
new(transition, context, state_machine)
click to toggle source
# File lib/nxt_state_machine/transition/around_callback_chain.rb, line 4 def initialize(transition, context, state_machine) @transition = transition @context = context @state_machine = state_machine end
Public Instance Methods
build(proxy)
click to toggle source
# File lib/nxt_state_machine/transition/around_callback_chain.rb, line 10 def build(proxy) return proxy unless callbacks.any? callbacks.map { |c| Callable.new(c).bind(context) }.reverse.inject(proxy) do |previous, callback| -> { callback.call(previous, transition) } end end
Private Instance Methods
callbacks()
click to toggle source
# File lib/nxt_state_machine/transition/around_callback_chain.rb, line 20 def callbacks @callbacks ||= state_machine.callbacks.resolve!(transition).kind(:around) end