class OpenRTB::Client
Attributes
logger[W]
max_concurrency[W]
proxy[RW]
user_agent[W]
version[W]
Public Class Methods
new() { |self| ... }
click to toggle source
# File lib/openrtb/client.rb, line 58 def initialize yield(self) if block_given? end
Public Instance Methods
execute(&block)
click to toggle source
# File lib/openrtb/client.rb, line 78 def execute(&block) hydra = Typhoeus::Hydra.new(max_concurrency: max_concurrency) queue = Queue.new(self, hydra) block.call(queue) hydra.run handle_responses(queue.responses) end
logger()
click to toggle source
# File lib/openrtb/client.rb, line 62 def logger @logger ||= OpenRTB::NullObject.new end
max_concurrency()
click to toggle source
# File lib/openrtb/client.rb, line 66 def max_concurrency @max_concurrency ||= 2 end
user_agent()
click to toggle source
# File lib/openrtb/client.rb, line 70 def user_agent @user_agent ||= "OpenRTB Ruby Client #{OpenRTB::VERSION}" end
version()
click to toggle source
# File lib/openrtb/client.rb, line 74 def version @version ||= '2.1' end
Private Instance Methods
handle_responses(responses)
click to toggle source
# File lib/openrtb/client.rb, line 89 def handle_responses(responses) result = [] responses.each do |res| begin logger.debug({ effective_url: res.effective_url, primary_ip: res.primary_ip, response_code: res.response_code, response_headers: res.response_headers, namelookup_time: res.namelookup_time, connect_time: res.connect_time, app_connect_time: res.app_connect_time, pretransfer_time: res.pretransfer_time, start_transfer_time: res.start_transfer_time, total_time: res.total_time, body: res.body}) result.push OpenRTB::Response.new(MultiJson.load(res.body)) if res.success? rescue MultiJson::ParseError => e logger.error(e.cause) end end result end