Sha256: df759520cab99fe84c618dfc174f7717500688e49dfc50804520791a4e09bd4f

Contents?: true

Size: 1.08 KB

Versions: 10

Compression:

Stored size: 1.08 KB

Contents

class Gateway < PaymentMethod
	delegate_belongs_to :provider, :authorize, :purchase, :capture, :void, :credit

	validates :name, :type, :presence => true

  preference :server, :string, :default => 'test'
  preference :test_mode, :boolean, :default => true

  def payment_source_class
    Creditcard
  end

  # instantiates the selected gateway and configures with the options stored in the database
  def self.current
    super
	end

  def provider
    gateway_options = options
    gateway_options.delete :login if gateway_options.has_key?(:login) and gateway_options[:login].nil?
    ActiveMerchant::Billing::Base.gateway_mode = gateway_options[:server].to_sym
    @provider ||= provider_class.new(gateway_options)
  end

	def options
    options_hash = {}
    self.preferences.each do |key,value|
      options_hash[key.to_sym] = value
    end
    options_hash
	end

	def method_missing(method, *args)
	 	if @provider.nil? || !@provider.respond_to?(method)
			super
		else
      provider.send(method)
		end
	end

	def payment_profiles_supported?
	  false
  end

  def method_type
    "gateway"
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
spree_core-0.70.7 app/models/gateway.rb
spree_core-0.70.6 app/models/gateway.rb
spree_core-0.70.5 app/models/gateway.rb
spree_core-0.70.4 app/models/gateway.rb
spree_core-0.70.3 app/models/gateway.rb
spree_core-0.70.2 app/models/gateway.rb
spree_core-0.70.1 app/models/gateway.rb
spree_core-0.70.0 app/models/gateway.rb
spree_core-0.70.0.rc2 app/models/gateway.rb
spree_core-0.70.RC1 app/models/gateway.rb