monetize 1.9.0 → 1.9.1

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
  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: