ianfleeton-paypal-express 0.8.4 → 0.8.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 860b0d8f5a56c23d0d48d2306949be8ab7687e93cb8c54d57c875f5d44ebb349
4
- data.tar.gz: d36695184583cef8c027cfab2b150fcb9b348a5a2d8de0823b6b6b017bc59d45
3
+ metadata.gz: 2fd05e90f23d32893f2c0283c883597c54cc6e544614e188cb82902251fd4be7
4
+ data.tar.gz: 5f4305a6844151eac4cdb378aa659c453b86d38a3eb33af5877380c98be67b72
5
5
  SHA512:
6
- metadata.gz: c703ea1e91682f791c9adac0babfa33282a721380ebd082d65c3a0967c4c3cd3f14b5d12ea90ba2d12c7d5f5a59f6c9e189adf4ef2b6915945bd669694c7abe8
7
- data.tar.gz: 3e9de3ff947c7d5fd75bfb7c21e4aa16c70d857ec64f7a6eb8172fd05b98fd209c514b5f4ca74a1c6f105344ba507201b0a02f342a0c81a357972f74b386cc31
6
+ metadata.gz: 61dc26f99f5cb71635462bda528a36ac1766f6ee99be13a9b7d02e0e89bb8c27bbe82ee846106352953dda81d180b27265366c74dd6a8b16e63f422d6172b276
7
+ data.tar.gz: 4f2c99598e1a73491c0c3bd8bc210de5a4437d0c022b32825ba6c734d2c31e7f76852f65c58bec099ddf9b50bf37bcc82c8b17af96f036651153f0493e90174d
data/.travis.yml CHANGED
@@ -2,10 +2,9 @@ before_install:
2
2
  - gem install bundler
3
3
 
4
4
  rvm:
5
- - 2.2.9
6
- - 2.3.6
7
- - 2.4.3
8
- - 2.5.0
5
+ - 2.4.6
6
+ - 2.5.5
7
+ - 2.6.3
9
8
 
10
9
  env:
11
10
  - RAILS_VERSION="~> 4.2"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.4
1
+ 0.8.5
@@ -59,7 +59,7 @@ module Paypal
59
59
 
60
60
  def items_amount
61
61
  self.items.sum do |item|
62
- item.quantity * BigDecimal.new((item.amount || 0).to_s)
62
+ item.quantity * BigDecimal((item.amount || 0).to_s)
63
63
  end
64
64
  end
65
65
  end
data/lib/paypal/util.rb CHANGED
@@ -5,7 +5,7 @@ module Paypal
5
5
 
6
6
  def self.formatted_amount(x)
7
7
  x = '0' if x == '' || x.nil?
8
- sprintf '%0.2f', BigDecimal.new(x.to_s).round(2)
8
+ sprintf '%0.2f', BigDecimal(x.to_s)
9
9
  end
10
10
 
11
11
  def self.to_numeric(x)
@@ -14,7 +14,12 @@ module Paypal
14
14
 
15
15
  decimal = BigDecimal(string)
16
16
 
17
- if decimal == x.to_i
17
+ if decimal != BigDecimal(string).round(2)
18
+ raise ArgumentError.new(
19
+ 'Precision cannot be higher than two decimal places. ' \
20
+ 'Truncate or round first.'
21
+ )
22
+ elsif decimal == x.to_i
18
23
  x.to_i
19
24
  else
20
25
  decimal
@@ -1 +1 @@
1
- ACK=Success&AMT=440.00&AUTHORIZATIONID=2RG78938NK8989844&BUILD=8334781&CORRELATIONID=311611c111b48&CURRENCYCODE=BRL&EXCHANGERATE=0.426354&FEEAMT=13.16&ORDERTIME=2013-11-05T17%3A34%3A56Z&PARENTTRANSACTIONID=2RG78938NK8989844&PAYMENTSTATUS=Completed&PAYMENTTYPE=instant&PENDINGREASON=None&PROTECTIONELIGIBILITY=Ineligible&PROTECTIONELIGIBILITYTYPE=None&REASONCODE=None&SETTLEAMT=181.98&TAXAMT=0.00&TIMESTAMP=2013-11-05T17%3A34%3A56Z&TRANSACTIONID=9VW4495267708531S&TRANSACTIONTYPE=expresscheckout&VERSION=88.0
1
+ ACK=Success&AMT=440.00&AUTHORIZATIONID=2RG78938NK8989844&BUILD=8334781&CORRELATIONID=311611c111b48&CURRENCYCODE=BRL&EXCHANGERATE=0.426354&FEEAMT=13.16&ORDERTIME=2013-11-05T17%3A34%3A56Z&PARENTTRANSACTIONID=2RG78938NK8989844&PAYMENTSTATUS=Completed&PAYMENTTYPE=instant&PENDINGREASON=None&PROTECTIONELIGIBILITY=Ineligible&PROTECTIONELIGIBILITYTYPE=None&REASONCODE=None&SETTLEAMT=181.98&TIMESTAMP=2013-11-05T17%3A34%3A56Z&TRANSACTIONID=9VW4495267708531S&VERSION=88.0
@@ -28,5 +28,14 @@ describe Paypal::Util do
28
28
  expect(Paypal::Util.to_numeric('10.24')).to eq(BigDecimal('10.24'))
29
29
  expect(Paypal::Util.to_numeric('10.25')).to eq(BigDecimal('10.25'))
30
30
  end
31
+
32
+ it 'returns zero for blank values' do
33
+ expect(Paypal::Util.to_numeric(nil)).to be_zero
34
+ expect(Paypal::Util.to_numeric('')).to be_zero
35
+ end
36
+
37
+ it 'raises an ArgumentError when precision is higher than 2 decimals' do
38
+ expect { Paypal::Util.to_numeric('1.234') }.to raise_error(ArgumentError)
39
+ end
31
40
  end
32
41
  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.4
4
+ version: 0.8.5
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: 2018-04-19 00:00:00.000000000 Z
12
+ date: 2019-04-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -63,22 +63,22 @@ dependencies:
63
63
  name: rake
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '12.0'
69
66
  - - ">="
70
67
  - !ruby/object:Gem::Version
71
68
  version: 12.0.0
69
+ - - "~>"
70
+ - !ruby/object:Gem::Version
71
+ version: '12.0'
72
72
  type: :development
73
73
  prerelease: false
74
74
  version_requirements: !ruby/object:Gem::Requirement
75
75
  requirements:
76
- - - "~>"
77
- - !ruby/object:Gem::Version
78
- version: '12.0'
79
76
  - - ">="
80
77
  - !ruby/object:Gem::Version
81
78
  version: 12.0.0
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '12.0'
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: simplecov
84
84
  requirement: !ruby/object:Gem::Requirement
@@ -97,22 +97,22 @@ dependencies:
97
97
  name: rspec
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '3.5'
103
100
  - - ">="
104
101
  - !ruby/object:Gem::Version
105
102
  version: 3.5.0
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '3.5'
106
106
  type: :development
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - "~>"
111
- - !ruby/object:Gem::Version
112
- version: '3.5'
113
110
  - - ">="
114
111
  - !ruby/object:Gem::Version
115
112
  version: 3.5.0
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '3.5'
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: webmock
118
118
  requirement: !ruby/object:Gem::Requirement
@@ -253,8 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
253
253
  - !ruby/object:Gem::Version
254
254
  version: 1.3.6
255
255
  requirements: []
256
- rubyforge_project:
257
- rubygems_version: 2.7.6
256
+ rubygems_version: 3.0.3
258
257
  signing_key:
259
258
  specification_version: 4
260
259
  summary: PayPal Express Checkout API Client for Instance, Recurring and Digital Goods