minting 1.9.7 → 2.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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +298 -122
  3. data/Rakefile +2 -7
  4. data/doc/agents/api_review-2026-06-15.md +1 -1
  5. data/doc/agents/copilot-instructions.md +2 -2
  6. data/doc/agents/expired/copilot-instructions.md +2 -2
  7. data/doc/agents/expired/gemini_gem_evaluation.md +2 -2
  8. data/lib/minting/aliases.rb +22 -0
  9. data/lib/minting/currency/currency.rb +77 -94
  10. data/lib/minting/currency/registry.rb +134 -0
  11. data/lib/minting/currency/rounding.rb +47 -0
  12. data/lib/minting/data/crypto-currencies.yaml +126 -0
  13. data/lib/minting/mint/i18n.rb +79 -29
  14. data/lib/minting/mint/mint.rb +1 -26
  15. data/lib/minting/mint/registry/crypto.rb +59 -0
  16. data/lib/minting/mint/registry/registration.rb +1 -2
  17. data/lib/minting/mint/registry/registry.rb +9 -11
  18. data/lib/minting/mint/registry/symbols.rb +37 -30
  19. data/lib/minting/mint.rb +3 -2
  20. data/lib/minting/money/allocation/allocation.rb +2 -2
  21. data/lib/minting/money/allocation/split.rb +2 -2
  22. data/lib/minting/money/arithmetics/operators.rb +10 -13
  23. data/lib/minting/money/clamp.rb +6 -6
  24. data/lib/minting/money/coercion.rb +1 -1
  25. data/lib/minting/money/comparable.rb +3 -3
  26. data/lib/minting/money/constructors.rb +3 -42
  27. data/lib/minting/money/conversion.rb +22 -18
  28. data/lib/minting/money/format/format.rb +100 -0
  29. data/lib/minting/money/format/formatter.rb +110 -0
  30. data/lib/minting/money/format/to_s.rb +20 -102
  31. data/lib/minting/money/format/validator.rb +34 -0
  32. data/lib/minting/money/money.rb +25 -9
  33. data/lib/minting/money/parse.rb +127 -0
  34. data/lib/minting/money/rounding.rb +26 -0
  35. data/lib/minting/version.rb +1 -1
  36. data/lib/minting.rb +17 -8
  37. metadata +12 -31
  38. data/doc/Mint/Currency.html +0 -2032
  39. data/doc/Mint/Money.html +0 -5139
  40. data/doc/Mint/RangeStepPatch.html +0 -277
  41. data/doc/Mint/Registry.html +0 -863
  42. data/doc/Mint/Rounding.html +0 -506
  43. data/doc/Mint/UnknownCurrency.html +0 -138
  44. data/doc/Mint.html +0 -931
  45. data/doc/Minting.html +0 -142
  46. data/doc/Numeric.html +0 -479
  47. data/doc/String.html +0 -241
  48. data/doc/_index.html +0 -206
  49. data/doc/class_list.html +0 -54
  50. data/doc/css/common.css +0 -1
  51. data/doc/css/full_list.css +0 -206
  52. data/doc/css/style.css +0 -1089
  53. data/doc/file.README.html +0 -291
  54. data/doc/file_list.html +0 -59
  55. data/doc/frames.html +0 -22
  56. data/doc/index.html +0 -291
  57. data/doc/js/app.js +0 -801
  58. data/doc/js/full_list.js +0 -334
  59. data/doc/js/jquery.js +0 -4
  60. data/doc/method_list.html +0 -758
  61. data/doc/top-level-namespace.html +0 -135
  62. data/lib/minting/mint/aliases.rb +0 -16
  63. data/lib/minting/mint/parser/parser.rb +0 -97
  64. data/lib/minting/mint/parser/separators.rb +0 -41
  65. data/lib/minting/mint/rounding.rb +0 -65
  66. data/lib/minting/money/format/formatting.rb +0 -130
@@ -1,206 +0,0 @@
1
- body {
2
- margin: 0;
3
- font-family: "Lucida Sans", "Lucida Grande", Verdana, Arial, sans-serif;
4
- font-size: 13px;
5
- height: 101%;
6
- overflow-x: hidden;
7
- background: #fafafa;
8
- }
9
-
10
- h1 {
11
- padding: 12px 10px;
12
- padding-bottom: 0;
13
- margin: 0;
14
- font-size: 1.4em;
15
- }
16
- .clear {
17
- clear: both;
18
- }
19
- .fixed_header {
20
- position: fixed;
21
- background: #fff;
22
- width: 100%;
23
- padding-bottom: 10px;
24
- margin-top: 0;
25
- top: 0;
26
- z-index: 9999;
27
- height: 70px;
28
- }
29
- #search {
30
- position: absolute;
31
- right: 5px;
32
- top: 9px;
33
- padding-left: 24px;
34
- }
35
- #noresults {
36
- padding: 7px 12px;
37
- background: #fff;
38
- }
39
- #content.insearch #search,
40
- #content.insearch #noresults {
41
- background: url(data:image/gif;base64,R0lGODlhEAAQAPYAAP///wAAAPr6+pKSkoiIiO7u7sjIyNjY2J6engAAAI6OjsbGxjIyMlJSUuzs7KamppSUlPLy8oKCghwcHLKysqSkpJqamvT09Pj4+KioqM7OzkRERAwMDGBgYN7e3ujo6Ly8vCoqKjY2NkZGRtTU1MTExDw8PE5OTj4+PkhISNDQ0MrKylpaWrS0tOrq6nBwcKysrLi4uLq6ul5eXlxcXGJiYoaGhuDg4H5+fvz8/KKiohgYGCwsLFZWVgQEBFBQUMzMzDg4OFhYWBoaGvDw8NbW1pycnOLi4ubm5kBAQKqqqiQkJCAgIK6urnJyckpKSjQ0NGpqatLS0sDAwCYmJnx8fEJCQlRUVAoKCggICLCwsOTk5ExMTPb29ra2tmZmZmhoaNzc3KCgoBISEiIiIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCAAAACwAAAAAEAAQAAAHaIAAgoMgIiYlg4kACxIaACEJCSiKggYMCRselwkpghGJBJEcFgsjJyoAGBmfggcNEx0flBiKDhQFlIoCCA+5lAORFb4AJIihCRbDxQAFChAXw9HSqb60iREZ1omqrIPdJCTe0SWI09GBACH5BAkIAAAALAAAAAAQABAAAAdrgACCgwc0NTeDiYozCQkvOTo9GTmDKy8aFy+NOBA7CTswgywJDTIuEjYFIY0JNYMtKTEFiRU8Pjwygy4ws4owPyCKwsMAJSTEgiQlgsbIAMrO0dKDGMTViREZ14kYGRGK38nHguHEJcvTyIEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDAggPg4iJAAMJCRUAJRIqiRGCBI0WQEEJJkWDERkYAAUKEBc4Po1GiKKJHkJDNEeKig4URLS0ICImJZAkuQAhjSi/wQyNKcGDCyMnk8u5rYrTgqDVghgZlYjcACTA1sslvtHRgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCQARAtOUoQRGRiFD0kJUYWZhUhKT1OLhR8wBaaFBzQ1NwAlkIszCQkvsbOHL7Y4q4IuEjaqq0ZQD5+GEEsJTDCMmIUhtgk1lo6QFUwJVDKLiYJNUd6/hoEAIfkECQgAAAAsAAAAABAAEAAAB2iAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4uen4ICCA+IkIsDCQkVACWmhwSpFqAABQoQF6ALTkWFnYMrVlhWvIKTlSAiJiVVPqlGhJkhqShHV1lCW4cMqSkAR1ofiwsjJyqGgQAh+QQJCAAAACwAAAAAEAAQAAAHZ4AAgoOEhYaCJSWHgxGDJCSMhREZGIYYGY2ElYebi56fhyWQniSKAKKfpaCLFlAPhl0gXYNGEwkhGYREUywag1wJwSkHNDU3D0kJYIMZQwk8MjPBLx9eXwuETVEyAC/BOKsuEjYFhoEAIfkECQgAAAAsAAAAABAAEAAAB2eAAIKDhIWGgiUlh4MRgyQkjIURGRiGGBmNhJWHm4ueICImip6CIQkJKJ4kigynKaqKCyMnKqSEK05StgAGQRxPYZaENqccFgIID4KXmQBhXFkzDgOnFYLNgltaSAAEpxa7BQoQF4aBACH5BAkIAAAALAAAAAAQABAAAAdogACCg4SFggJiPUqCJSWGgkZjCUwZACQkgxGEXAmdT4UYGZqCGWQ+IjKGGIUwPzGPhAc0NTewhDOdL7Ykji+dOLuOLhI2BbaFETICx4MlQitdqoUsCQ2vhKGjglNfU0SWmILaj43M5oEAOwAAAAAAAAAAAA==)
42
- no-repeat center left;
43
- }
44
- #full_list {
45
- padding: 0;
46
- list-style: none;
47
- margin-left: 0;
48
- margin-top: 80px;
49
- font-size: 1.1em;
50
- }
51
- #full_list ul {
52
- padding: 0;
53
- }
54
- #full_list li {
55
- padding: 0;
56
- margin: 0;
57
- list-style: none;
58
- }
59
- #full_list li .item {
60
- padding: 5px 5px 5px 12px;
61
- }
62
- #content.insearch #noresults {
63
- margin-left: 7px;
64
- }
65
- #full_list li {
66
- color: #666;
67
- cursor: normal;
68
- white-space: nowrap;
69
- }
70
- #full_list li.collapsed ul {
71
- display: none;
72
- }
73
- #full_list li a.toggle {
74
- cursor: default;
75
- position: relative;
76
- left: -5px;
77
- top: 4px;
78
- text-indent: -999px;
79
- width: 10px;
80
- height: 9px;
81
- margin-left: -10px;
82
- display: block;
83
- float: left;
84
- background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTM5jWRgMAAAAVdEVYdENyZWF0aW9uIFRpbWUAMy8xNC8wOeNZPpQAAAE2SURBVDiNrZTBccIwEEXfelIAHUA6CZ24BGaWO+FuzZAK4k6gg5QAdGAq+Bxs2Yqx7BzyL7Llp/VfzZeQhCTc/ezuGzKKnKSzpCxXJM8fwNXda3df5RZETlIt6YUzSQDs93sl8w3wBZxCCE10GM1OcWbWjB2mWgEH4Mfdyxm3PSepBHibgQE2wLe7r4HjEidpnXMYdQPKEMJcsZ4zs2POYQOcaPfwMVOo58zsAdMt18BuoVDPxUJRacELbXv3hUIX2vYmOUvi8C8ydz/ThjXrqKqqLbDIAdsCKBd+Wo7GWa7o9qzOQHVVVXeAbs+yHHCH4aTsaCOQqunmUy1yBUAXkdMIfMlgF5EXLo2OpV/c/Up7jG4hhHcYLgWzAZXUc2b2ixsfvc/RmNNfOXD3Q/oeL9axJE1yT9IOoUu6MGUkAAAAAElFTkSuQmCC)
85
- no-repeat bottom left;
86
- }
87
- #full_list li.collapsed a.toggle {
88
- cursor: default;
89
- background-position: top left;
90
- }
91
- #full_list li.deprecated {
92
- text-decoration: line-through;
93
- font-style: italic;
94
- }
95
- #full_list li.odd {
96
- background: #f0f0f0;
97
- }
98
- #full_list li.even {
99
- background: #fafafa;
100
- }
101
- #full_list .item:hover {
102
- background: #ddd;
103
- }
104
- #full_list li small:before {
105
- content: "(";
106
- }
107
- #full_list li small:after {
108
- content: ")";
109
- }
110
- #full_list li small.search_info {
111
- display: none;
112
- }
113
- a,
114
- a:visited {
115
- text-decoration: none;
116
- color: #05a;
117
- }
118
- #full_list li.clicked > .item {
119
- background: #05a;
120
- color: #ccc;
121
- }
122
- #full_list li.clicked > .item a,
123
- #full_list li.clicked > .item a:visited {
124
- color: #eee;
125
- }
126
- #full_list li.clicked > .item a.toggle {
127
- opacity: 0.5;
128
- background-position: bottom right;
129
- }
130
- #full_list li.collapsed.clicked a.toggle {
131
- background-position: top right;
132
- }
133
- #search input {
134
- border: 1px solid #bbb;
135
- border-radius: 3px;
136
- }
137
- #full_list_nav {
138
- margin-left: 10px;
139
- font-size: 0.9em;
140
- display: block;
141
- color: #aaa;
142
- }
143
- #full_list_nav a,
144
- #nav a:visited {
145
- color: #358;
146
- }
147
- #full_list_nav a:hover {
148
- background: transparent;
149
- color: #5af;
150
- }
151
- #full_list_nav span:after {
152
- content: " | ";
153
- }
154
- #full_list_nav span:last-child:after {
155
- content: "";
156
- }
157
-
158
- #content h1 {
159
- margin-top: 0;
160
- }
161
- #full_list li small {
162
- display: block;
163
- font-size: 0.8em;
164
- }
165
- #full_list li small:before {
166
- content: "";
167
- }
168
- #full_list li small:after {
169
- content: "";
170
- }
171
- #full_list li small.search_info {
172
- display: none;
173
- }
174
- #search {
175
- width: 170px;
176
- position: static;
177
- margin: 3px;
178
- margin-left: 10px;
179
- font-size: 0.9em;
180
- color: #666;
181
- padding-left: 0;
182
- padding-right: 24px;
183
- }
184
- #content.insearch #search {
185
- background-position: center right;
186
- }
187
- #search input {
188
- width: 110px;
189
- }
190
-
191
- #full_list.insearch ul {
192
- display: block;
193
- }
194
- #full_list.insearch .item {
195
- display: none;
196
- }
197
- #full_list.insearch .found {
198
- display: block;
199
- padding-left: 11px;
200
- }
201
- #full_list.insearch li a.toggle {
202
- display: none;
203
- }
204
- #full_list.insearch li small.search_info {
205
- display: block;
206
- }