units-money 0.0.1 → 0.1.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/README.md +88 -1
- data/lib/units-money.rb +8 -7
- data/lib/units-money/version.rb +2 -2
- data/test/test_units_money.rb +10 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 979637dbcc82fc6e61e8359774b02f6c90762182
|
4
|
+
data.tar.gz: acee5476580cd1e0a0f40d0c4a917e17e7d3e3bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2469df496d5010b40cae677428aaf4808ed2afa0f4e9abaafa7f9a5467871d0040df17f7372ceab2833640fc60acee00c5b5c60c49a417d047fe05207805897
|
7
|
+
data.tar.gz: a09949f3d91e9e4fcad5924b19009919b6539dc56fc8c88abb80373226d5f802ad0febe70136b3c421af181d03da88ce24fa8b90ee23c56c391461543fa2f428
|
data/README.md
CHANGED
@@ -11,7 +11,94 @@ units-money library / gem - units of (crypto) money (in integer) incl. ether / e
|
|
11
11
|
|
12
12
|
## Usage
|
13
13
|
|
14
|
-
|
14
|
+
[Money](#money)
|
15
|
+
|
16
|
+
The following methods are added on `Integer` (`Fixnum` and `Bignum`)
|
17
|
+
and always return another `Integer` (`Fixnum` and `Bignum`)
|
18
|
+
object (in the base money unit) for now:
|
19
|
+
|
20
|
+
### Exponential
|
21
|
+
|
22
|
+
``` ruby
|
23
|
+
E2 = 10**2 # 100
|
24
|
+
E3 = 10**3 # 1000
|
25
|
+
E4 = 10**4 # 10_000
|
26
|
+
E5 = 10**5 # 100_000
|
27
|
+
E6 = 10**6 # 1_000_000
|
28
|
+
E7 = 10**7 # 10_000_000
|
29
|
+
E8 = 10**8 # 100_000_000
|
30
|
+
E9 = 10**9 # 1_000_000_000
|
31
|
+
E10 = 10**10 # 10_000_000_000
|
32
|
+
E11 = 10**11 # 100_000_000_000
|
33
|
+
E12 = 10**12 # 1_000_000_000_000
|
34
|
+
E13 = 10**13 # 10_000_000_000_000
|
35
|
+
E14 = 10**14 # 100_000_000_000_000
|
36
|
+
E15 = 10**15 # 1_000_000_000_000_000
|
37
|
+
E16 = 10**16 # 10_000_000_000_000_000
|
38
|
+
E17 = 10**17 # 100_000_000_000_000_000
|
39
|
+
E18 = 10**18 # 1_000_000_000_000_000_000
|
40
|
+
|
41
|
+
def e3() self * E3; end
|
42
|
+
def e4() self * E4; end
|
43
|
+
def e5() self * E5; end
|
44
|
+
def e6() self * E6; end
|
45
|
+
def e7() self * E7; end
|
46
|
+
def e8() self * E8; end
|
47
|
+
def e9() self * E9; end
|
48
|
+
def e10() self * E10; end
|
49
|
+
def e11() self * E11; end
|
50
|
+
def e12() self * E12; end
|
51
|
+
def e13() self * E13; end
|
52
|
+
def e14() self * E14; end
|
53
|
+
def e15() self * E15; end
|
54
|
+
def e16() self * E16; end
|
55
|
+
def e17() self * E17; end
|
56
|
+
def e18() self * E18; end
|
57
|
+
```
|
58
|
+
|
59
|
+
|
60
|
+
### Ether
|
61
|
+
|
62
|
+
``` ruby
|
63
|
+
def.wei() self; end
|
64
|
+
def kwei() self * e3; end
|
65
|
+
def mwei() self * e6; end
|
66
|
+
def gwei() self * e9; end
|
67
|
+
def microether() self * e12; end
|
68
|
+
def milliether() self * e15; end
|
69
|
+
def ether() self * e18; end
|
70
|
+
|
71
|
+
########################################################
|
72
|
+
## aliases
|
73
|
+
alias_method :babbage, :kwei
|
74
|
+
alias_method :lovelace, :mwei
|
75
|
+
alias_method :shannon, :gwei
|
76
|
+
alias_method :szabo, :microether
|
77
|
+
alias_method :finney, :milliether
|
78
|
+
|
79
|
+
alias_method :microeth, :microether
|
80
|
+
alias_method :micro, :microether
|
81
|
+
alias_method :millieth, :milliether
|
82
|
+
alias_method :milli, :milliether
|
83
|
+
alias_method :eth, :ether
|
84
|
+
```
|
85
|
+
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
### Money
|
90
|
+
|
91
|
+
Note: The `Money` class is for now just an empty "wrapper" around an integer:
|
92
|
+
|
93
|
+
``` ruby
|
94
|
+
class Money
|
95
|
+
def self.zero() 0; end
|
96
|
+
end
|
97
|
+
|
98
|
+
## "global" converter function e.g. Money(0)
|
99
|
+
def Money( arg ) arg; end
|
100
|
+
```
|
101
|
+
|
15
102
|
|
16
103
|
|
17
104
|
## License
|
data/lib/units-money.rb
CHANGED
@@ -22,6 +22,7 @@ def Money( arg ) arg; end
|
|
22
22
|
|
23
23
|
|
24
24
|
module ExponentialUnits
|
25
|
+
|
25
26
|
E2 = 10**2 # 100
|
26
27
|
E3 = 10**3 # 1000
|
27
28
|
E4 = 10**4 # 10_000
|
@@ -56,7 +57,7 @@ module ExponentialUnits
|
|
56
57
|
def e16() self * E16; end
|
57
58
|
def e17() self * E17; end
|
58
59
|
def e18() self * E18; end
|
59
|
-
end
|
60
|
+
end # module ExponentialUnits
|
60
61
|
|
61
62
|
|
62
63
|
module EtherUnits
|
@@ -80,12 +81,12 @@ module EtherUnits
|
|
80
81
|
# finney => Hal Finney (1956-2014)
|
81
82
|
|
82
83
|
def wei() self; end
|
83
|
-
def kwei() self *
|
84
|
-
def mwei() self *
|
85
|
-
def gwei() self *
|
86
|
-
def microether() self *
|
87
|
-
def milliether() self *
|
88
|
-
def ether() self *
|
84
|
+
def kwei() self * e3; end
|
85
|
+
def mwei() self * e6; end
|
86
|
+
def gwei() self * e9; end
|
87
|
+
def microether() self * e12; end
|
88
|
+
def milliether() self * e15; end
|
89
|
+
def ether() self * e18; end
|
89
90
|
|
90
91
|
########################################################
|
91
92
|
## aliases
|
data/lib/units-money/version.rb
CHANGED
data/test/test_units_money.rb
CHANGED
@@ -17,9 +17,19 @@ def test_exponential
|
|
17
17
|
assert_equal 1_000_000_000, 1.e9
|
18
18
|
assert_equal 1_000_000, 1.e6
|
19
19
|
assert_equal 1_000, 1.e3
|
20
|
+
|
21
|
+
assert_equal 1_000_000_000_000_000_000, Integer::E18
|
22
|
+
assert_equal 1_000_000_000_000_000, Integer::E15
|
23
|
+
assert_equal 1_000_000_000_000, Integer::E12
|
24
|
+
assert_equal 1_000_000_000, Integer::E9
|
25
|
+
assert_equal 1_000_000, Integer::E6
|
26
|
+
assert_equal 1_000, Integer::E3
|
20
27
|
end
|
21
28
|
|
29
|
+
|
22
30
|
def test_ether
|
31
|
+
pp Integer.ancestors.inspect
|
32
|
+
|
23
33
|
value = rand( 1_000_000_000 )
|
24
34
|
|
25
35
|
assert_equal 1_000_000_000_000_000_000, 1.ether
|