Class: RedisRpc::Callback

Inherits:
Object
  • Object
show all
Defined in:
lib/redis_rpc/callback.rb

Instance Method Summary collapse

Constructor Details

#initialize(logger) ⇒ Callback

Returns a new instance of Callback.



7
8
9
10
# File 'lib/redis_rpc/callback.rb', line 7

def initialize(logger)
  @logger = logger
  @funs = {}
end

Instance Method Details

#exec_callback(args) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/redis_rpc/callback.rb', line 12

def exec_callback(args)
  begin
    # {uuid: uuid, _method: method, result: result, error: error}
    callback = @funs.delete args[:uuid]
    if !callback.nil?
      callback.call(args[:error].nil? ? nil : FunctionCallbackError.new(args[:error]), args[:result])
      true
    end
  rescue Exception => e
    @logger.error(e)
  end
end

#push(uuid, callback) ⇒ Object



25
26
27
# File 'lib/redis_rpc/callback.rb', line 25

def push(uuid, callback)
  @funs[uuid] = callback
end