monies 1.2.0 → 2.0.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
  SHA256:
3
- metadata.gz: 411e7bb7e471b8d8df69c510b07c810984dce43c7a753a1431c0f40c849cb1c8
4
- data.tar.gz: 8b84016a100c83249bf9845c1592b1a20b405c1bdeb297b887abe8163b98d411
3
+ metadata.gz: e73004f07c8e1c7283fdf9ec47bd835bfdb6f31f8972a17bc1d2a6b4e46b80da
4
+ data.tar.gz: 074521143df07c2869bec2fdc6c7f3802dae47967deb945aa1ca861fdd0ef181
5
5
  SHA512:
6
- metadata.gz: 7d6080e16f4d8c3fb149149635573d0e2615f4c104aa742623ba1d36e127b19572a59197d2cfc45f06de56f9f85b72db220e737b1448ea1da33a48f4109349fd
7
- data.tar.gz: a251134b700e1659e6d0ff07162288ef44e3f69bb9fd8605bc407bf5e319d438b1cab818a0cd5144d3759f136cf856f1b73dfef4cf30474af0ef13e44ba0bed4
6
+ metadata.gz: 002bf11aa07e6177a1ffca11e958084fedda081ccec63c8bd329f862c69ab84dccbf2e421ed584daaadd2c5eaf56bc236b43f27e8e448764ef2e1517fdf02129
7
+ data.tar.gz: b02008bbfc99adf200770f3c3ba47c9f0f60abd03e64dd856561998863fca40ab0b96947581c0b6f20c9dd94a1791e60bd2c35d218c34981ab3af64af37963b6
data/CHANGES.md ADDED
@@ -0,0 +1,37 @@
1
+ # 2.0.1
2
+
3
+ * Fixed subtraction from zero
4
+
5
+ # 2.0.0
6
+
7
+ * Added Monies#to_f method
8
+
9
+ * Added Monies#to_json method
10
+
11
+ * Changed required\_ruby\_version to >= 3.3.0
12
+
13
+ # 1.2.0
14
+
15
+ * Added exception argument to Monies method
16
+
17
+ * Changed Monies method to raise ArgumentError for invalid strings
18
+
19
+ * Changed required\_ruby\_version to >= 3.2.0
20
+
21
+ * Improved compatibility with jruby
22
+
23
+ # 1.1.0
24
+
25
+ * Added Monies#allocate method
26
+
27
+ * Added Monies#fix method
28
+
29
+ * Added Monies#frac method
30
+
31
+ # 1.0.1
32
+
33
+ * Fixed division for negative values
34
+
35
+ # 1.0.0
36
+
37
+ * First version!
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2024-2025 TIMCRAFT
1
+ Copyright (c) 2024-2026 TIMCRAFT
2
2
 
3
3
  This is an Open Source project licensed under the terms of the LGPLv3 license.
4
4
  Please see <http://www.gnu.org/licenses/lgpl-3.0.html> for license text.
data/lib/monies.rb CHANGED
@@ -217,11 +217,11 @@ class Monies
217
217
  end
218
218
 
219
219
  def coerce(other)
220
- unless other.respond_to?(:zero?) && other.zero?
221
- raise TypeError, "#{self.class} can't be coerced into #{other.class}"
220
+ if other.respond_to?(:zero?) && other.zero?
221
+ return self.class.new(0, 0, @currency), self
222
222
  end
223
223
 
224
- return self, other
224
+ raise TypeError, "#{self.class} can't be coerced into #{other.class}"
225
225
  end
226
226
 
227
227
  def convert(other, currency = nil)
@@ -385,10 +385,18 @@ class Monies
385
385
  BigDecimal(Monies::Digits.dump(self))
386
386
  end
387
387
 
388
+ def to_f
389
+ @value.to_f / BASE ** @scale
390
+ end
391
+
388
392
  def to_i
389
393
  @value / BASE ** @scale
390
394
  end
391
395
 
396
+ def to_json(state = nil, *)
397
+ JSON::State.from_state(state).generate(self.class.dump(self))
398
+ end
399
+
392
400
  def to_r
393
401
  Rational(@value, BASE ** @scale)
394
402
  end
data/monies.gemspec CHANGED
@@ -1,15 +1,15 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'monies'
3
- s.version = '1.2.0'
3
+ s.version = '2.0.1'
4
4
  s.license = 'LGPL-3.0'
5
5
  s.platform = Gem::Platform::RUBY
6
6
  s.authors = ['Tim Craft']
7
7
  s.email = ['email@timcraft.com']
8
8
  s.homepage = 'https://github.com/readysteady/monies'
9
9
  s.description = 'Ruby gem for representing monetary values'
10
- s.summary = 'See description'
11
- s.files = Dir.glob('lib/**/*.rb') + %w[LICENSE.txt README.md monies.gemspec]
12
- s.required_ruby_version = '>= 3.2.0'
10
+ s.summary = 'Ruby gem for representing monetary values'
11
+ s.files = Dir.glob('lib/**/*.rb') + %w[CHANGES.md LICENSE.txt README.md monies.gemspec]
12
+ s.required_ruby_version = '>= 3.3.0'
13
13
  s.require_path = 'lib'
14
14
  s.metadata = {
15
15
  'homepage' => 'https://github.com/readysteady/monies',
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monies
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Craft
@@ -16,6 +16,7 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
+ - CHANGES.md
19
20
  - LICENSE.txt
20
21
  - README.md
21
22
  - lib/monies.rb
@@ -42,14 +43,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
42
43
  requirements:
43
44
  - - ">="
44
45
  - !ruby/object:Gem::Version
45
- version: 3.2.0
46
+ version: 3.3.0
46
47
  required_rubygems_version: !ruby/object:Gem::Requirement
47
48
  requirements:
48
49
  - - ">="
49
50
  - !ruby/object:Gem::Version
50
51
  version: '0'
51
52
  requirements: []
52
- rubygems_version: 3.6.7
53
+ rubygems_version: 4.0.6
53
54
  specification_version: 4
54
- summary: See description
55
+ summary: Ruby gem for representing monetary values
55
56
  test_files: []