monetize 1.9.0 → 1.9.1

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
2
  SHA1:
3
- metadata.gz: e26348a04058d672c804c80a19beb2c4615f9a33
4
- data.tar.gz: 68697cc2d144f4e6ce17e7784e0dcb5188a482fb
3
+ metadata.gz: 7c921047a6f291ae61ceb19db130de7b0288d8e2
4
+ data.tar.gz: f48eb20c8582b1453ef6114df30793f9367d934e
5
5
  SHA512:
6
- metadata.gz: 452be2be436b0ea57611a2a32b3230486f8f3de40cb74e4286931528a6db05fd2cddc114ca5373be7a92f4680a0f50a3992af373920b09f65c233fd0f9cb0007
7
- data.tar.gz: db4134e4c44bb2b58fd12d6c7ff2d5e3259b76ba6971215cbdd61759d715cf98b014066f165dfea5cf79ac5c7997937ca1fc3ff0ceae8ce604424c41370def1f
6
+ metadata.gz: 9b4a49126c30cfd92968d6fed6cd43a806e5cda807f8dfd0c8956d434e0e3a3331191d9e228e5648c4d11157f01d3c3fcdb72f72f21e52f96002ab803b70265a
7
+ data.tar.gz: 571ec0ec170014d408f4ba0208a1b40f04cdf3436b2939e7d43b922cfe2ce3e981fb5a51a6dc79eab8d07ccad4ecfbc270548e15b4293428df87dbc0c912d277
@@ -8,7 +8,10 @@ rvm:
8
8
  - 2.3.7
9
9
  - 2.4.4
10
10
  - 2.5.1
11
+ - 2.6.0
11
12
  - jruby-9.0.5.0
13
+ before_install:
14
+ - gem install bundler --version '~> 1.17'
12
15
  script: bundle exec rspec spec
13
16
  notifications:
14
17
  recipients:
@@ -1,5 +1,8 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.1
4
+ - Ruby 2.6 support
5
+
3
6
  ## 1.9.0
4
7
  - Relax Money gem dependency to ~> 6.12
5
8
  - Refactor `Monetize::Parser`
data/Gemfile CHANGED
@@ -2,13 +2,14 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem 'coveralls', '>= 0.8.20', require: false
4
4
 
5
- # JSON gem no longer supports ruby < 2.0.0
5
+ # JSON and I18n gem no longer supports ruby < 2.0.0
6
6
  if defined?(JRUBY_VERSION)
7
7
  gem 'json'
8
8
  elsif RUBY_VERSION =~ /^1/
9
9
  gem 'json', '~> 1.8.3'
10
10
  gem 'tins', '~> 1.6.0'
11
11
  gem 'term-ansicolor', '~> 1.3.0'
12
+ gem 'i18n', '~> 0.9'
12
13
  end
13
14
 
14
15
  gemspec
@@ -43,7 +43,7 @@ module Monetize
43
43
  end
44
44
 
45
45
  def from_string(value, currency = Money.default_currency)
46
- value = BigDecimal.new(value.to_s)
46
+ value = BigDecimal(value.to_s)
47
47
  Money.from_amount(value, currency)
48
48
  end
49
49
 
@@ -152,7 +152,7 @@ module Monetize
152
152
 
153
153
  def set_minor_precision(minor, currency)
154
154
  if Money.infinite_precision
155
- (BigDecimal.new(minor) / (10**minor.size)) * currency.subunit_to_unit
155
+ (BigDecimal(minor) / (10**minor.size)) * currency.subunit_to_unit
156
156
  elsif minor.size < currency.decimal_places
157
157
  (minor + ('0' * currency.decimal_places))[0, currency.decimal_places].to_i
158
158
  elsif minor.size > currency.decimal_places
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Monetize
4
- VERSION = '1.9.0'
4
+ VERSION = '1.9.1'
5
5
  end
@@ -21,7 +21,13 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.add_dependency 'money', '~> 6.12'
23
23
 
24
- spec.add_development_dependency 'bundler', '~> 1.3'
25
- spec.add_development_dependency 'rake'
24
+ spec.add_development_dependency 'bundler'
25
+ spec.add_development_dependency 'rake', '~> 10.2'
26
26
  spec.add_development_dependency 'rspec', '~> 3.0'
27
+
28
+ if spec.respond_to?(:metadata)
29
+ spec.metadata['changelog_uri'] = 'https://github.com/RubyMoney/monetize/blob/master/CHANGELOG.md'
30
+ spec.metadata['source_code_uri'] = 'https://github.com/RubyMoney/monetize/'
31
+ spec.metadata['bug_tracker_uri'] = 'https://github.com/RubyMoney/monetize/issues'
32
+ end
27
33
  end
@@ -31,7 +31,7 @@ describe Monetize, 'core extensions' do
31
31
  expect(money.cents).to eq 100_37
32
32
  expect(money.currency).to eq Money.default_currency
33
33
 
34
- money = BigDecimal.new('1234').to_money
34
+ money = BigDecimal('1234').to_money
35
35
  expect(money.cents).to eq 1_234_00
36
36
  expect(money.currency).to eq Money.default_currency
37
37
  end
@@ -212,6 +212,14 @@ describe Monetize do
212
212
  expect(Monetize.parse('-$5.95-')).to be_nil
213
213
  end
214
214
 
215
+ it 'returns nil when more than 2 digit separators are used' do
216
+ expect(Monetize.parse("123.34,56'89 EUR")).to be_nil
217
+ end
218
+
219
+ it 'parses correctly strings with repeated digit separator' do
220
+ expect(Monetize.parse('19.12.89', 'EUR')).to eq Money.new(191_289_00, 'EUR')
221
+ end
222
+
215
223
  it 'parses correctly strings with exactly 3 decimal digits' do
216
224
  expect(Monetize.parse('6,534', 'EUR')).to eq Money.new(653, 'EUR')
217
225
  expect(Monetize.parse('6.534', 'EUR')).to eq Money.new(653, 'EUR')
@@ -234,7 +242,7 @@ describe Monetize do
234
242
  context 'parsing an instance of Numeric class' do
235
243
  let(:integer) { 10 }
236
244
  let(:float) { 10.0 }
237
- let(:big_decimal) { BigDecimal.new('10') }
245
+ let(:big_decimal) { BigDecimal('10') }
238
246
 
239
247
  [:integer, :float, :big_decimal].each do |type|
240
248
  it "returns a new Money object based on the #{type} input" do
@@ -336,6 +344,10 @@ describe Monetize do
336
344
  expect(collection.first).to eq Monetize.parse('$4')
337
345
  expect(collection.last).to eq Monetize.parse('$10')
338
346
  end
347
+
348
+ it 'raises an error if argument is invalid' do
349
+ expect { Monetize.parse_collection(nil) }.to raise_error Monetize::ArgumentError
350
+ end
339
351
  end
340
352
 
341
353
  describe '.from_string' do
@@ -419,31 +431,31 @@ describe Monetize do
419
431
 
420
432
  describe '.from_bigdecimal' do
421
433
  it 'converts given amount to cents' do
422
- expect(Monetize.from_bigdecimal(BigDecimal.new('1'))).to eq Money.new(1_00)
423
- expect(Monetize.from_bigdecimal(BigDecimal.new('1'))).to eq Money.new(1_00, 'USD')
424
- expect(Monetize.from_bigdecimal(BigDecimal.new('1'), 'EUR')).to eq Money.new(1_00, 'EUR')
434
+ expect(Monetize.from_bigdecimal(BigDecimal('1'))).to eq Money.new(1_00)
435
+ expect(Monetize.from_bigdecimal(BigDecimal('1'))).to eq Money.new(1_00, 'USD')
436
+ expect(Monetize.from_bigdecimal(BigDecimal('1'), 'EUR')).to eq Money.new(1_00, 'EUR')
425
437
  end
426
438
 
427
439
  it 'respects :subunit_to_unit currency property' do
428
- expect(Monetize.from_bigdecimal(BigDecimal.new('1'), 'USD')).to eq Money.new(1_00, 'USD')
429
- expect(Monetize.from_bigdecimal(BigDecimal.new('1'), 'TND')).to eq Money.new(1_000, 'TND')
430
- expect(Monetize.from_bigdecimal(BigDecimal.new('1'), 'JPY')).to eq Money.new(1, 'JPY')
440
+ expect(Monetize.from_bigdecimal(BigDecimal('1'), 'USD')).to eq Money.new(1_00, 'USD')
441
+ expect(Monetize.from_bigdecimal(BigDecimal('1'), 'TND')).to eq Money.new(1_000, 'TND')
442
+ expect(Monetize.from_bigdecimal(BigDecimal('1'), 'JPY')).to eq Money.new(1, 'JPY')
431
443
  end
432
444
 
433
445
  it 'respects rounding mode when rounding amount to the nearest cent' do
434
- amount = BigDecimal.new('1.005')
446
+ amount = BigDecimal('1.005')
435
447
 
436
448
  expect(Monetize.from_bigdecimal(amount, 'USD')).to eq Money.from_amount(amount, 'USD')
437
449
  end
438
450
 
439
451
  it 'accepts a currency options' do
440
- m = Monetize.from_bigdecimal(BigDecimal.new('1'))
452
+ m = Monetize.from_bigdecimal(BigDecimal('1'))
441
453
  expect(m.currency).to eq Money.default_currency
442
454
 
443
- m = Monetize.from_bigdecimal(BigDecimal.new('1'), Money::Currency.wrap('EUR'))
455
+ m = Monetize.from_bigdecimal(BigDecimal('1'), Money::Currency.wrap('EUR'))
444
456
  expect(m.currency).to eq Money::Currency.wrap('EUR')
445
457
 
446
- m = Monetize.from_bigdecimal(BigDecimal.new('1'), 'EUR')
458
+ m = Monetize.from_bigdecimal(BigDecimal('1'), 'EUR')
447
459
  expect(m.currency).to eq Money::Currency.wrap('EUR')
448
460
  end
449
461
 
@@ -457,11 +469,11 @@ describe Monetize do
457
469
  end
458
470
 
459
471
  it 'keeps precision' do
460
- expect(Monetize.from_bigdecimal(BigDecimal.new('1'))).to eq Money.new(100)
461
- expect(Monetize.from_bigdecimal(BigDecimal.new('1.23456'))).to eq Money.new(123.456)
462
- expect(Monetize.from_bigdecimal(BigDecimal.new('-1.23456'))).to eq Money.new(-123.456)
463
- expect(Monetize.from_bigdecimal(BigDecimal.new('1.23456'))).to eq Money.new(123.456, 'USD')
464
- expect(Monetize.from_bigdecimal(BigDecimal.new('1.23456'), 'EUR')).to eq Money.new(123.456, 'EUR')
472
+ expect(Monetize.from_bigdecimal(BigDecimal('1'))).to eq Money.new(100)
473
+ expect(Monetize.from_bigdecimal(BigDecimal('1.23456'))).to eq Money.new(123.456)
474
+ expect(Monetize.from_bigdecimal(BigDecimal('-1.23456'))).to eq Money.new(-123.456)
475
+ expect(Monetize.from_bigdecimal(BigDecimal('1.23456'))).to eq Money.new(123.456, 'USD')
476
+ expect(Monetize.from_bigdecimal(BigDecimal('1.23456'), 'EUR')).to eq Money.new(123.456, 'EUR')
465
477
 
466
478
  expect('1'.to_money).to eq Money.new(100)
467
479
  expect('1.23456'.to_money).to eq Money.new(123.456)
@@ -476,7 +488,7 @@ describe Monetize do
476
488
  it 'converts given amount to cents' do
477
489
  expect(Monetize.from_numeric(1)).to eq Money.new(1_00)
478
490
  expect(Monetize.from_numeric(1.0)).to eq Money.new(1_00)
479
- expect(Monetize.from_numeric(BigDecimal.new('1'))).to eq Money.new(1_00)
491
+ expect(Monetize.from_numeric(BigDecimal('1'))).to eq Money.new(1_00)
480
492
  end
481
493
 
482
494
  it 'raises ArgumentError with unsupported argument' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monetize
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 1.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane Emmons
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-11 00:00:00.000000000 Z
11
+ date: 2019-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: money
@@ -28,30 +28,30 @@ dependencies:
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.3'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '1.3'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '10.2'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '10.2'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -101,7 +101,10 @@ files:
101
101
  homepage: https://github.com/RubyMoney/monetize
102
102
  licenses:
103
103
  - MIT
104
- metadata: {}
104
+ metadata:
105
+ changelog_uri: https://github.com/RubyMoney/monetize/blob/master/CHANGELOG.md
106
+ source_code_uri: https://github.com/RubyMoney/monetize/
107
+ bug_tracker_uri: https://github.com/RubyMoney/monetize/issues
105
108
  post_install_message:
106
109
  rdoc_options: []
107
110
  require_paths: