lib/active_merchant/common/connection.rb in bitfluent-activemerchant-1.5.1.1 vs lib/active_merchant/common/connection.rb in bitfluent-activemerchant-1.15.1

- old
+ new

@@ -39,17 +39,19 @@ attr_accessor :pem attr_accessor :pem_password attr_accessor :wiredump_device attr_accessor :logger attr_accessor :tag + attr_accessor :ignore_http_status def initialize(endpoint) @endpoint = endpoint.is_a?(URI) ? endpoint : URI.parse(endpoint) @open_timeout = OPEN_TIMEOUT @read_timeout = READ_TIMEOUT @retry_safe = RETRY_SAFE @verify_peer = VERIFY_PEER + @ignore_http_status = false end def request(method, body, headers = {}) retry_exceptions do begin @@ -69,13 +71,12 @@ raise ArgumentError, "Unsupported request method #{method.to_s.upcase}" end end info "--> %d %s (%d %.4fs)" % [result.code, result.message, result.body ? result.body.length : 0, realtime], tag - response = handle_response(result) - debug response - response + debug result.body + result rescue EOFError => e raise ConnectionError, "The remote server dropped the connection" rescue Errno::ECONNRESET => e raise ConnectionError, "The remote server reset the connection" rescue Errno::ECONNREFUSED => e @@ -146,15 +147,19 @@ raise end end def handle_response(response) - case response.code.to_i - when 200...300 - response.body + if @ignore_http_status then + return response.body else - raise ResponseError.new(response) + case response.code.to_i + when 200...300 + response.body + else + raise ResponseError.new(response) + end end end def debug(message, tag = nil) log(:debug, message, tag) @@ -167,6 +172,6 @@ def log(level, message, tag) message = "[#{tag}] #{message}" if tag logger.send(level, message) if logger end end -end \ No newline at end of file +end