ianfleeton-paypal-express 0.8.3 → 0.8.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ef80a541893e55346f5ad9b9f4f816e583506abd
4
- data.tar.gz: c94857a7a632ab4d6f2386a52d4630b694f9c844
2
+ SHA256:
3
+ metadata.gz: 860b0d8f5a56c23d0d48d2306949be8ab7687e93cb8c54d57c875f5d44ebb349
4
+ data.tar.gz: d36695184583cef8c027cfab2b150fcb9b348a5a2d8de0823b6b6b017bc59d45
5
5
  SHA512:
6
- metadata.gz: 4a1123c6e08907f95c31780317541e11c744cc04787850c743a213f2557b17f612bca873c3f2970e4c9b8a882f27a9f2c8ddb1cf67d3efaad98016acb8d9aea4
7
- data.tar.gz: 372e09ac614ddfd5b74e57cdddfd275d4a7d7a44c34ad6ec992a63c5dde1eb107470795b0eb9a237a07743f3e8a1e03887d6ff86dd31c061b3ede7cfc895c6c9
6
+ metadata.gz: c703ea1e91682f791c9adac0babfa33282a721380ebd082d65c3a0967c4c3cd3f14b5d12ea90ba2d12c7d5f5a59f6c9e189adf4ef2b6915945bd669694c7abe8
7
+ data.tar.gz: 3e9de3ff947c7d5fd75bfb7c21e4aa16c70d857ec64f7a6eb8172fd05b98fd209c514b5f4ca74a1c6f105344ba507201b0a02f342a0c81a357972f74b386cc31
@@ -2,9 +2,10 @@ before_install:
2
2
  - gem install bundler
3
3
 
4
4
  rvm:
5
- - 2.2.7
6
- - 2.3.4
7
- - 2.4.1
5
+ - 2.2.9
6
+ - 2.3.6
7
+ - 2.4.3
8
+ - 2.5.0
8
9
 
9
10
  env:
10
11
  - RAILS_VERSION="~> 4.2"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.3
1
+ 0.8.4
@@ -50,7 +50,7 @@ module Paypal
50
50
  def handle_response
51
51
  response = yield
52
52
  response = CGI.parse(response).inject({}) do |res, (k, v)|
53
- res.merge!(k.to_sym => v.first)
53
+ res.merge!(k.to_sym => v.first.to_s)
54
54
  end
55
55
  case response[:ACK]
56
56
  when 'Success', 'SuccessWithWarning'
@@ -1,15 +1,23 @@
1
+ require "bigdecimal"
2
+
1
3
  module Paypal
2
4
  module Util
3
5
 
4
6
  def self.formatted_amount(x)
5
- sprintf "%0.2f", BigDecimal.new((x || 0).to_s).truncate(2)
7
+ x = '0' if x == '' || x.nil?
8
+ sprintf '%0.2f', BigDecimal.new(x.to_s).round(2)
6
9
  end
7
10
 
8
11
  def self.to_numeric(x)
9
- if x.to_f == x.to_i
12
+ string = x.to_s
13
+ string = "0" if string == "" # Ruby 2.5 compatibility.
14
+
15
+ decimal = BigDecimal(string)
16
+
17
+ if decimal == x.to_i
10
18
  x.to_i
11
19
  else
12
- x.to_f
20
+ decimal
13
21
  end
14
22
  end
15
23
 
@@ -8,7 +8,8 @@ describe Paypal::Express::Request do
8
8
  self._sent_params_ = params
9
9
  post_without_logging method, params
10
10
  end
11
- alias_method_chain :post, :logging
11
+ alias_method :post_without_logging, :post
12
+ alias_method :post, :post_with_logging
12
13
  end
13
14
 
14
15
  let(:return_url) { 'http://example.com/success' }
@@ -39,7 +40,7 @@ describe Paypal::Express::Request do
39
40
  items << Paypal::Payment::Request::Item.new(
40
41
  :name => "Item#{index.to_s}",
41
42
  :description => "A new Item #{index.to_s}",
42
- :amount => 50.00,
43
+ amount: BigDecimal('50.00'),
43
44
  :quantity => 1
44
45
  )
45
46
  end
@@ -266,20 +267,20 @@ describe Paypal::Express::Request do
266
267
  describe "#capture!" do
267
268
  it 'should return Paypal::Express::Response' do
268
269
  fake_response 'DoCapture/success'
269
- response = instance.capture! 'authorization_id', 181.98, :BRL
270
+ response = instance.capture! 'authorization_id', BigDecimal('181.98'), :BRL
270
271
  expect(response).to be_instance_of Paypal::Express::Response
271
272
  end
272
273
 
273
274
  it 'should call DoExpressCheckoutPayment' do
274
275
  expect do
275
- instance.capture! 'authorization_id', 181.98, :BRL
276
+ instance.capture! 'authorization_id', BigDecimal('181.98'), :BRL
276
277
  end.to request_to nvp_endpoint, :post
277
278
 
278
279
  expect(instance._method_).to eq(:DoCapture)
279
280
  expect(instance._sent_params_).to eq({
280
281
  :AUTHORIZATIONID => 'authorization_id',
281
282
  :COMPLETETYPE => 'Complete',
282
- :AMT => 181.98,
283
+ AMT: BigDecimal('181.98'),
283
284
  :CURRENCYCODE => :BRL
284
285
  })
285
286
  end
@@ -29,7 +29,9 @@ describe Paypal::Payment::Common::Amount do
29
29
  end
30
30
  amount = Paypal::Payment::Common::Amount.new attributes
31
31
  keys.each do |key|
32
- expect(amount.send(key)).to eq(10.25)
32
+ actual = amount.send(key)
33
+ expect(actual).to be_a(BigDecimal)
34
+ expect(actual).to eq BigDecimal('10.25')
33
35
  end
34
36
  end
35
37
  end
@@ -3,9 +3,9 @@ require 'spec_helper.rb'
3
3
  describe Paypal::Payment::Request do
4
4
  let :instant_request do
5
5
  Paypal::Payment::Request.new(
6
- :amount => 25.7,
7
- :tax_amount => 0.4,
8
- :shipping_amount => 1.5,
6
+ amount: BigDecimal('25.7'),
7
+ tax_amount: BigDecimal('0.4'),
8
+ shipping_amount: BigDecimal('1.5'),
9
9
  :currency_code => :JPY,
10
10
  :description => 'Instant Payment Request',
11
11
  :notify_url => 'http://merchant.example.com/notify',
@@ -15,12 +15,12 @@ describe Paypal::Payment::Request do
15
15
  :quantity => 2,
16
16
  :name => 'Item1',
17
17
  :description => 'Awesome Item 1!',
18
- :amount => 10.25
18
+ :amount => BigDecimal("10.25")
19
19
  }, {
20
20
  :quantity => 3,
21
21
  :name => 'Item2',
22
22
  :description => 'Awesome Item 2!',
23
- :amount => 1.1
23
+ amount: BigDecimal('1.1')
24
24
  }],
25
25
  :custom_fields => {
26
26
  "l_surveychoice{n}" => 'abcd' # The '{n}' will be replaced with the index
@@ -46,9 +46,9 @@ describe Paypal::Payment::Request do
46
46
 
47
47
  describe '.new' do
48
48
  it 'should handle Instant Payment parameters' do
49
- expect(instant_request.amount.total).to eq(25.7)
50
- expect(instant_request.amount.tax).to eq(0.4)
51
- expect(instant_request.amount.shipping).to eq(1.5)
49
+ expect(instant_request.amount.total).to eq(BigDecimal('25.7'))
50
+ expect(instant_request.amount.tax).to eq(BigDecimal('0.4'))
51
+ expect(instant_request.amount.shipping).to eq(BigDecimal('1.5'))
52
52
  expect(instant_request.currency_code).to eq(:JPY)
53
53
  expect(instant_request.description).to eq('Instant Payment Request')
54
54
  expect(instant_request.notify_url).to eq('http://merchant.example.com/notify')
@@ -115,22 +115,21 @@ describe Paypal::Payment::Request do
115
115
  end
116
116
 
117
117
  describe '#items_amount' do
118
- context 'when BigDecimal'
119
118
  let(:instance) do
120
119
  Paypal::Payment::Request.new(
121
120
  :items => [{
122
121
  :quantity => 3,
123
122
  :name => 'Item1',
124
123
  :description => 'Awesome Item 1!',
125
- :amount => 130.45
124
+ :amount => BigDecimal("130.45")
126
125
  }]
127
126
  )
128
127
  end
129
128
 
130
- # NOTE:
129
+ # NOTE: with floats,
131
130
  # 130.45 * 3 => 391.34999999999997 (in ruby 1.9)
132
131
  it 'should calculate total amount correctly' do
133
- expect(instance.items_amount).to eq(391.35)
132
+ expect(instance.items_amount).to eq(BigDecimal('391.35'))
134
133
  end
135
134
  end
136
135
  end
@@ -40,7 +40,7 @@ describe Paypal::Payment::Response::Info do
40
40
  end
41
41
  expect(from_symbol_uppercase.amount).to eq(Paypal::Payment::Common::Amount.new(
42
42
  :total => 14,
43
- :fee => 0.85
43
+ fee: BigDecimal('0.85')
44
44
  ))
45
45
  end
46
46
  end
@@ -5,28 +5,28 @@ describe Paypal::Util do
5
5
  it 'should return String in "xx.yy" format' do
6
6
  expect(Paypal::Util.formatted_amount(nil)).to eq('0.00')
7
7
  expect(Paypal::Util.formatted_amount(10)).to eq('10.00')
8
- expect(Paypal::Util.formatted_amount(10.02)).to eq('10.02')
9
- expect(Paypal::Util.formatted_amount(10.2)).to eq('10.20')
10
- expect(Paypal::Util.formatted_amount(10.24)).to eq('10.24')
11
- expect(Paypal::Util.formatted_amount(10.255)).to eq('10.25')
8
+ expect(Paypal::Util.formatted_amount(BigDecimal('10.02'))).to eq('10.02')
9
+ expect(Paypal::Util.formatted_amount(BigDecimal('10.2'))).to eq('10.20')
10
+ expect(Paypal::Util.formatted_amount(BigDecimal('10.24'))).to eq('10.24')
11
+ expect(Paypal::Util.formatted_amount(BigDecimal('10.255'))).to eq('10.26')
12
12
  end
13
13
  end
14
14
 
15
15
  describe '.to_numeric' do
16
- it 'should return Numeric' do
16
+ it 'should return Integer or BigDecimal' do
17
17
  expect(Paypal::Util.to_numeric('10')).to be_kind_of(Integer)
18
- expect(Paypal::Util.to_numeric('10.5')).to be_kind_of(Float)
19
- expect(Paypal::Util.to_numeric('-1.5')).to eq(-1.5)
18
+ expect(Paypal::Util.to_numeric('10.5')).to be_kind_of(BigDecimal)
19
+ expect(Paypal::Util.to_numeric('-1.5')).to eq(BigDecimal('-1.5'))
20
20
  expect(Paypal::Util.to_numeric('-1')).to eq(-1)
21
21
  expect(Paypal::Util.to_numeric('0')).to eq(0)
22
22
  expect(Paypal::Util.to_numeric('0.00')).to eq(0)
23
23
  expect(Paypal::Util.to_numeric('10')).to eq(10)
24
24
  expect(Paypal::Util.to_numeric('10.00')).to eq(10)
25
- expect(Paypal::Util.to_numeric('10.02')).to eq(10.02)
26
- expect(Paypal::Util.to_numeric('10.2')).to eq(10.2)
27
- expect(Paypal::Util.to_numeric('10.20')).to eq(10.2)
28
- expect(Paypal::Util.to_numeric('10.24')).to eq(10.24)
29
- expect(Paypal::Util.to_numeric('10.25')).to eq(10.25)
25
+ expect(Paypal::Util.to_numeric('10.02')).to eq(BigDecimal('10.02'))
26
+ expect(Paypal::Util.to_numeric('10.2')).to eq(BigDecimal('10.2'))
27
+ expect(Paypal::Util.to_numeric('10.20')).to eq(BigDecimal('10.2'))
28
+ expect(Paypal::Util.to_numeric('10.24')).to eq(BigDecimal('10.24'))
29
+ expect(Paypal::Util.to_numeric('10.25')).to eq(BigDecimal('10.25'))
30
30
  end
31
31
  end
32
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ianfleeton-paypal-express
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian Fleeton
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-24 00:00:00.000000000 Z
12
+ date: 2018-04-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -254,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
254
254
  version: 1.3.6
255
255
  requirements: []
256
256
  rubyforge_project:
257
- rubygems_version: 2.6.11
257
+ rubygems_version: 2.7.6
258
258
  signing_key:
259
259
  specification_version: 4
260
260
  summary: PayPal Express Checkout API Client for Instance, Recurring and Digital Goods