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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ae4e44e51a6022d26084d8619fc7d258d787ae2
4
- data.tar.gz: fe0e4b14ba1ba6caeb14c811d8b900f15014cdd8
3
+ metadata.gz: 979637dbcc82fc6e61e8359774b02f6c90762182
4
+ data.tar.gz: acee5476580cd1e0a0f40d0c4a917e17e7d3e3bc
5
5
  SHA512:
6
- metadata.gz: ff550678a16e1eeb49b248296f3781bb82671e8d505344976b69a7deabaa91427a25fd312a7c7bbe3efd575403db609536e6b7481c7892a02f231aef93637648
7
- data.tar.gz: cb6bc224a0b01e1158e69ab9db410594ddc5c5f29bfd5fbc2c97be6bbbefb73c8ba12f8b97ac1c6244ab11e8df00c6702f1df4393effed9ac1fc2b2301d2f394
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
- To be done
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 * E3; end
84
- def mwei() self * E6; end
85
- def gwei() self * E9; end
86
- def microether() self * E12; end
87
- def milliether() self * E15; end
88
- def ether() self * E18; end
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
@@ -3,8 +3,8 @@
3
3
  module UnitsMoney
4
4
 
5
5
  MAJOR = 0
6
- MINOR = 0
7
- PATCH = 1
6
+ MINOR = 1
7
+ PATCH = 0
8
8
  VERSION = [MAJOR,MINOR,PATCH].join('.')
9
9
 
10
10
  def self.version
@@ -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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: units-money
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer