killbill 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +12 -3
  3. data/Jarfile +8 -7
  4. data/Jarfile.lock +9 -8
  5. data/README.md +131 -108
  6. data/gen_config/api.conf +1 -1
  7. data/gen_config/plugin_api.conf +7 -6
  8. data/generators/active_merchant/templates/Jarfile.rb +7 -7
  9. data/generators/active_merchant/templates/plugin.gemspec.rb +2 -3
  10. data/killbill.gemspec +5 -2
  11. data/lib/killbill.rb +26 -22
  12. data/lib/killbill/gen/api/admin_payment_api.rb +76 -0
  13. data/lib/killbill/gen/api/payment_api.rb +82 -0
  14. data/lib/killbill/gen/api/payment_gateway_api.rb +75 -0
  15. data/lib/killbill/gen/api/require_gen.rb +1 -0
  16. data/lib/killbill/gen/plugin-api/catalog_plugin_api.rb +76 -0
  17. data/lib/killbill/gen/plugin-api/on_failure_payment_routing_result.rb +65 -0
  18. data/lib/killbill/gen/plugin-api/on_success_payment_routing_result.rb +53 -0
  19. data/lib/killbill/gen/plugin-api/payment_routing_api_exception.rb +51 -0
  20. data/lib/killbill/gen/plugin-api/payment_routing_context.rb +246 -0
  21. data/lib/killbill/gen/plugin-api/payment_routing_plugin_api.rb +138 -0
  22. data/lib/killbill/gen/plugin-api/prior_payment_routing_result.rb +107 -0
  23. data/lib/killbill/gen/plugin-api/require_gen.rb +9 -0
  24. data/lib/killbill/gen/plugin-api/standalone_plugin_catalog.rb +174 -0
  25. data/lib/killbill/gen/plugin-api/versioned_plugin_catalog.rb +83 -0
  26. data/lib/killbill/helpers/active_merchant.rb +6 -4
  27. data/lib/killbill/helpers/active_merchant/active_record/models/response.rb +16 -4
  28. data/lib/killbill/helpers/active_merchant/configuration.rb +7 -2
  29. data/lib/killbill/helpers/active_merchant/gateway.rb +76 -5
  30. data/lib/killbill/helpers/active_merchant/payment_plugin.rb +12 -8
  31. data/lib/killbill/helpers/catalog.rb +15 -0
  32. data/lib/killbill/payment_control.rb +23 -0
  33. data/lib/killbill/version.rb +3 -0
  34. data/spec/killbill/helpers/configuration_spec.rb +18 -4
  35. data/spec/killbill/helpers/payment_plugin_spec.rb +140 -36
  36. data/spec/killbill/helpers/response_spec.rb +1 -1
  37. metadata +49 -5
  38. data/VERSION +0 -1
@@ -0,0 +1,107 @@
1
+ #############################################################################################
2
+ # #
3
+ # Copyright 2010-2013 Ning, Inc. #
4
+ # Copyright 2014 Groupon, Inc. #
5
+ # Copyright 2014 The Billing Project, LLC #
6
+ # #
7
+ # The Billing Project licenses this file to you under the Apache License, version 2.0 #
8
+ # (the "License"); you may not use this file except in compliance with the #
9
+ # License. You may obtain a copy of the License at: #
10
+ # #
11
+ # http://www.apache.org/licenses/LICENSE-2.0 #
12
+ # #
13
+ # Unless required by applicable law or agreed to in writing, software #
14
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT #
15
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the #
16
+ # License for the specific language governing permissions and limitations #
17
+ # under the License. #
18
+ # #
19
+ #############################################################################################
20
+
21
+
22
+ #
23
+ # DO NOT EDIT!!!
24
+ # File automatically generated by killbill-java-parser (git@github.com:killbill/killbill-java-parser.git)
25
+ #
26
+
27
+
28
+ module Killbill
29
+ module Plugin
30
+ module Model
31
+
32
+ java_package 'org.killbill.billing.routing.plugin.api'
33
+ class PriorPaymentRoutingResult
34
+
35
+ include org.killbill.billing.routing.plugin.api.PriorPaymentRoutingResult
36
+
37
+ attr_accessor :is_aborted, :adjusted_amount, :adjusted_currency, :adjusted_payment_method_id, :adjusted_plugin_properties
38
+
39
+ def initialize()
40
+ end
41
+
42
+ def to_java()
43
+ # conversion for is_aborted [type = boolean]
44
+ @is_aborted = @is_aborted.nil? ? java.lang.Boolean.new(false) : java.lang.Boolean.new(@is_aborted)
45
+
46
+ # conversion for adjusted_amount [type = java.math.BigDecimal]
47
+ if @adjusted_amount.nil?
48
+ @adjusted_amount = java.math.BigDecimal::ZERO
49
+ else
50
+ @adjusted_amount = java.math.BigDecimal.new(@adjusted_amount.to_s)
51
+ end
52
+
53
+ # conversion for adjusted_currency [type = org.killbill.billing.catalog.api.Currency]
54
+ @adjusted_currency = Java::org.killbill.billing.catalog.api.Currency.value_of( @adjusted_currency.to_s ) unless @adjusted_currency.nil?
55
+
56
+ # conversion for adjusted_payment_method_id [type = java.util.UUID]
57
+ @adjusted_payment_method_id = java.util.UUID.fromString(@adjusted_payment_method_id.to_s) unless @adjusted_payment_method_id.nil?
58
+
59
+ # conversion for adjusted_plugin_properties [type = java.lang.Iterable]
60
+ tmp = java.util.ArrayList.new
61
+ (@adjusted_plugin_properties || []).each do |m|
62
+ # conversion for m [type = org.killbill.billing.payment.api.PluginProperty]
63
+ m = m.to_java unless m.nil?
64
+ tmp.add(m)
65
+ end
66
+ @adjusted_plugin_properties = tmp
67
+ self
68
+ end
69
+
70
+ def to_ruby(j_obj)
71
+ # conversion for is_aborted [type = boolean]
72
+ @is_aborted = j_obj.is_aborted
73
+ if @is_aborted.nil?
74
+ @is_aborted = false
75
+ else
76
+ tmp_bool = (@is_aborted.java_kind_of? java.lang.Boolean) ? @is_aborted.boolean_value : @is_aborted
77
+ @is_aborted = tmp_bool ? true : false
78
+ end
79
+
80
+ # conversion for adjusted_amount [type = java.math.BigDecimal]
81
+ @adjusted_amount = j_obj.adjusted_amount
82
+ @adjusted_amount = @adjusted_amount.nil? ? 0 : BigDecimal.new(@adjusted_amount.to_s)
83
+
84
+ # conversion for adjusted_currency [type = org.killbill.billing.catalog.api.Currency]
85
+ @adjusted_currency = j_obj.adjusted_currency
86
+ @adjusted_currency = @adjusted_currency.to_s.to_sym unless @adjusted_currency.nil?
87
+
88
+ # conversion for adjusted_payment_method_id [type = java.util.UUID]
89
+ @adjusted_payment_method_id = j_obj.adjusted_payment_method_id
90
+ @adjusted_payment_method_id = @adjusted_payment_method_id.nil? ? nil : @adjusted_payment_method_id.to_s
91
+
92
+ # conversion for adjusted_plugin_properties [type = java.lang.Iterable]
93
+ @adjusted_plugin_properties = j_obj.adjusted_plugin_properties
94
+ tmp = []
95
+ (@adjusted_plugin_properties.nil? ? [] : @adjusted_plugin_properties.iterator).each do |m|
96
+ # conversion for m [type = org.killbill.billing.payment.api.PluginProperty]
97
+ m = Killbill::Plugin::Model::PluginProperty.new.to_ruby(m) unless m.nil?
98
+ tmp << m
99
+ end
100
+ @adjusted_plugin_properties = tmp
101
+ self
102
+ end
103
+
104
+ end
105
+ end
106
+ end
107
+ end
@@ -32,6 +32,15 @@ require 'killbill/gen/plugin-api/ext_bus_event'
32
32
  require 'killbill/gen/plugin-api/notification_plugin_api'
33
33
  require 'killbill/gen/plugin-api/invoice_plugin_api'
34
34
  require 'killbill/gen/plugin-api/currency_plugin_api'
35
+ require 'killbill/gen/plugin-api/on_failure_payment_routing_result'
36
+ require 'killbill/gen/plugin-api/on_success_payment_routing_result'
37
+ require 'killbill/gen/plugin-api/payment_routing_api_exception'
38
+ require 'killbill/gen/plugin-api/payment_routing_context'
39
+ require 'killbill/gen/plugin-api/payment_routing_plugin_api'
40
+ require 'killbill/gen/plugin-api/prior_payment_routing_result'
41
+ require 'killbill/gen/plugin-api/catalog_plugin_api'
42
+ require 'killbill/gen/plugin-api/standalone_plugin_catalog'
43
+ require 'killbill/gen/plugin-api/versioned_plugin_catalog'
35
44
  require 'killbill/gen/plugin-api/gateway_notification'
36
45
  require 'killbill/gen/plugin-api/hosted_payment_page_form_descriptor'
37
46
  require 'killbill/gen/plugin-api/payment_transaction_info_plugin'
@@ -0,0 +1,174 @@
1
+ #############################################################################################
2
+ # #
3
+ # Copyright 2010-2013 Ning, Inc. #
4
+ # Copyright 2014 Groupon, Inc. #
5
+ # Copyright 2014 The Billing Project, LLC #
6
+ # #
7
+ # The Billing Project licenses this file to you under the Apache License, version 2.0 #
8
+ # (the "License"); you may not use this file except in compliance with the #
9
+ # License. You may obtain a copy of the License at: #
10
+ # #
11
+ # http://www.apache.org/licenses/LICENSE-2.0 #
12
+ # #
13
+ # Unless required by applicable law or agreed to in writing, software #
14
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT #
15
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the #
16
+ # License for the specific language governing permissions and limitations #
17
+ # under the License. #
18
+ # #
19
+ #############################################################################################
20
+
21
+
22
+ #
23
+ # DO NOT EDIT!!!
24
+ # File automatically generated by killbill-java-parser (git@github.com:killbill/killbill-java-parser.git)
25
+ #
26
+
27
+
28
+ module Killbill
29
+ module Plugin
30
+ module Model
31
+
32
+ java_package 'org.killbill.billing.catalog.plugin.api'
33
+ class StandalonePluginCatalog
34
+
35
+ include org.killbill.billing.catalog.plugin.api.StandalonePluginCatalog
36
+
37
+ attr_accessor :effective_date, :currencies, :units, :products, :plans, :default_price_list, :children_price_list, :plan_rules
38
+
39
+ def initialize()
40
+ end
41
+
42
+ def to_java()
43
+ # conversion for effective_date [type = org.joda.time.DateTime]
44
+ if !@effective_date.nil?
45
+ @effective_date = (@effective_date.kind_of? Time) ? DateTime.parse(@effective_date.to_s) : @effective_date
46
+ @effective_date = Java::org.joda.time.DateTime.new(@effective_date.to_s, Java::org.joda.time.DateTimeZone::UTC)
47
+ end
48
+
49
+ # conversion for currencies [type = java.lang.Iterable]
50
+ tmp = java.util.ArrayList.new
51
+ (@currencies || []).each do |m|
52
+ # conversion for m [type = org.killbill.billing.catalog.api.Currency]
53
+ m = Java::org.killbill.billing.catalog.api.Currency.value_of( m.to_s ) unless m.nil?
54
+ tmp.add(m)
55
+ end
56
+ @currencies = tmp
57
+
58
+ # conversion for units [type = java.lang.Iterable]
59
+ tmp = java.util.ArrayList.new
60
+ (@units || []).each do |m|
61
+ # conversion for m [type = org.killbill.billing.catalog.api.Unit]
62
+ m = m.to_java unless m.nil?
63
+ tmp.add(m)
64
+ end
65
+ @units = tmp
66
+
67
+ # conversion for products [type = java.lang.Iterable]
68
+ tmp = java.util.ArrayList.new
69
+ (@products || []).each do |m|
70
+ # conversion for m [type = org.killbill.billing.catalog.api.Product]
71
+ m = m.to_java unless m.nil?
72
+ tmp.add(m)
73
+ end
74
+ @products = tmp
75
+
76
+ # conversion for plans [type = java.lang.Iterable]
77
+ tmp = java.util.ArrayList.new
78
+ (@plans || []).each do |m|
79
+ # conversion for m [type = org.killbill.billing.catalog.api.Plan]
80
+ m = m.to_java unless m.nil?
81
+ tmp.add(m)
82
+ end
83
+ @plans = tmp
84
+
85
+ # conversion for default_price_list [type = org.killbill.billing.catalog.api.PriceList]
86
+ @default_price_list = @default_price_list.to_java unless @default_price_list.nil?
87
+
88
+ # conversion for children_price_list [type = java.lang.Iterable]
89
+ tmp = java.util.ArrayList.new
90
+ (@children_price_list || []).each do |m|
91
+ # conversion for m [type = org.killbill.billing.catalog.api.PriceList]
92
+ m = m.to_java unless m.nil?
93
+ tmp.add(m)
94
+ end
95
+ @children_price_list = tmp
96
+
97
+ # conversion for plan_rules [type = org.killbill.billing.catalog.api.rules.PlanRules]
98
+ @plan_rules = @plan_rules.to_java unless @plan_rules.nil?
99
+ self
100
+ end
101
+
102
+ def to_ruby(j_obj)
103
+ # conversion for effective_date [type = org.joda.time.DateTime]
104
+ @effective_date = j_obj.effective_date
105
+ if !@effective_date.nil?
106
+ fmt = Java::org.joda.time.format.ISODateTimeFormat.date_time_no_millis # See https://github.com/killbill/killbill-java-parser/issues/3
107
+ str = fmt.print(@effective_date)
108
+ @effective_date = DateTime.iso8601(str)
109
+ end
110
+
111
+ # conversion for currencies [type = java.lang.Iterable]
112
+ @currencies = j_obj.currencies
113
+ tmp = []
114
+ (@currencies.nil? ? [] : @currencies.iterator).each do |m|
115
+ # conversion for m [type = org.killbill.billing.catalog.api.Currency]
116
+ m = m.to_s.to_sym unless m.nil?
117
+ tmp << m
118
+ end
119
+ @currencies = tmp
120
+
121
+ # conversion for units [type = java.lang.Iterable]
122
+ @units = j_obj.units
123
+ tmp = []
124
+ (@units.nil? ? [] : @units.iterator).each do |m|
125
+ # conversion for m [type = org.killbill.billing.catalog.api.Unit]
126
+ m = Killbill::Plugin::Model::Unit.new.to_ruby(m) unless m.nil?
127
+ tmp << m
128
+ end
129
+ @units = tmp
130
+
131
+ # conversion for products [type = java.lang.Iterable]
132
+ @products = j_obj.products
133
+ tmp = []
134
+ (@products.nil? ? [] : @products.iterator).each do |m|
135
+ # conversion for m [type = org.killbill.billing.catalog.api.Product]
136
+ m = Killbill::Plugin::Model::Product.new.to_ruby(m) unless m.nil?
137
+ tmp << m
138
+ end
139
+ @products = tmp
140
+
141
+ # conversion for plans [type = java.lang.Iterable]
142
+ @plans = j_obj.plans
143
+ tmp = []
144
+ (@plans.nil? ? [] : @plans.iterator).each do |m|
145
+ # conversion for m [type = org.killbill.billing.catalog.api.Plan]
146
+ m = Killbill::Plugin::Model::Plan.new.to_ruby(m) unless m.nil?
147
+ tmp << m
148
+ end
149
+ @plans = tmp
150
+
151
+ # conversion for default_price_list [type = org.killbill.billing.catalog.api.PriceList]
152
+ @default_price_list = j_obj.default_price_list
153
+ @default_price_list = Killbill::Plugin::Model::PriceList.new.to_ruby(@default_price_list) unless @default_price_list.nil?
154
+
155
+ # conversion for children_price_list [type = java.lang.Iterable]
156
+ @children_price_list = j_obj.children_price_list
157
+ tmp = []
158
+ (@children_price_list.nil? ? [] : @children_price_list.iterator).each do |m|
159
+ # conversion for m [type = org.killbill.billing.catalog.api.PriceList]
160
+ m = Killbill::Plugin::Model::PriceList.new.to_ruby(m) unless m.nil?
161
+ tmp << m
162
+ end
163
+ @children_price_list = tmp
164
+
165
+ # conversion for plan_rules [type = org.killbill.billing.catalog.api.rules.PlanRules]
166
+ @plan_rules = j_obj.plan_rules
167
+ @plan_rules = Killbill::Plugin::Model::PlanRules.new.to_ruby(@plan_rules) unless @plan_rules.nil?
168
+ self
169
+ end
170
+
171
+ end
172
+ end
173
+ end
174
+ end
@@ -0,0 +1,83 @@
1
+ #############################################################################################
2
+ # #
3
+ # Copyright 2010-2013 Ning, Inc. #
4
+ # Copyright 2014 Groupon, Inc. #
5
+ # Copyright 2014 The Billing Project, LLC #
6
+ # #
7
+ # The Billing Project licenses this file to you under the Apache License, version 2.0 #
8
+ # (the "License"); you may not use this file except in compliance with the #
9
+ # License. You may obtain a copy of the License at: #
10
+ # #
11
+ # http://www.apache.org/licenses/LICENSE-2.0 #
12
+ # #
13
+ # Unless required by applicable law or agreed to in writing, software #
14
+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT #
15
+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the #
16
+ # License for the specific language governing permissions and limitations #
17
+ # under the License. #
18
+ # #
19
+ #############################################################################################
20
+
21
+
22
+ #
23
+ # DO NOT EDIT!!!
24
+ # File automatically generated by killbill-java-parser (git@github.com:killbill/killbill-java-parser.git)
25
+ #
26
+
27
+
28
+ module Killbill
29
+ module Plugin
30
+ module Model
31
+
32
+ java_package 'org.killbill.billing.catalog.plugin.api'
33
+ class VersionedPluginCatalog
34
+
35
+ include org.killbill.billing.catalog.plugin.api.VersionedPluginCatalog
36
+
37
+ attr_accessor :catalog_name, :recurring_billing_mode, :standalone_plugin_catalogs
38
+
39
+ def initialize()
40
+ end
41
+
42
+ def to_java()
43
+ # conversion for catalog_name [type = java.lang.String]
44
+ @catalog_name = @catalog_name.to_s unless @catalog_name.nil?
45
+
46
+ # conversion for recurring_billing_mode [type = org.killbill.billing.catalog.api.BillingMode]
47
+ @recurring_billing_mode = Java::org.killbill.billing.catalog.api.BillingMode.value_of( @recurring_billing_mode.to_s ) unless @recurring_billing_mode.nil?
48
+
49
+ # conversion for standalone_plugin_catalogs [type = java.lang.Iterable]
50
+ tmp = java.util.ArrayList.new
51
+ (@standalone_plugin_catalogs || []).each do |m|
52
+ # conversion for m [type = org.killbill.billing.catalog.plugin.api.StandalonePluginCatalog]
53
+ m = m.to_java unless m.nil?
54
+ tmp.add(m)
55
+ end
56
+ @standalone_plugin_catalogs = tmp
57
+ self
58
+ end
59
+
60
+ def to_ruby(j_obj)
61
+ # conversion for catalog_name [type = java.lang.String]
62
+ @catalog_name = j_obj.catalog_name
63
+
64
+ # conversion for recurring_billing_mode [type = org.killbill.billing.catalog.api.BillingMode]
65
+ @recurring_billing_mode = j_obj.recurring_billing_mode
66
+ @recurring_billing_mode = @recurring_billing_mode.to_s.to_sym unless @recurring_billing_mode.nil?
67
+
68
+ # conversion for standalone_plugin_catalogs [type = java.lang.Iterable]
69
+ @standalone_plugin_catalogs = j_obj.standalone_plugin_catalogs
70
+ tmp = []
71
+ (@standalone_plugin_catalogs.nil? ? [] : @standalone_plugin_catalogs.iterator).each do |m|
72
+ # conversion for m [type = org.killbill.billing.catalog.plugin.api.StandalonePluginCatalog]
73
+ m = Killbill::Plugin::Model::StandalonePluginCatalog.new.to_ruby(m) unless m.nil?
74
+ tmp << m
75
+ end
76
+ @standalone_plugin_catalogs = tmp
77
+ self
78
+ end
79
+
80
+ end
81
+ end
82
+ end
83
+ end
@@ -3,12 +3,14 @@ module Killbill
3
3
  module ActiveMerchant
4
4
  require 'killbill'
5
5
 
6
- require File.dirname(__FILE__) + '/properties_helper.rb'
7
- require File.dirname(__FILE__) + '/active_merchant/active_record/active_record_helper.rb'
6
+ require 'killbill/helpers/properties_helper'
7
+ require 'killbill/helpers/active_merchant/active_record/active_record_helper.rb'
8
+
9
+ require 'active_support'
8
10
 
9
11
  require 'active_support/core_ext'
10
- require File.dirname(__FILE__) + '/active_merchant/core_ext.rb'
11
- require File.dirname(__FILE__) + '/active_merchant/configuration.rb'
12
+ require 'killbill/helpers/active_merchant/core_ext'
13
+ require 'killbill/helpers/active_merchant/configuration'
12
14
 
13
15
  Dir[File.dirname(__FILE__) + '/active_merchant/*.rb'].each do |f|
14
16
  # Get camelized class name
@@ -99,16 +99,28 @@ module Killbill
99
99
  end
100
100
 
101
101
  def to_transaction_info_plugin(transaction=nil)
102
+ error_details = {}
103
+
102
104
  if transaction.nil?
103
105
  amount_in_cents = nil
104
106
  currency = nil
105
107
  created_date = created_at
106
- status = :UNDEFINED # Likely pending
108
+ # See Killbill::Plugin::ActiveMerchant::Gateway
109
+ error_details = JSON.parse(message) rescue {}
107
110
  else
108
111
  amount_in_cents = transaction.amount_in_cents
109
112
  currency = transaction.currency
110
113
  created_date = transaction.created_at
111
- status = success ? :PROCESSED : :ERROR
114
+ end
115
+
116
+ # See https://github.com/killbill/killbill-plugin-framework-ruby/issues/43
117
+ # Note: status could also be :PENDING, but it would be handled only in the plugins which need it
118
+ if !error_details['payment_plugin_status'].blank?
119
+ status = error_details['payment_plugin_status'].to_sym
120
+ else
121
+ # Note: (success && transaction.nil?) _could_ happen (see above), but it would be an issue on our side
122
+ # (the payment did go through in the gateway).
123
+ status = success ? :PROCESSED : :ERROR
112
124
  end
113
125
 
114
126
  t_info_plugin = Killbill::Plugin::Model::PaymentTransactionInfoPlugin.new
@@ -120,8 +132,8 @@ module Killbill
120
132
  t_info_plugin.created_date = created_date
121
133
  t_info_plugin.effective_date = effective_date
122
134
  t_info_plugin.status = status
123
- t_info_plugin.gateway_error = gateway_error
124
- t_info_plugin.gateway_error_code = gateway_error_code
135
+ t_info_plugin.gateway_error = error_details['exception_message'] || gateway_error
136
+ t_info_plugin.gateway_error_code = error_details['exception_class'] || gateway_error_code
125
137
  t_info_plugin.first_payment_reference_id = first_reference_id
126
138
  t_info_plugin.second_payment_reference_id = second_reference_id
127
139
 
@@ -78,13 +78,18 @@ module Killbill
78
78
  if gateway_account_id.nil?
79
79
  @@logger.warn "Skipping config #{gateway_config} -- missing :account_id"
80
80
  else
81
- gateways_config[gateway_account_id.to_sym] = Gateway.wrap(gateway_builder, gateway_config)
81
+ gateways_config[gateway_account_id.to_sym] = Gateway.wrap(gateway_builder, gateway_config, @@logger)
82
82
  default_gateway = gateways_config[gateway_account_id.to_sym] if idx == 0
83
83
  end
84
84
  end
85
85
  gateways_config[:default] = default_gateway if gateways_config[:default].nil?
86
86
  else
87
- gateways_config[:default] = Gateway.wrap(@@gateway_builder, gateway_configs)
87
+ # We assume the configuration should never be nil (if you really do have a use-case, just specify a dummy config)
88
+ if gateway_configs.nil?
89
+ @@logger.warn "Unable to configure gateway #{@@gateway_name}, invalid configuration: #{config}"
90
+ else
91
+ gateways_config[:default] = Gateway.wrap(@@gateway_builder, gateway_configs, @@logger)
92
+ end
88
93
  end
89
94
  gateways_config
90
95
  end