Sha256: 58c25aa0c2bbdefd4709bfd9fe69c5508571fe8d056168f29b2d69a6e8891437
Contents?: true
Size: 642 Bytes
Versions: 4
Compression:
Stored size: 642 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
4 entries across 4 versions & 1 rubygems