Method: AbstractThriftClient#initialize
- Defined in:
- lib/thrift_client/abstract_thrift_client.rb
#initialize(client_class, servers, options = {}) ⇒ AbstractThriftClient
Returns a new instance of AbstractThriftClient.
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/thrift_client/abstract_thrift_client.rb', line 49 def initialize(client_class, servers, = {}) @options = DEFAULTS.merge() @options[:server_retry_period] ||= 0 @client_class = client_class @server_list = Array(servers).collect do |s| Server.new(s, @client_class, @options) end.sort_by { rand } @current_server = @server_list.first @callbacks = {} @client_methods = [] @client_class.instance_methods.each do |method_name| if method_name != 'send_message' && method_name =~ /^send_(.*)$/ instance_eval("def #{$1}(*args); handled_proxy(:'#{$1}', *args); end", __FILE__, __LINE__) @client_methods << $1 end end @request_count = 0 self.class.create_wrapped_exception_classes(@client_class, @options[:wrapped_exception_classes]) end |