units-money 0.0.1 → 0.1.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 +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
|