percentage 1.4.1 → 2.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 20e2362952bb7911cca151e3df92aa1fbd1673d165c745ca577aa7fa269c5d79
4
- data.tar.gz: 82c0f31ba57b5e8eae7e4c9bf3e27cd202f32fa30d6f7ae544d519499e19cd37
3
+ metadata.gz: d73c317eceabcfd5b4b4f385f7def4664d5e7d827e925d101a306ba404170b69
4
+ data.tar.gz: 3f225768beb51e4d8a743f2550be17119773ef392550369c2756d603bf448d68
5
5
  SHA512:
6
- metadata.gz: 575215d64aaf5a84851d29e732902abc07239bf0be3e8a542ce8e332272b9c2470cfc6bc4c7d1337d180f2a2249cb854b3fbdf6fc3b697ef0a5f126680bc423b
7
- data.tar.gz: 1e7ca91c861e49039fd592a82f54c9778ba335efc6286b9ab772c4f634db536e58eb429d9a839e1013684f435aa77c942210d8fcadfb2d49cac73dfbf449ea04
6
+ metadata.gz: 50b8c3ca5f618908e1ea75c2bb5076bf87a27d902781f96267f76954b9ec4481965a3dddc1a2f259b677a151bcf6bd39f48093e42307430335eb459b7270d3e7
7
+ data.tar.gz: 16e31215f053b38882f6b96e49e8b5c13a106342d7fefc0f4a5a2e87e8ce60aae95f64d5d65b279c3ec2e04e86b6230ca136904140b93c3321079903732b02ac
data/CHANGES.md CHANGED
@@ -1,3 +1,11 @@
1
+ # 2.0.0
2
+
3
+ * Added Percentage#to_d
4
+
5
+ * Percentage instances are now frozen on initialization
6
+
7
+ * Changed `Percentage.change` to return `nil` when first argument is zero
8
+
1
9
  # 1.4.1
2
10
 
3
11
  * Added CHANGES.md to gem files
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012-2020 TIMCRAFT
1
+ Copyright (c) 2012-2022 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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # percentage
2
2
 
3
3
  ![Gem Version](https://badge.fury.io/rb/percentage.svg)
4
- ![Build Status](https://github.com/readysteady/percentage/workflows/Test/badge.svg)
4
+ ![Test Status](https://github.com/readysteady/percentage/actions/workflows/test.yml/badge.svg)
5
5
 
6
6
 
7
7
  Ruby gem for working with percentages.
data/lib/percentage.rb CHANGED
@@ -7,6 +7,8 @@ class Percentage
7
7
 
8
8
  def initialize(value)
9
9
  @value = value
10
+
11
+ freeze
10
12
  end
11
13
 
12
14
  def to_i
@@ -25,6 +27,16 @@ class Percentage
25
27
  fractional_value.to_r
26
28
  end
27
29
 
30
+ def to_d
31
+ if @value.integer?
32
+ @value.to_d / 100
33
+ elsif BigDecimal === @value
34
+ @value
35
+ else
36
+ @value.to_d(0)
37
+ end
38
+ end
39
+
28
40
  def zero?
29
41
  @value.zero?
30
42
  end
@@ -115,7 +127,7 @@ def Percentage(object)
115
127
  end
116
128
 
117
129
  def Percentage.change(a, b)
118
- Percentage.new((b - a).to_r / a)
130
+ Percentage.new((b - a).to_r / a) unless a.zero?
119
131
  end
120
132
 
121
133
  class BigDecimal
data/percentage.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'percentage'
3
- s.version = '1.4.1'
3
+ s.version = '2.0.0'
4
4
  s.license = 'LGPL-3.0'
5
5
  s.platform = Gem::Platform::RUBY
6
6
  s.authors = ['Tim Craft']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: percentage
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Craft
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-03 00:00:00.000000000 Z
11
+ date: 2022-01-07 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby gem for working with percentages
14
14
  email:
@@ -46,7 +46,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  requirements: []
49
- rubygems_version: 3.1.4
49
+ rubygems_version: 3.3.3
50
50
  signing_key:
51
51
  specification_version: 4
52
52
  summary: See description