monies 1.1.0 → 1.2.0
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 +4 -4
- data/LICENSE.txt +1 -1
- data/lib/monies/digits.rb +6 -0
- data/lib/monies.rb +9 -3
- data/monies.gemspec +2 -2
- metadata +4 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 411e7bb7e471b8d8df69c510b07c810984dce43c7a753a1431c0f40c849cb1c8
|
4
|
+
data.tar.gz: 8b84016a100c83249bf9845c1592b1a20b405c1bdeb297b887abe8163b98d411
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d6080e16f4d8c3fb149149635573d0e2615f4c104aa742623ba1d36e127b19572a59197d2cfc45f06de56f9f85b72db220e737b1448ea1da33a48f4109349fd
|
7
|
+
data.tar.gz: a251134b700e1659e6d0ff07162288ef44e3f69bb9fd8605bc407bf5e319d438b1cab818a0cd5144d3759f136cf856f1b73dfef4cf30474af0ef13e44ba0bed4
|
data/LICENSE.txt
CHANGED
data/lib/monies/digits.rb
CHANGED
data/lib/monies.rb
CHANGED
@@ -116,6 +116,7 @@ class Monies
|
|
116
116
|
end
|
117
117
|
|
118
118
|
scale = other.scale
|
119
|
+
scale = length - exponent if length < scale
|
119
120
|
|
120
121
|
return reduce(@value * value, @scale + scale)
|
121
122
|
end
|
@@ -487,7 +488,7 @@ class Monies
|
|
487
488
|
end
|
488
489
|
end
|
489
490
|
|
490
|
-
def Monies(object, currency = Monies.currency)
|
491
|
+
def Monies(object, currency = Monies.currency, exception: true)
|
491
492
|
case object
|
492
493
|
when Monies
|
493
494
|
object
|
@@ -496,7 +497,11 @@ def Monies(object, currency = Monies.currency)
|
|
496
497
|
when Rational
|
497
498
|
Monies.new(object.numerator, 0, currency) / object.denominator
|
498
499
|
when String
|
499
|
-
Monies::Digits.
|
500
|
+
if Monies::Digits.match?(object)
|
501
|
+
Monies::Digits.load(object, currency)
|
502
|
+
elsif exception
|
503
|
+
raise ArgumentError, "invalid value for Monies(): #{object.inspect}"
|
504
|
+
end
|
500
505
|
else
|
501
506
|
if defined?(BigDecimal) && object.is_a?(BigDecimal)
|
502
507
|
sign, significant_digits, base, exponent = object.split
|
@@ -510,10 +515,11 @@ def Monies(object, currency = Monies.currency)
|
|
510
515
|
end
|
511
516
|
|
512
517
|
scale = object.scale
|
518
|
+
scale = length - exponent if length < scale
|
513
519
|
|
514
520
|
return Monies.new(value, scale, currency)
|
515
521
|
end
|
516
522
|
|
517
|
-
raise TypeError, "can't convert #{object.inspect} into #{Monies}"
|
523
|
+
raise TypeError, "can't convert #{object.inspect} into #{Monies}" if exception
|
518
524
|
end
|
519
525
|
end
|
data/monies.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'monies'
|
3
|
-
s.version = '1.
|
3
|
+
s.version = '1.2.0'
|
4
4
|
s.license = 'LGPL-3.0'
|
5
5
|
s.platform = Gem::Platform::RUBY
|
6
6
|
s.authors = ['Tim Craft']
|
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.description = 'Ruby gem for representing monetary values'
|
10
10
|
s.summary = 'See description'
|
11
11
|
s.files = Dir.glob('lib/**/*.rb') + %w[LICENSE.txt README.md monies.gemspec]
|
12
|
-
s.required_ruby_version = '>= 3.
|
12
|
+
s.required_ruby_version = '>= 3.2.0'
|
13
13
|
s.require_path = 'lib'
|
14
14
|
s.metadata = {
|
15
15
|
'homepage' => 'https://github.com/readysteady/monies',
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: monies
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Craft
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies: []
|
13
12
|
description: Ruby gem for representing monetary values
|
14
13
|
email:
|
@@ -36,7 +35,6 @@ metadata:
|
|
36
35
|
source_code_uri: https://github.com/readysteady/monies
|
37
36
|
bug_tracker_uri: https://github.com/readysteady/monies/issues
|
38
37
|
changelog_uri: https://github.com/readysteady/monies/blob/main/CHANGES.md
|
39
|
-
post_install_message:
|
40
38
|
rdoc_options: []
|
41
39
|
require_paths:
|
42
40
|
- lib
|
@@ -44,15 +42,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
44
42
|
requirements:
|
45
43
|
- - ">="
|
46
44
|
- !ruby/object:Gem::Version
|
47
|
-
version: 3.
|
45
|
+
version: 3.2.0
|
48
46
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
49
47
|
requirements:
|
50
48
|
- - ">="
|
51
49
|
- !ruby/object:Gem::Version
|
52
50
|
version: '0'
|
53
51
|
requirements: []
|
54
|
-
rubygems_version: 3.
|
55
|
-
signing_key:
|
52
|
+
rubygems_version: 3.6.7
|
56
53
|
specification_version: 4
|
57
54
|
summary: See description
|
58
55
|
test_files: []
|