Sha256: a2e54eba4184baa7f7527bb96b2f361815a4307dc448e1d35d4b536b27ee3e32
Contents?: true
Size: 559 Bytes
Versions: 2
Compression:
Stored size: 559 Bytes
Contents
class MessageRouter class Context def initialize(context_proc, &block) @block = block @context_proc = normalize_context_proc(context_proc) end def call(router) if args = context_proc.call(router) klass = Class.new(router.class) klass.instance_exec(*args, &block) klass.dispatch(router.message) end end private attr_reader :block, :context_proc def normalize_context_proc(proc) proc.is_a?(Proc) ? proc : Proc.new{|instance| instance.send(proc) } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
message_router-0.0.2 | lib/message_router/context.rb |
message_router-0.0.1 | lib/message_router/context.rb |