Class: GatewaySupport

Inherits:
Object
  • Object
show all
Includes:
ActiveMerchant::Billing
Defined in:
lib/support/gateway_support.rb

Overview

:nodoc:

Constant Summary collapse

ACTIONS =
%i[purchase authorize capture void credit recurring]

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ActiveMerchant::Billing

#underscore

Constructor Details

#initializeGatewaySupport

Returns a new instance of GatewaySupport.


12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/support/gateway_support.rb', line 12

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

Instance Attribute Details

#gatewaysObject (readonly)

Returns the value of attribute gateways


10
11
12
# File 'lib/support/gateway_support.rb', line 10

def gateways
  @gateways
end

Instance Method Details

#each_gatewayObject


26
27
28
# File 'lib/support/gateway_support.rb', line 26

def each_gateway
  @gateways.each { |g| yield g }
end

#featuresObject


30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/support/gateway_support.rb', line 30

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

#to_markdownObject


58
59
60
61
62
# File 'lib/support/gateway_support.rb', line 58

def to_markdown
  each_gateway do |g|
    puts %/* [#{g.display_name}](#{g.homepage_url}) - #{g.supported_countries.join(', ')}/
  end
end

#to_rdocObject


46
47
48
49
50
# File 'lib/support/gateway_support.rb', line 46

def to_rdoc
  each_gateway do |g|
    puts "* {#{g.display_name}}[#{g.homepage_url}] - #{g.supported_countries.join(', ')}"
  end
end

#to_sObject


64
65
66
67
68
# File 'lib/support/gateway_support.rb', line 64

def to_s
  each_gateway do |g|
    puts "#{g.display_name} - #{g.homepage_url} [#{g.supported_countries.join(', ')}]"
  end
end

#to_textileObject


52
53
54
55
56
# File 'lib/support/gateway_support.rb', line 52

def to_textile
  each_gateway do |g|
    puts %/ * "#{g.display_name}":#{g.homepage_url} [#{g.supported_countries.join(', ')}]/
  end
end