class ActiveMerchant::Billing::MultiResponse
Attributes
primary_response[R]
responses[R]
Public Class Methods
new(use_first_response = false)
click to toggle source
# File lib/active_merchant/billing/response.rb, line 55 def initialize(use_first_response = false) @responses = [] @use_first_response = use_first_response @primary_response = nil end
run(use_first_response = false, &block)
click to toggle source
# File lib/active_merchant/billing/response.rb, line 49 def self.run(use_first_response = false, &block) new(use_first_response).tap(&block) end
Public Instance Methods
<<(response)
click to toggle source
# File lib/active_merchant/billing/response.rb, line 76 def <<(response) if response.is_a?(MultiResponse) response.responses.each { |r| @responses << r } else @responses << response end end
avs_result()
click to toggle source
# File lib/active_merchant/billing/response.rb, line 88 def avs_result return @primary_response.try(:avs_result) if @use_first_response result = responses.reverse.find { |r| r.avs_result['code'].present? } result.try(:avs_result) || responses.last.try(:avs_result) end
cvv_result()
click to toggle source
# File lib/active_merchant/billing/response.rb, line 95 def cvv_result return @primary_response.try(:cvv_result) if @use_first_response result = responses.reverse.find { |r| r.cvv_result['code'].present? } result.try(:cvv_result) || responses.last.try(:cvv_result) end
process(ignore_result = false) { || ... }
click to toggle source
# File lib/active_merchant/billing/response.rb, line 61 def process(ignore_result = false) return unless success? response = yield self << response unless ignore_result if @use_first_response && response.success? @primary_response ||= response else @primary_response = response end end end
success?()
click to toggle source
# File lib/active_merchant/billing/response.rb, line 84 def success? (primary_response ? primary_response.success? : true) end