activemerchant 1.29.2 → 1.29.3

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/CHANGELOG CHANGED
@@ -1,6 +1,8 @@
1
1
  = ActiveMerchant CHANGELOG
2
2
 
3
- == Version 1.29.3
3
+ == Version 1.29.3 (December 7, 2012)
4
+
5
+ * WorldPay: Fix currencies without fractions like JPY and HUF by rounding down amount [Soleone]
4
6
 
5
7
  == Version 1.29.2 (December 7, 2012)
6
8
 
@@ -62,7 +62,7 @@ module ActiveMerchant #:nodoc:
62
62
  include Utils
63
63
 
64
64
  DEBIT_CARDS = [ :switch, :solo ]
65
- CURRENCIES_WITHOUT_FRACTIONS = [ 'JPY' ]
65
+ CURRENCIES_WITHOUT_FRACTIONS = [ 'JPY', 'HUF' ]
66
66
  CREDIT_DEPRECATION_MESSAGE = "Support for using credit to refund existing transactions is deprecated and will be removed from a future release of ActiveMerchant. Please use the refund method instead."
67
67
 
68
68
  cattr_reader :implementations
@@ -38,6 +38,10 @@ module ActiveMerchant #:nodoc:
38
38
  def capture(money, authorization, options = {})
39
39
  MultiResponse.run do |r|
40
40
  r.process{inquire_request(authorization, options, "AUTHORISED")} unless options[:authorization_validated]
41
+ if r.params
42
+ authorization_currency = r.params['amount_currency_code']
43
+ options = options.merge(:currency => authorization_currency) if authorization_currency.present?
44
+ end
41
45
  r.process{capture_request(money, authorization, options)}
42
46
  end
43
47
  end
@@ -148,10 +152,10 @@ module ActiveMerchant #:nodoc:
148
152
  end
149
153
 
150
154
  def add_amount(xml, money, options)
151
- xml.tag! 'amount',
152
- :value => amount(money),
153
- 'currencyCode' => (options[:currency] || currency(money)),
154
- 'exponent' => 2
155
+ currency = options[:currency] || currency(money)
156
+ amount = localized_amount(money, currency)
157
+
158
+ xml.tag! 'amount', :value => amount, 'currencyCode' => currency, 'exponent' => 2
155
159
  end
156
160
 
157
161
  def add_payment_method(xml, amount, payment_method, options)
@@ -261,6 +265,13 @@ module ActiveMerchant #:nodoc:
261
265
  credentials = "#{@options[:login]}:#{@options[:password]}"
262
266
  "Basic #{[credentials].pack('m').strip}"
263
267
  end
268
+
269
+ def localized_amount(money, currency)
270
+ amount = amount(money)
271
+ return amount unless CURRENCIES_WITHOUT_FRACTIONS.include?(currency.to_s)
272
+
273
+ amount.to_i / 100 * 100
274
+ end
264
275
  end
265
276
  end
266
277
  end
@@ -1,3 +1,3 @@
1
1
  module ActiveMerchant
2
- VERSION = "1.29.2"
2
+ VERSION = "1.29.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activemerchant
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.29.2
4
+ version: 1.29.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -41,7 +41,7 @@ date: 2012-12-07 00:00:00.000000000 Z
41
41
  dependencies:
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: activesupport
44
- requirement: &70328397930860 !ruby/object:Gem::Requirement
44
+ requirement: &70282608718400 !ruby/object:Gem::Requirement
45
45
  none: false
46
46
  requirements:
47
47
  - - ! '>='
@@ -49,10 +49,10 @@ dependencies:
49
49
  version: 2.3.14
50
50
  type: :runtime
51
51
  prerelease: false
52
- version_requirements: *70328397930860
52
+ version_requirements: *70282608718400
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: i18n
55
- requirement: &70328397930420 !ruby/object:Gem::Requirement
55
+ requirement: &70282608718420 !ruby/object:Gem::Requirement
56
56
  none: false
57
57
  requirements:
58
58
  - - ! '>='
@@ -60,10 +60,10 @@ dependencies:
60
60
  version: '0'
61
61
  type: :runtime
62
62
  prerelease: false
63
- version_requirements: *70328397930420
63
+ version_requirements: *70282608718420
64
64
  - !ruby/object:Gem::Dependency
65
65
  name: money
66
- requirement: &70328397929920 !ruby/object:Gem::Requirement
66
+ requirement: &70282608717880 !ruby/object:Gem::Requirement
67
67
  none: false
68
68
  requirements:
69
69
  - - ! '>='
@@ -71,10 +71,10 @@ dependencies:
71
71
  version: '0'
72
72
  type: :runtime
73
73
  prerelease: false
74
- version_requirements: *70328397929920
74
+ version_requirements: *70282608717880
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: builder
77
- requirement: &70328397929380 !ruby/object:Gem::Requirement
77
+ requirement: &70282608717380 !ruby/object:Gem::Requirement
78
78
  none: false
79
79
  requirements:
80
80
  - - ! '>='
@@ -82,10 +82,10 @@ dependencies:
82
82
  version: 2.0.0
83
83
  type: :runtime
84
84
  prerelease: false
85
- version_requirements: *70328397929380
85
+ version_requirements: *70282608717380
86
86
  - !ruby/object:Gem::Dependency
87
87
  name: json
88
- requirement: &70328397928860 !ruby/object:Gem::Requirement
88
+ requirement: &70282608716860 !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
91
91
  - - ! '>='
@@ -93,10 +93,10 @@ dependencies:
93
93
  version: 1.5.1
94
94
  type: :runtime
95
95
  prerelease: false
96
- version_requirements: *70328397928860
96
+ version_requirements: *70282608716860
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: active_utils
99
- requirement: &70328397928360 !ruby/object:Gem::Requirement
99
+ requirement: &70282608716360 !ruby/object:Gem::Requirement
100
100
  none: false
101
101
  requirements:
102
102
  - - ! '>='
@@ -104,10 +104,10 @@ dependencies:
104
104
  version: 1.0.2
105
105
  type: :runtime
106
106
  prerelease: false
107
- version_requirements: *70328397928360
107
+ version_requirements: *70282608716360
108
108
  - !ruby/object:Gem::Dependency
109
109
  name: nokogiri
110
- requirement: &70328397927960 !ruby/object:Gem::Requirement
110
+ requirement: &70282608715980 !ruby/object:Gem::Requirement
111
111
  none: false
112
112
  requirements:
113
113
  - - ! '>='
@@ -115,10 +115,10 @@ dependencies:
115
115
  version: '0'
116
116
  type: :runtime
117
117
  prerelease: false
118
- version_requirements: *70328397927960
118
+ version_requirements: *70282608715980
119
119
  - !ruby/object:Gem::Dependency
120
120
  name: rake
121
- requirement: &70328397927460 !ruby/object:Gem::Requirement
121
+ requirement: &70282608715520 !ruby/object:Gem::Requirement
122
122
  none: false
123
123
  requirements:
124
124
  - - ! '>='
@@ -126,10 +126,10 @@ dependencies:
126
126
  version: '0'
127
127
  type: :development
128
128
  prerelease: false
129
- version_requirements: *70328397927460
129
+ version_requirements: *70282608715520
130
130
  - !ruby/object:Gem::Dependency
131
131
  name: mocha
132
- requirement: &70328397926920 !ruby/object:Gem::Requirement
132
+ requirement: &70282608715020 !ruby/object:Gem::Requirement
133
133
  none: false
134
134
  requirements:
135
135
  - - ~>
@@ -137,10 +137,10 @@ dependencies:
137
137
  version: 0.11.3
138
138
  type: :development
139
139
  prerelease: false
140
- version_requirements: *70328397926920
140
+ version_requirements: *70282608715020
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: rails
143
- requirement: &70328397926380 !ruby/object:Gem::Requirement
143
+ requirement: &70282608714480 !ruby/object:Gem::Requirement
144
144
  none: false
145
145
  requirements:
146
146
  - - ! '>='
@@ -148,10 +148,10 @@ dependencies:
148
148
  version: 2.3.14
149
149
  type: :development
150
150
  prerelease: false
151
- version_requirements: *70328397926380
151
+ version_requirements: *70282608714480
152
152
  - !ruby/object:Gem::Dependency
153
153
  name: thor
154
- requirement: &70328397925980 !ruby/object:Gem::Requirement
154
+ requirement: &70282608714080 !ruby/object:Gem::Requirement
155
155
  none: false
156
156
  requirements:
157
157
  - - ! '>='
@@ -159,7 +159,7 @@ dependencies:
159
159
  version: '0'
160
160
  type: :development
161
161
  prerelease: false
162
- version_requirements: *70328397925980
162
+ version_requirements: *70282608714080
163
163
  description: Active Merchant is a simple payment abstraction library used in and sponsored
164
164
  by Shopify. It is written by Tobias Luetke, Cody Fauser, and contributors. The aim
165
165
  of the project is to feel natural to Ruby users and to abstract as many parts as
metadata.gz.sig CHANGED
Binary file