Sha256: 4737c4e4109e9a7cf082bc2739607d47b7e354f401b92aee47430e999a72af26
Contents?: true
Size: 1.73 KB
Versions: 25
Compression:
Stored size: 1.73 KB
Contents
require 'rubygems' require 'active_support' require 'active_merchant' class GatewaySupport #:nodoc: ACTIONS = %i[purchase authorize capture void credit recurring] include ActiveMerchant::Billing attr_reader :gateways def initialize Dir[File.expand_path(File.dirname(__FILE__) + '/../active_merchant/billing/gateways/*.rb')].each do |f| filename = File.basename(f, '.rb') gateway_name = filename + '_gateway' begin ('ActiveMerchant::Billing::' + gateway_name.camelize).constantize rescue NameError puts 'Could not load gateway ' + gateway_name.camelize + ' from ' + f + '.' end end @gateways = Gateway.implementations.sort_by(&:name) @gateways.delete(ActiveMerchant::Billing::BogusGateway) end def each_gateway @gateways.each { |g| yield g } end def features width = 15 print 'Name'.center(width + 20) ACTIONS.each { |f| print f.to_s.capitalize.center(width) } puts each_gateway do |g| print g.display_name.ljust(width + 20) ACTIONS.each do |f| print((g.instance_methods.include?(f.to_s) ? 'Y' : 'N').center(width)) end puts end end def to_rdoc each_gateway do |g| puts "* {#{g.display_name}}[#{g.homepage_url}] - #{g.supported_countries.join(', ')}" end end def to_textile each_gateway do |g| puts %/ * "#{g.display_name}":#{g.homepage_url} [#{g.supported_countries.join(', ')}]/ end end def to_markdown each_gateway do |g| puts %/* [#{g.display_name}](#{g.homepage_url}) - #{g.supported_countries.join(', ')}/ end end def to_s each_gateway do |g| puts "#{g.display_name} - #{g.homepage_url} [#{g.supported_countries.join(', ')}]" end end end
Version data entries
25 entries across 25 versions & 3 rubygems