我如何使用thrift_client库钩子功能?

时间:2012-11-06 09:32:08

标签: ruby-on-rails ruby thrift

我正在使用thrift_client 0.8.1 library。它支持一些钩子接口。

client = ThriftClient.new(FooService, host)

client.add_callback :before_method do |*args|
  ActionController::Base.logger.info instance_eval("@current_server")
  logger.info args.inspect
end

client.add_callback :post_connect do |client|
  logger.info "A thrift server connection has been made<#{client.current_server}>"
end

每次调用方法时,我都想写日志服务器的信息。 所以我安装了一个:before method钩子,但我认为instance_eval("@current_server")不能像我预期的那样工作。 @current_serverThriftClient类中的实例变量。有什么问题?

1 个答案:

答案 0 :(得分:0)

我不相信在ThriftClient实例上下文中调用:before_method回调。这是调用:before_method:

  def do_callbacks(callback_type_sym, *args)
    return unless @callbacks[callback_type_sym]
    @callbacks[callback_type_sym].each do |callback|
      callback.call(*args)
    end
  end

使用方法名称调用before_method CB。对于:post_connect,它是客户端实例。