Sha256: 14cb87a248a1d718a0048e21400e9bd808ae89d04bbf6dfb9554d51b36e796b2
Contents?: true
Size: 641 Bytes
Versions: 8
Compression:
Stored size: 641 Bytes
Contents
module NxtStateMachine class Transition::AroundCallbackChain def initialize(transition, context, state_machine) @transition = transition @context = context @state_machine = state_machine end 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 def callbacks @callbacks ||= state_machine.callbacks.resolve(transition).kind(:around) end attr_reader :transition, :context, :state_machine end end
Version data entries
8 entries across 8 versions & 1 rubygems