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