Module: Textus::Surface::Dispatch

Defined in:
lib/textus/surface/dispatch.rb

Class Method Summary collapse

Class Method Details

.call(session, verb_name, raw_args = nil, **bound) ⇒ Object



6
7
8
9
10
11
12
13
14
# File 'lib/textus/surface/dispatch.rb', line 6

def call(session, verb_name, raw_args = nil, **bound)
  if raw_args
    spec = Textus::Protocol::VerbRegistry.for(verb_name.to_sym)
    raise Textus::UsageError.new("unknown verb: #{verb_name}") unless spec

    bound = Textus::Protocol::Binder.inputs_from_wire(spec, raw_args)
  end
  session.public_send(verb_name.to_sym, **bound)
end