percentage 1.4.1 → 2.0.0

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