Sha256: b28ed0c5d3075080b47f55dac7bef6135a2a27bf1fe6a059455122106b6a5d1f
Contents?: true
Size: 1.47 KB
Versions: 1
Compression:
Stored size: 1.47 KB
Contents
module Killbill module Plugin module ActiveMerchant require 'active_merchant' class Gateway def self.wrap(gateway_builder, logger, config) ::ActiveMerchant::Billing::Gateway.logger = logger if config[:test] ::ActiveMerchant::Billing::Base.mode = :test end if config[:log_file] ::ActiveMerchant::Billing::Gateway.wiredump_device = File.open(config[:log_file], 'w') ::ActiveMerchant::Billing::Gateway.wiredump_device.sync = true end Gateway.new(config, gateway_builder.call(config)) end attr_reader :config def initialize(config, am_gateway) @config = config @gateway = am_gateway end # Unfortunate name... def capture(money, authorization, options = {}) method_missing(:capture, money, authorization, options) end def method_missing(m, *args, &block) # The options hash should be the last argument, iterate through all to be safe args.reverse.each do |arg| if arg.respond_to?(:has_key?) && arg.has_key?(:skip_gw) return ::ActiveMerchant::Billing::Response.new(true, 'Skipped Gateway call') end end @gateway.send(m, *args, &block) end def respond_to?(method, include_private=false) @gateway.respond_to?(method, include_private) || super end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
killbill-3.1.10 | lib/killbill/helpers/active_merchant/gateway.rb |