vaulted_billing 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,6 @@
1
1
  module VaultedBilling
2
2
  autoload :Version, 'vaulted_billing/version'
3
+ autoload :Configuration, 'vaulted_billing/configuration'
3
4
  autoload :Gateway, 'vaulted_billing/gateway'
4
5
  autoload :Gateways, 'vaulted_billing/gateways'
5
6
  autoload :Customer, 'vaulted_billing/customer'
@@ -7,24 +8,32 @@ module VaultedBilling
7
8
  autoload :Transaction, 'vaulted_billing/transaction'
8
9
  autoload :HttpsInterface, 'vaulted_billing/https_interface'
9
10
 
10
- mattr_accessor :logger
11
+ mattr_accessor :config
11
12
 
12
- Dir[File.expand_path(File.join(File.dirname(__FILE__), 'vaulted_billing', 'core_ext', '**', '*.rb'))].each do |extension|
13
+ Dir[File.expand_path('../vaulted_billing/core_ext/**/*.rb', __FILE__)].each do |extension|
13
14
  require extension
14
15
  end
15
16
 
16
17
  ##
17
18
  # Return the matching gateway for the name provided.
18
19
  #
19
- # * <tt>bogus</tt>:: BogusGateway - always successful, does nothing.
20
- # * <tt>nmi_customer_vault</tt>:: NMICustomerVaultGateway
20
+ # * <tt>:bogus</tt>:: Bogus - always successful, does nothing.
21
+ # * <tt>:nmi_customer_vault</tt>:: NmiCustomerVault
22
+ # * <tt>:authorize_net_cim</tt>:: AuthorizeNetCim
21
23
  #
22
24
  def self.gateway(name)
23
25
  Gateways.const_get(name.to_s.camelize)
24
26
  end
25
27
 
26
- def self.logger?
27
- @@logger.present?
28
+ def self.config
29
+ @@config ||= VaultedBilling::Configuration.new
28
30
  end
29
31
 
32
+ def self.set_config(options = {})
33
+ @@config = VaultedBilling::Configuration.new(options)
34
+ end
35
+
36
+ def self.logger; config.logger; end
37
+ def self.logger=(input); config.logger = input; end
38
+ def self.logger?; config.logger?; end
30
39
  end
@@ -0,0 +1,40 @@
1
+ module VaultedBilling
2
+ class Configuration
3
+ class GatewayConfiguration #:nodoc:
4
+ attr_accessor :username, :password, :test_mode
5
+
6
+ def initialize(options = {}, &block)
7
+ options = options.with_indifferent_access
8
+ self.username = options[:username]
9
+ self.password = options[:password]
10
+ self.test_mode = options.has_key?(:test_mode) ? options[:test_mode] : true
11
+ yield(self) if block_given?
12
+ end
13
+ end
14
+
15
+ attr_accessor :logger
16
+ alias :logger? :logger
17
+
18
+ attr_accessor :test_mode
19
+
20
+ def initialize(options = {})
21
+ options = options.with_indifferent_access
22
+ self.test_mode = options.has_key?(:test_mode) ? options[:test_mode] : true
23
+ @_authorize_net_cim = GatewayConfiguration.new(options[:authorize_net_cim]) if options[:authorize_net_cim]
24
+ @_nmi_customer_vault = GatewayConfiguration.new(options[:nmi_customer_vault]) if options[:nmi_customer_vault]
25
+ @_bogus = GatewayConfiguration.new(options[:bogus]) if options[:bogus]
26
+ end
27
+
28
+ def authorize_net_cim
29
+ @_authorize_net_cim ||= GatewayConfiguration.new
30
+ end
31
+
32
+ def nmi_customer_vault
33
+ @_nmi_customer_vault ||= GatewayConfiguration.new
34
+ end
35
+
36
+ def bogus
37
+ @_bogus ||= GatewayConfiguration.new
38
+ end
39
+ end
40
+ end
@@ -16,9 +16,9 @@ module VaultedBilling
16
16
  self.ssl_pem = File.read(File.expand_path(File.join(File.dirname(__FILE__), '..', 'certificate_authorities', 'entrust.pem')))
17
17
 
18
18
  options = HashWithIndifferentAccess.new(options)
19
- @login = options[:username]
20
- @password = options[:password]
21
- self.use_test_uri = options[:test]
19
+ @login = options[:username] || VaultedBilling.config.authorize_net_cim.username
20
+ @password = options[:password] || VaultedBilling.config.authorize_net_cim.password
21
+ self.use_test_uri = options.has_key?(:test) ? options[:test] : (VaultedBilling.config.authorize_net_cim.test_mode || VaultedBilling.config.test_mode)
22
22
  end
23
23
 
24
24
  def add_customer(customer)
@@ -20,9 +20,9 @@ module VaultedBilling
20
20
  self.ssl_pem = File.read(File.expand_path(File.join(File.dirname(__FILE__), '..', 'certificate_authorities', 'verisign.pem')))
21
21
 
22
22
  options = HashWithIndifferentAccess.new(options)
23
- @username = options[:username]
24
- @password = options[:password]
25
- self.use_test_uri = options[:test]
23
+ @username = options[:username] || VaultedBilling.config.nmi_customer_vault.username
24
+ @password = options[:password] || VaultedBilling.config.nmi_customer_vault.password
25
+ self.use_test_uri = options.has_key?(:test) ? options[:test] : (VaultedBilling.config.nmi_customer_vault.test_mode || VaultedBilling.config.test_mode)
26
26
  end
27
27
 
28
28
  ##
@@ -1,3 +1,3 @@
1
1
  module VaultedBilling
2
- Version = '0.0.11'
2
+ Version = '0.0.12'
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vaulted_billing
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 7
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 11
10
- version: 0.0.11
9
+ - 12
10
+ version: 0.0.12
11
11
  platform: ruby
12
12
  authors:
13
13
  - Nathaniel Bibler
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-17 00:00:00 -05:00
18
+ date: 2010-12-18 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -157,6 +157,7 @@ extra_rdoc_files: []
157
157
  files:
158
158
  - lib/vaulted_billing/certificate_authorities/entrust.pem
159
159
  - lib/vaulted_billing/certificate_authorities/verisign.pem
160
+ - lib/vaulted_billing/configuration.rb
160
161
  - lib/vaulted_billing/core_ext/hash.rb
161
162
  - lib/vaulted_billing/credit_card.rb
162
163
  - lib/vaulted_billing/customer.rb