class RedPack::SimpleHashDispatcher

Public Class Methods

new(dispatch_table, responder) click to toggle source
# File lib/redpack-ruby/method-dispatchers/simple.rb, line 7
def initialize(dispatch_table, responder)
  @dispatch_table = dispatch_table
  @responder = responder
end

Public Instance Methods

dispatch(ctx, method, params) click to toggle source
# File lib/redpack-ruby/method-dispatchers/simple.rb, line 12
def dispatch(ctx, method, params)
  if @dispatch_table.key? method then
    begin
      result = @dispatch_table[method].call(*params)
      @responder.ok(ctx, result)
    rescue
      @responder.fail(ctx, $!)
    end  
  else
    @responder.fail(ctx, "no-such-dispatchable-key: #{method}")
  end  
end