minting 1.9.7 → 2.0.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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +234 -116
  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 +81 -9
  10. data/lib/minting/data/crypto-currencies.yaml +126 -0
  11. data/lib/minting/mint/i18n.rb +79 -29
  12. data/lib/minting/mint/mint.rb +1 -26
  13. data/lib/minting/mint/registry/crypto.rb +59 -0
  14. data/lib/minting/mint/registry/registration.rb +1 -2
  15. data/lib/minting/mint/registry/symbols.rb +37 -30
  16. data/lib/minting/mint/rounding.rb +9 -7
  17. data/lib/minting/mint.rb +1 -2
  18. data/lib/minting/money/allocation/allocation.rb +2 -2
  19. data/lib/minting/money/allocation/split.rb +1 -1
  20. data/lib/minting/money/arithmetics/operators.rb +10 -13
  21. data/lib/minting/money/clamp.rb +6 -6
  22. data/lib/minting/money/coercion.rb +1 -1
  23. data/lib/minting/money/comparable.rb +3 -3
  24. data/lib/minting/money/constructors.rb +3 -42
  25. data/lib/minting/money/conversion.rb +22 -18
  26. data/lib/minting/money/format/format.rb +100 -0
  27. data/lib/minting/money/format/formatter.rb +102 -0
  28. data/lib/minting/money/format/to_s.rb +20 -102
  29. data/lib/minting/money/format/validator.rb +34 -0
  30. data/lib/minting/money/money.rb +25 -9
  31. data/lib/minting/money/parse.rb +127 -0
  32. data/lib/minting/money/rounding.rb +27 -0
  33. data/lib/minting/version.rb +1 -1
  34. data/lib/minting.rb +17 -8
  35. metadata +9 -29
  36. data/doc/Mint/Currency.html +0 -2032
  37. data/doc/Mint/Money.html +0 -5139
  38. data/doc/Mint/RangeStepPatch.html +0 -277
  39. data/doc/Mint/Registry.html +0 -863
  40. data/doc/Mint/Rounding.html +0 -506
  41. data/doc/Mint/UnknownCurrency.html +0 -138
  42. data/doc/Mint.html +0 -931
  43. data/doc/Minting.html +0 -142
  44. data/doc/Numeric.html +0 -479
  45. data/doc/String.html +0 -241
  46. data/doc/_index.html +0 -206
  47. data/doc/class_list.html +0 -54
  48. data/doc/css/common.css +0 -1
  49. data/doc/css/full_list.css +0 -206
  50. data/doc/css/style.css +0 -1089
  51. data/doc/file.README.html +0 -291
  52. data/doc/file_list.html +0 -59
  53. data/doc/frames.html +0 -22
  54. data/doc/index.html +0 -291
  55. data/doc/js/app.js +0 -801
  56. data/doc/js/full_list.js +0 -334
  57. data/doc/js/jquery.js +0 -4
  58. data/doc/method_list.html +0 -758
  59. data/doc/top-level-namespace.html +0 -135
  60. data/lib/minting/mint/aliases.rb +0 -16
  61. data/lib/minting/mint/parser/parser.rb +0 -97
  62. data/lib/minting/mint/parser/separators.rb +0 -41
  63. 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
- }