primitive_wrapper 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +8 -0
- data/lib/primitive_wrapper.rb +15 -3
- data/lib/primitive_wrapper/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ac0598322b63f9401a9cd13d709637c90e98bd8
|
4
|
+
data.tar.gz: e2347dc45a00f18d27a3b09c3cd42de73f773e86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9fe51325ebbc3c2e0f672d7b9eb11ff7af0fe6a556332d3cd9e4db3cfb2bdcf55265c29a8c9ba37a5785df349204572409c65f4ac5d0d687d03dfae9b9ba85f4
|
7
|
+
data.tar.gz: ae8f06e0613ae56258172296f18f6f8d4782b8abd62797f9cb1a559d57d04f0fb015f017d62fe13a2786ad57ae1640475d652a2ec709ec73acaabe8249e1c269
|
data/README.md
CHANGED
@@ -328,6 +328,10 @@ frac = Math::PI.to_fraction(0.0001) # (Fraction==>(355/113))
|
|
328
328
|
frac = Math::PI.to_fraction # (Fraction==>(884279719003555/281474976710656))
|
329
329
|
# note: Rational does not have approximate construction
|
330
330
|
|
331
|
+
# Construction: using float with target denominator
|
332
|
+
frac = Fraction(Math::PI, 113) # (Fraction==>(355/113))
|
333
|
+
frac = Fraction(Math::PI, 7) # (Fraction==>(22/7))
|
334
|
+
|
331
335
|
# mutating methods:
|
332
336
|
frac = Math::PI.to_fraction(0.0001)
|
333
337
|
frac.negate! # make negative
|
@@ -613,6 +617,10 @@ So it is left to you to decide.
|
|
613
617
|
|
614
618
|
## Revision History
|
615
619
|
|
620
|
+
### Version 2.1.0
|
621
|
+
* Bug fixes for Fraction wrapper
|
622
|
+
* New construction method for Fraction
|
623
|
+
|
616
624
|
### Version 2.1.0
|
617
625
|
* Added Fraction wrapper for Rational types
|
618
626
|
|
data/lib/primitive_wrapper.rb
CHANGED
@@ -747,7 +747,9 @@ class Fraction < ValueAdd
|
|
747
747
|
top += 1
|
748
748
|
end
|
749
749
|
end
|
750
|
-
|
750
|
+
frac = Fraction.new(top.prim_value,bot.prim_value)
|
751
|
+
frac = -frac if neg
|
752
|
+
return frac
|
751
753
|
end
|
752
754
|
|
753
755
|
def initialize(*prms)
|
@@ -758,8 +760,18 @@ class Fraction < ValueAdd
|
|
758
760
|
@value = Rational(prms[0].prim_value)
|
759
761
|
elsif 2==prms.count
|
760
762
|
if prms[0].type_of? Float
|
761
|
-
|
762
|
-
|
763
|
+
if prms[1].type_of? Integer
|
764
|
+
sign = prms[0].negative? ? -1:1
|
765
|
+
num = prms[0].abs
|
766
|
+
whole = num.floor
|
767
|
+
frac = num-whole
|
768
|
+
num = (frac * prms[1]).round
|
769
|
+
frac = Fraction.new(whole, num, prms[1]) * sign
|
770
|
+
@value = frac.prim_value
|
771
|
+
else
|
772
|
+
fract = self.class.approximate_by_float(prms[0].prim_value,prms[1].prim_value)
|
773
|
+
@value = fract.prim_value
|
774
|
+
end
|
763
775
|
else
|
764
776
|
@value = Rational(prms[0].prim_value,prms[1].prim_value)
|
765
777
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: primitive_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryan Colvin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-02-
|
11
|
+
date: 2018-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: blockify
|