minting 1.7.3 → 1.8.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.
data/doc/Mint/Money.html CHANGED
@@ -235,6 +235,28 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
235
235
 
236
236
 
237
237
 
238
+ <span class="summary_desc"><div class='inline'><p>Backwards-compatible alias for previous API TODO: deprecate in a future major release.</p></div></span>
239
+
240
+ </li>
241
+
242
+
243
+ <li class="public ">
244
+ <span class="summary_signature">
245
+
246
+ <a href="#from-class_method" title="from (class method)">.<strong>from</strong>(amount, currency) &#x21d2; Object </a>
247
+
248
+
249
+
250
+ </span>
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
238
260
  <span class="summary_desc"><div class='inline'><p>Creates a new Money immutable object with the specified amount and currency.</p></div></span>
239
261
 
240
262
  </li>
@@ -262,6 +284,72 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
262
284
  </li>
263
285
 
264
286
 
287
+ <li class="public ">
288
+ <span class="summary_signature">
289
+
290
+ <a href="#parse-class_method" title="parse (class method)">.<strong>parse</strong>(input, currency = nil) &#x21d2; Money<sup>?</sup> </a>
291
+
292
+
293
+
294
+ </span>
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+ <span class="summary_desc"><div class='inline'><p>Parses a human-readable money string into a <span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span> object.</p></div></span>
305
+
306
+ </li>
307
+
308
+
309
+ <li class="public ">
310
+ <span class="summary_signature">
311
+
312
+ <a href="#parse!-class_method" title="parse! (class method)">.<strong>parse!</strong>(input, currency = nil) &#x21d2; Money </a>
313
+
314
+
315
+
316
+ </span>
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+ <span class="summary_desc"><div class='inline'><p>Like <span class='object_link'><a href="#parse-class_method" title="Mint::Money.parse (method)">Money.parse</a></span> but raises on failure.</p></div></span>
327
+
328
+ </li>
329
+
330
+
331
+ <li class="public ">
332
+ <span class="summary_signature">
333
+
334
+ <a href="#zero-class_method" title="zero (class method)">.<strong>zero</strong>(currency) &#x21d2; Money </a>
335
+
336
+
337
+
338
+ </span>
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+
348
+ <span class="summary_desc"><div class='inline'><p>Returns a frozen zero Money in the given currency.</p></div></span>
349
+
350
+ </li>
351
+
352
+
265
353
  </ul>
266
354
 
267
355
 
@@ -495,6 +583,28 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
495
583
  <li class="public ">
496
584
  <span class="summary_signature">
497
585
 
586
+ <a href="#change-instance_method" title="#change (instance method)">#<strong>change</strong>(new_amount) &#x21d2; Money </a>
587
+
588
+
589
+
590
+ </span>
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+ <span class="summary_desc"><div class='inline'><p>Returns a new Money object with the specified amount, or self if unchanged.</p></div></span>
601
+
602
+ </li>
603
+
604
+
605
+ <li class="public ">
606
+ <span class="summary_signature">
607
+
498
608
  <a href="#clamp-instance_method" title="#clamp (instance method)">#<strong>clamp</strong>(min_or_range, max = nil) &#x21d2; Money </a>
499
609
 
500
610
 
@@ -649,7 +759,7 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
649
759
  <li class="public ">
650
760
  <span class="summary_signature">
651
761
 
652
- <a href="#mint-instance_method" title="#mint (instance method)">#<strong>mint</strong>(new_amount) &#x21d2; Money </a>
762
+ <a href="#mint-instance_method" title="#mint (instance method)">#<strong>mint</strong>(new_amount) &#x21d2; Object </a>
653
763
 
654
764
 
655
765
 
@@ -663,7 +773,7 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
663
773
 
664
774
 
665
775
 
666
- <span class="summary_desc"><div class='inline'><p>Returns a new Money object with the specified amount, or self if unchanged.</p></div></span>
776
+ <span class="summary_desc"><div class='inline'></div></span>
667
777
 
668
778
  </li>
669
779
 
@@ -751,7 +861,7 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
751
861
 
752
862
 
753
863
 
754
- <span class="summary_desc"><div class='inline'><p>Helper method to verify if another object has the identical currency.</p></div></span>
864
+ <span class="summary_desc"><div class='inline'><p>Helper method to verify if another Money has the identical currency.</p></div></span>
755
865
 
756
866
  </li>
757
867
 
@@ -1105,6 +1215,48 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
1105
1215
 
1106
1216
 
1107
1217
 
1218
+ </h3><div class="docstring">
1219
+ <div class="discussion">
1220
+ <p>Backwards-compatible alias for previous API
1221
+ TODO: deprecate in a future major release</p>
1222
+
1223
+ </div>
1224
+ </div>
1225
+ <div class="tags">
1226
+
1227
+
1228
+ </div><table class="source_code">
1229
+ <tr>
1230
+ <td>
1231
+ <pre class="lines">
1232
+
1233
+
1234
+ 57
1235
+ 58
1236
+ 59
1237
+ 60</pre>
1238
+ </td>
1239
+ <td>
1240
+ <pre class="code"><span class="info file"># File 'lib/minting/money/constructors.rb', line 57</span>
1241
+
1242
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1243
+ <span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Money.create is now deprecated. Use Money.from</span><span class='tstring_end'>&#39;</span></span>
1244
+ <span class='id identifier rubyid_from'>from</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1245
+ <span class='kw'>end</span></pre>
1246
+ </td>
1247
+ </tr>
1248
+ </table>
1249
+ </div>
1250
+
1251
+ <div class="method_details ">
1252
+ <h3 class="signature " id="from-class_method">
1253
+
1254
+ .<strong>from</strong>(amount, currency) &#x21d2; <tt>Object</tt>
1255
+
1256
+
1257
+
1258
+
1259
+
1108
1260
  </h3><div class="docstring">
1109
1261
  <div class="discussion">
1110
1262
  <p>Creates a new Money immutable object with the specified amount and currency</p>
@@ -1125,7 +1277,349 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
1125
1277
 
1126
1278
 
1127
1279
  &mdash;
1128
- <div class='inline'><p>The monetary amount</p></div>
1280
+ <div class='inline'><p>The monetary amount</p></div>
1281
+
1282
+ </li>
1283
+
1284
+ <li>
1285
+
1286
+ <span class='name'>currency</span>
1287
+
1288
+
1289
+ <span class='type'>(<tt><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></tt>, <tt>String</tt>)</span>
1290
+
1291
+
1292
+
1293
+ &mdash;
1294
+ <div class='inline'><p>The currency code or currency object</p></div>
1295
+
1296
+ </li>
1297
+
1298
+ </ul>
1299
+
1300
+ <p class="tag_title">Raises:</p>
1301
+ <ul class="raise">
1302
+
1303
+ <li>
1304
+
1305
+
1306
+ <span class='type'>(<tt>ArgumentError</tt>)</span>
1307
+
1308
+
1309
+
1310
+ &mdash;
1311
+ <div class='inline'><p>If amount is not numeric or currency is invalid</p></div>
1312
+
1313
+ </li>
1314
+
1315
+ </ul>
1316
+
1317
+ </div><table class="source_code">
1318
+ <tr>
1319
+ <td>
1320
+ <pre class="lines">
1321
+
1322
+
1323
+ 10
1324
+ 11
1325
+ 12
1326
+ 13
1327
+ 14
1328
+ 15
1329
+ 16
1330
+ 17</pre>
1331
+ </td>
1332
+ <td>
1333
+ <pre class="code"><span class="info file"># File 'lib/minting/money/constructors.rb', line 10</span>
1334
+
1335
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_from'>from</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1336
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>amount must be Numeric</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_amount'>amount</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span>
1337
+
1338
+ <span class='id identifier rubyid_currency'>currency</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></span><span class='period'>.</span><span class='id identifier rubyid_resolve!'><span class='object_link'><a href="Currency.html#resolve!-class_method" title="Mint::Currency.resolve! (method)">resolve!</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1339
+ <span class='id identifier rubyid_amount'>amount</span> <span class='op'>=</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_normalize_amount'>normalize_amount</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='rparen'>)</span>
1340
+
1341
+ <span class='id identifier rubyid_amount'>amount</span><span class='period'>.</span><span class='id identifier rubyid_zero?'>zero?</span> <span class='op'>?</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_zero'>zero</span> <span class='op'>:</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1342
+ <span class='kw'>end</span></pre>
1343
+ </td>
1344
+ </tr>
1345
+ </table>
1346
+ </div>
1347
+
1348
+ <div class="method_details ">
1349
+ <h3 class="signature " id="from_fractional-class_method">
1350
+
1351
+ .<strong>from_fractional</strong>(fractional, currency) &#x21d2; <tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>
1352
+
1353
+
1354
+
1355
+
1356
+
1357
+ </h3><div class="docstring">
1358
+ <div class="discussion">
1359
+ <p>Builds a Money from a fractional (smallest-unit) Integer amount.
1360
+ This is the inverse of <span class='object_link'><a href="#fractional-instance_method" title="Mint::Money#fractional (method)">#fractional</a></span>: for USD, the fractional unit is
1361
+ 1 cent; for JPY it is 1 yen; for IQD it is 1 dinar (subunit 3).</p>
1362
+
1363
+ </div>
1364
+ </div>
1365
+ <div class="tags">
1366
+
1367
+ <div class="examples">
1368
+ <h4 class="tag_title">Examples:</h4>
1369
+
1370
+
1371
+ <h5 class="example_title"><div class='inline'><p>USD cents</p></div></h5>
1372
+
1373
+ <pre class="example code"><code><span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_fractional'>from_fractional</span><span class='lparen'>(</span><span class='int'>123_456</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='comment'>#=&gt; [USD 1234.56]</span></code></pre>
1374
+
1375
+
1376
+ <h5 class="example_title"><div class='inline'><p>JPY (subunit 0)</p></div></h5>
1377
+
1378
+ <pre class="example code"><code><span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_fractional'>from_fractional</span><span class='lparen'>(</span><span class='int'>1234</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>JPY</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='comment'>#=&gt; [JPY 1234]</span></code></pre>
1379
+
1380
+
1381
+ <h5 class="example_title"><div class='inline'><p>Round trip</p></div></h5>
1382
+
1383
+ <pre class="example code"><code><span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Mint.html" title="Mint (module)">Mint</a></span></span><span class='period'>.</span><span class='id identifier rubyid_money'><span class='object_link'><a href="../Mint.html#money-class_method" title="Mint.money (method)">money</a></span></span><span class='lparen'>(</span><span class='float'>9.99</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
1384
+ <span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_fractional'>from_fractional</span><span class='lparen'>(</span><span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_fractional'>fractional</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='op'>==</span> <span class='id identifier rubyid_m'>m</span> <span class='comment'>#=&gt; true</span></code></pre>
1385
+
1386
+ </div>
1387
+ <p class="tag_title">Parameters:</p>
1388
+ <ul class="param">
1389
+
1390
+ <li>
1391
+
1392
+ <span class='name'>fractional</span>
1393
+
1394
+
1395
+ <span class='type'>(<tt>Integer</tt>)</span>
1396
+
1397
+
1398
+
1399
+ &mdash;
1400
+ <div class='inline'><p>the amount expressed in the currency's
1401
+ smallest unit (e.g. cents). Must be an Integer to preserve exactness.</p></div>
1402
+
1403
+ </li>
1404
+
1405
+ <li>
1406
+
1407
+ <span class='name'>currency</span>
1408
+
1409
+
1410
+ <span class='type'>(<tt>String</tt>, <tt>Symbol</tt>, <tt><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></tt>)</span>
1411
+
1412
+
1413
+
1414
+ &mdash;
1415
+ <div class='inline'><p>the currency identifier</p></div>
1416
+
1417
+ </li>
1418
+
1419
+ </ul>
1420
+
1421
+ <p class="tag_title">Returns:</p>
1422
+ <ul class="return">
1423
+
1424
+ <li>
1425
+
1426
+
1427
+ <span class='type'>(<tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>)</span>
1428
+
1429
+
1430
+
1431
+ &mdash;
1432
+ <div class='inline'><p>the resulting Money instance</p></div>
1433
+
1434
+ </li>
1435
+
1436
+ </ul>
1437
+ <p class="tag_title">Raises:</p>
1438
+ <ul class="raise">
1439
+
1440
+ <li>
1441
+
1442
+
1443
+ <span class='type'>(<tt>ArgumentError</tt>)</span>
1444
+
1445
+
1446
+
1447
+ &mdash;
1448
+ <div class='inline'><p>if <code>fractional</code> is not an Integer or <code>currency</code>
1449
+ is not registered</p></div>
1450
+
1451
+ </li>
1452
+
1453
+ </ul>
1454
+
1455
+ </div><table class="source_code">
1456
+ <tr>
1457
+ <td>
1458
+ <pre class="lines">
1459
+
1460
+
1461
+ 80
1462
+ 81
1463
+ 82
1464
+ 83
1465
+ 84
1466
+ 85
1467
+ 86</pre>
1468
+ </td>
1469
+ <td>
1470
+ <pre class="code"><span class="info file"># File 'lib/minting/money/constructors.rb', line 80</span>
1471
+
1472
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_from_fractional'>from_fractional</span><span class='lparen'>(</span><span class='id identifier rubyid_fractional'>fractional</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1473
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>fractional must be an Integer</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_fractional'>fractional</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Integer</span><span class='rparen'>)</span>
1474
+
1475
+ <span class='id identifier rubyid_currency'>currency</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></span><span class='period'>.</span><span class='id identifier rubyid_resolve!'><span class='object_link'><a href="Currency.html#resolve!-class_method" title="Mint::Currency.resolve! (method)">resolve!</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1476
+ <span class='id identifier rubyid_amount'>amount</span> <span class='op'>=</span> <span class='const'>Rational</span><span class='lparen'>(</span><span class='id identifier rubyid_fractional'>fractional</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_fractional_multiplier'>fractional_multiplier</span><span class='rparen'>)</span>
1477
+ <span class='id identifier rubyid_amount'>amount</span><span class='period'>.</span><span class='id identifier rubyid_zero?'>zero?</span> <span class='op'>?</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_zero'>zero</span> <span class='op'>:</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1478
+ <span class='kw'>end</span></pre>
1479
+ </td>
1480
+ </tr>
1481
+ </table>
1482
+ </div>
1483
+
1484
+ <div class="method_details ">
1485
+ <h3 class="signature " id="parse-class_method">
1486
+
1487
+ .<strong>parse</strong>(input, currency = nil) &#x21d2; <tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt><sup>?</sup>
1488
+
1489
+
1490
+
1491
+
1492
+
1493
+ </h3><div class="docstring">
1494
+ <div class="discussion">
1495
+ <p>Parses a human-readable money string into a <span class='object_link'><a href="" title="Mint::Money (class)">Mint::Money</a></span> object.</p>
1496
+ <p>Returns <code>nil</code> when the input is invalid or currency cannot be determined.</p>
1497
+
1498
+ </div>
1499
+ </div>
1500
+ <div class="tags">
1501
+
1502
+ <div class="examples">
1503
+ <h4 class="tag_title">Examples:</h4>
1504
+
1505
+
1506
+ <h5 class="example_title"><div class='inline'><p>With explicit currency</p></div></h5>
1507
+
1508
+ <pre class="example code"><code><span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>19.99</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='comment'>#=&gt; [USD 19.99]
1509
+ </span><span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>garbage</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='comment'>#=&gt; nil</span></code></pre>
1510
+
1511
+
1512
+ <h5 class="example_title"><div class='inline'><p>With symbol or code in the string</p></div></h5>
1513
+
1514
+ <pre class="example code"><code><span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>$19.99</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='comment'>#=&gt; [USD 19.99]
1515
+ </span><span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD 1,234.56</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='comment'>#=&gt; [USD 1234.56]</span></code></pre>
1516
+
1517
+ </div>
1518
+ <p class="tag_title">Parameters:</p>
1519
+ <ul class="param">
1520
+
1521
+ <li>
1522
+
1523
+ <span class='name'>input</span>
1524
+
1525
+
1526
+ <span class='type'>(<tt>String</tt>)</span>
1527
+
1528
+
1529
+
1530
+ &mdash;
1531
+ <div class='inline'><p>Amount input, optionally including a currency symbol or code</p></div>
1532
+
1533
+ </li>
1534
+
1535
+ <li>
1536
+
1537
+ <span class='name'>currency</span>
1538
+
1539
+
1540
+ <span class='type'>(<tt>String</tt>, <tt>Symbol</tt>, <tt><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></tt>, <tt>nil</tt>)</span>
1541
+
1542
+
1543
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1544
+
1545
+
1546
+ &mdash;
1547
+ <div class='inline'><p>ISO code when not present in <code>input</code></p></div>
1548
+
1549
+ </li>
1550
+
1551
+ </ul>
1552
+
1553
+ <p class="tag_title">Returns:</p>
1554
+ <ul class="return">
1555
+
1556
+ <li>
1557
+
1558
+
1559
+ <span class='type'>(<tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>, <tt>nil</tt>)</span>
1560
+
1561
+
1562
+
1563
+ </li>
1564
+
1565
+ </ul>
1566
+
1567
+ </div><table class="source_code">
1568
+ <tr>
1569
+ <td>
1570
+ <pre class="lines">
1571
+
1572
+
1573
+ 34</pre>
1574
+ </td>
1575
+ <td>
1576
+ <pre class="code"><span class="info file"># File 'lib/minting/money/constructors.rb', line 34</span>
1577
+
1578
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_input'>input</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Mint.html" title="Mint (module)">Mint</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse'><span class='object_link'><a href="../Mint.html#parse-instance_method" title="Mint#parse (method)">parse</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_input'>input</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span></pre>
1579
+ </td>
1580
+ </tr>
1581
+ </table>
1582
+ </div>
1583
+
1584
+ <div class="method_details ">
1585
+ <h3 class="signature " id="parse!-class_method">
1586
+
1587
+ .<strong>parse!</strong>(input, currency = nil) &#x21d2; <tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>
1588
+
1589
+
1590
+
1591
+
1592
+
1593
+ </h3><div class="docstring">
1594
+ <div class="discussion">
1595
+ <p>Like <span class='object_link'><a href="#parse-class_method" title="Mint::Money.parse (method)">parse</a></span> but raises on failure.</p>
1596
+
1597
+ </div>
1598
+ </div>
1599
+ <div class="tags">
1600
+
1601
+ <div class="examples">
1602
+ <h4 class="tag_title">Examples:</h4>
1603
+
1604
+
1605
+ <pre class="example code"><code><span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse!'>parse!</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>19.99</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='comment'>#=&gt; [USD 19.99]
1606
+ </span><span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse!'>parse!</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>garbage</span><span class='tstring_end'>&#39;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='comment'>#=&gt; ArgumentError</span></code></pre>
1607
+
1608
+ </div>
1609
+ <p class="tag_title">Parameters:</p>
1610
+ <ul class="param">
1611
+
1612
+ <li>
1613
+
1614
+ <span class='name'>input</span>
1615
+
1616
+
1617
+ <span class='type'>(<tt>String</tt>)</span>
1618
+
1619
+
1620
+
1621
+ &mdash;
1622
+ <div class='inline'><p>Amount input, optionally including a currency symbol or code</p></div>
1129
1623
 
1130
1624
  </li>
1131
1625
 
@@ -1134,17 +1628,32 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
1134
1628
  <span class='name'>currency</span>
1135
1629
 
1136
1630
 
1137
- <span class='type'>(<tt><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></tt>, <tt>String</tt>)</span>
1631
+ <span class='type'>(<tt>String</tt>, <tt>Symbol</tt>, <tt><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></tt>, <tt>nil</tt>)</span>
1632
+
1138
1633
 
1634
+ <em class="default">(defaults to: <tt>nil</tt>)</em>
1139
1635
 
1140
1636
 
1141
1637
  &mdash;
1142
- <div class='inline'><p>The currency code or currency object</p></div>
1638
+ <div class='inline'><p>ISO code when not present in <code>input</code></p></div>
1143
1639
 
1144
1640
  </li>
1145
1641
 
1146
1642
  </ul>
1147
1643
 
1644
+ <p class="tag_title">Returns:</p>
1645
+ <ul class="return">
1646
+
1647
+ <li>
1648
+
1649
+
1650
+ <span class='type'>(<tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>)</span>
1651
+
1652
+
1653
+
1654
+ </li>
1655
+
1656
+ </ul>
1148
1657
  <p class="tag_title">Raises:</p>
1149
1658
  <ul class="raise">
1150
1659
 
@@ -1156,7 +1665,7 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
1156
1665
 
1157
1666
 
1158
1667
  &mdash;
1159
- <div class='inline'><p>If amount is not numeric or currency is invalid</p></div>
1668
+ <div class='inline'><p>when <code>input</code> is invalid or currency cannot be determined</p></div>
1160
1669
 
1161
1670
  </li>
1162
1671
 
@@ -1168,35 +1677,21 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
1168
1677
  <pre class="lines">
1169
1678
 
1170
1679
 
1171
- 10
1172
- 11
1173
- 12
1174
- 13
1175
- 14
1176
- 15
1177
- 16
1178
- 17</pre>
1680
+ 46</pre>
1179
1681
  </td>
1180
1682
  <td>
1181
- <pre class="code"><span class="info file"># File 'lib/minting/money/constructors.rb', line 10</span>
1182
-
1183
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1184
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>amount must be Numeric</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_amount'>amount</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span>
1185
-
1186
- <span class='id identifier rubyid_currency'>currency</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></span><span class='period'>.</span><span class='id identifier rubyid_resolve!'><span class='object_link'><a href="Currency.html#resolve!-class_method" title="Mint::Currency.resolve! (method)">resolve!</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1187
- <span class='id identifier rubyid_amount'>amount</span> <span class='op'>=</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_normalize_amount'>normalize_amount</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='rparen'>)</span>
1683
+ <pre class="code"><span class="info file"># File 'lib/minting/money/constructors.rb', line 46</span>
1188
1684
 
1189
- <span class='id identifier rubyid_amount'>amount</span><span class='period'>.</span><span class='id identifier rubyid_zero?'>zero?</span> <span class='op'>?</span> <span class='const'><span class='object_link'><a href="../Mint.html" title="Mint (module)">Mint</a></span></span><span class='period'>.</span><span class='id identifier rubyid_zero'><span class='object_link'><a href="../Mint.html#zero-class_method" title="Mint.zero (method)">zero</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1190
- <span class='kw'>end</span></pre>
1685
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_parse!'>parse!</span><span class='lparen'>(</span><span class='id identifier rubyid_input'>input</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Mint.html" title="Mint (module)">Mint</a></span></span><span class='period'>.</span><span class='id identifier rubyid_parse!'><span class='object_link'><a href="../Mint.html#parse!-instance_method" title="Mint#parse! (method)">parse!</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_input'>input</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span></pre>
1191
1686
  </td>
1192
1687
  </tr>
1193
1688
  </table>
1194
1689
  </div>
1195
1690
 
1196
1691
  <div class="method_details ">
1197
- <h3 class="signature " id="from_fractional-class_method">
1692
+ <h3 class="signature " id="zero-class_method">
1198
1693
 
1199
- .<strong>from_fractional</strong>(fractional, currency) &#x21d2; <tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>
1694
+ .<strong>zero</strong>(currency) &#x21d2; <tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>
1200
1695
 
1201
1696
 
1202
1697
 
@@ -1204,63 +1699,25 @@ Uses <code>%&lt;symbol&gt;s</code> for the currency symbol and <code>%&lt;amount
1204
1699
 
1205
1700
  </h3><div class="docstring">
1206
1701
  <div class="discussion">
1207
- <p>Builds a Money from a fractional (smallest-unit) Integer amount.
1208
- This is the inverse of <span class='object_link'><a href="#fractional-instance_method" title="Mint::Money#fractional (method)">#fractional</a></span>: for USD, the fractional unit is
1209
- 1 cent; for JPY it is 1 yen; for IQD it is 1 dinar (subunit 3).</p>
1702
+ <p>Returns a frozen zero Money in the given currency.</p>
1210
1703
 
1211
1704
  </div>
1212
1705
  </div>
1213
1706
  <div class="tags">
1214
-
1215
- <div class="examples">
1216
- <h4 class="tag_title">Examples:</h4>
1217
-
1218
-
1219
- <h5 class="example_title"><div class='inline'><p>USD cents</p></div></h5>
1220
-
1221
- <pre class="example code"><code><span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_fractional'>from_fractional</span><span class='lparen'>(</span><span class='int'>123_456</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='comment'>#=&gt; [USD 1234.56]</span></code></pre>
1222
-
1223
-
1224
- <h5 class="example_title"><div class='inline'><p>JPY (subunit 0)</p></div></h5>
1225
-
1226
- <pre class="example code"><code><span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_fractional'>from_fractional</span><span class='lparen'>(</span><span class='int'>1234</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>JPY</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='comment'>#=&gt; [JPY 1234]</span></code></pre>
1227
-
1228
-
1229
- <h5 class="example_title"><div class='inline'><p>Round trip</p></div></h5>
1230
-
1231
- <pre class="example code"><code><span class='id identifier rubyid_m'>m</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Mint.html" title="Mint (module)">Mint</a></span></span><span class='period'>.</span><span class='id identifier rubyid_money'><span class='object_link'><a href="../Mint.html#money-class_method" title="Mint.money (method)">money</a></span></span><span class='lparen'>(</span><span class='float'>9.99</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
1232
- <span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_from_fractional'>from_fractional</span><span class='lparen'>(</span><span class='id identifier rubyid_m'>m</span><span class='period'>.</span><span class='id identifier rubyid_fractional'>fractional</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span> <span class='op'>==</span> <span class='id identifier rubyid_m'>m</span> <span class='comment'>#=&gt; true</span></code></pre>
1233
-
1234
- </div>
1235
- <p class="tag_title">Parameters:</p>
1707
+ <p class="tag_title">Parameters:</p>
1236
1708
  <ul class="param">
1237
1709
 
1238
- <li>
1239
-
1240
- <span class='name'>fractional</span>
1241
-
1242
-
1243
- <span class='type'>(<tt>Integer</tt>)</span>
1244
-
1245
-
1246
-
1247
- &mdash;
1248
- <div class='inline'><p>the amount expressed in the currency's
1249
- smallest unit (e.g. cents). Must be an Integer to preserve exactness.</p></div>
1250
-
1251
- </li>
1252
-
1253
1710
  <li>
1254
1711
 
1255
1712
  <span class='name'>currency</span>
1256
1713
 
1257
1714
 
1258
- <span class='type'>(<tt>String</tt>, <tt>Symbol</tt>, <tt><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></tt>)</span>
1715
+ <span class='type'>(<tt>String</tt>, <tt><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></tt>)</span>
1259
1716
 
1260
1717
 
1261
1718
 
1262
1719
  &mdash;
1263
- <div class='inline'><p>the currency identifier</p></div>
1720
+ <div class='inline'><p>a currency code or object</p></div>
1264
1721
 
1265
1722
  </li>
1266
1723
 
@@ -1277,7 +1734,7 @@ smallest unit (e.g. cents). Must be an Integer to preserve exactness.</p></div>
1277
1734
 
1278
1735
 
1279
1736
  &mdash;
1280
- <div class='inline'><p>the resulting Money instance</p></div>
1737
+ <div class='inline'><p>a frozen zero-Money</p></div>
1281
1738
 
1282
1739
  </li>
1283
1740
 
@@ -1293,8 +1750,7 @@ smallest unit (e.g. cents). Must be an Integer to preserve exactness.</p></div>
1293
1750
 
1294
1751
 
1295
1752
  &mdash;
1296
- <div class='inline'><p>if <code>fractional</code> is not an Integer or <code>currency</code>
1297
- is not registered</p></div>
1753
+ <div class='inline'><p>if the currency can't be resolved</p></div>
1298
1754
 
1299
1755
  </li>
1300
1756
 
@@ -1306,24 +1762,12 @@ is not registered</p></div>
1306
1762
  <pre class="lines">
1307
1763
 
1308
1764
 
1309
- 37
1310
- 38
1311
- 39
1312
- 40
1313
- 41
1314
- 42
1315
- 43</pre>
1765
+ 53</pre>
1316
1766
  </td>
1317
1767
  <td>
1318
- <pre class="code"><span class="info file"># File 'lib/minting/money/constructors.rb', line 37</span>
1319
-
1320
- <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_from_fractional'>from_fractional</span><span class='lparen'>(</span><span class='id identifier rubyid_fractional'>fractional</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1321
- <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>fractional must be an Integer</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_fractional'>fractional</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Integer</span><span class='rparen'>)</span>
1768
+ <pre class="code"><span class="info file"># File 'lib/minting/money/constructors.rb', line 53</span>
1322
1769
 
1323
- <span class='id identifier rubyid_currency'>currency</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></span><span class='period'>.</span><span class='id identifier rubyid_resolve!'><span class='object_link'><a href="Currency.html#resolve!-class_method" title="Mint::Currency.resolve! (method)">resolve!</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1324
- <span class='id identifier rubyid_amount'>amount</span> <span class='op'>=</span> <span class='const'>Rational</span><span class='lparen'>(</span><span class='id identifier rubyid_fractional'>fractional</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_fractional_multiplier'>fractional_multiplier</span><span class='rparen'>)</span>
1325
- <span class='id identifier rubyid_amount'>amount</span><span class='period'>.</span><span class='id identifier rubyid_zero?'>zero?</span> <span class='op'>?</span> <span class='const'><span class='object_link'><a href="../Mint.html" title="Mint (module)">Mint</a></span></span><span class='period'>.</span><span class='id identifier rubyid_zero'><span class='object_link'><a href="../Mint.html#zero-class_method" title="Mint.zero (method)">zero</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
1326
- <span class='kw'>end</span></pre>
1770
+ <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_zero'>zero</span><span class='lparen'>(</span><span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></span><span class='period'>.</span><span class='id identifier rubyid_resolve!'><span class='object_link'><a href="Currency.html#resolve!-class_method" title="Mint::Currency.resolve! (method)">resolve!</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_zero'><span class='object_link'><a href="Currency.html#zero-class_method" title="Mint::Currency.zero (method)">zero</a></span></span></pre>
1327
1771
  </td>
1328
1772
  </tr>
1329
1773
  </table>
@@ -1421,7 +1865,7 @@ is not registered</p></div>
1421
1865
  <span class='kw'>def</span> <span class='op'>*</span><span class='lparen'>(</span><span class='id identifier rubyid_multiplicand'>multiplicand</span><span class='rparen'>)</span>
1422
1866
  <span class='id identifier rubyid_raise'>raise</span> <span class='const'>TypeError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_content'> can&#39;t be multiplied by </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_multiplicand'>multiplicand</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_multiplicand'>multiplicand</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span>
1423
1867
 
1424
- <span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>*</span> <span class='id identifier rubyid_multiplicand'>multiplicand</span><span class='rparen'>)</span>
1868
+ <span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>*</span> <span class='id identifier rubyid_multiplicand'>multiplicand</span><span class='rparen'>)</span>
1425
1869
  <span class='kw'>end</span></pre>
1426
1870
  </td>
1427
1871
  </tr>
@@ -1509,7 +1953,7 @@ is not registered</p></div>
1509
1953
  <pre class="code"><span class="info file"># File 'lib/minting/money/arithmetics/operators.rb', line 67</span>
1510
1954
 
1511
1955
  <span class='kw'>def</span> <span class='op'>**</span><span class='lparen'>(</span><span class='id identifier rubyid_exponent'>exponent</span><span class='rparen'>)</span>
1512
- <span class='kw'>return</span> <span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='op'>**</span><span class='id identifier rubyid_exponent'>exponent</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_exponent'>exponent</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span>
1956
+ <span class='kw'>return</span> <span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='op'>**</span><span class='id identifier rubyid_exponent'>exponent</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_exponent'>exponent</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span>
1513
1957
 
1514
1958
  <span class='id identifier rubyid_raise'>raise</span> <span class='const'>TypeError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_content'> can&#39;t be powered by </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_exponent'>exponent</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1515
1959
  <span class='kw'>end</span></pre>
@@ -1606,7 +2050,7 @@ is not registered</p></div>
1606
2050
  <span class='kw'>def</span> <span class='op'>+</span><span class='lparen'>(</span><span class='id identifier rubyid_addend'>addend</span><span class='rparen'>)</span>
1607
2051
  <span class='kw'>case</span> <span class='id identifier rubyid_addend'>addend</span>
1608
2052
  <span class='kw'>in</span> <span class='int'>0</span> <span class='kw'>then</span> <span class='kw'>self</span>
1609
- <span class='kw'>in</span> <span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span> <span class='kw'>if</span> <span class='id identifier rubyid_same_currency?'>same_currency?</span><span class='lparen'>(</span><span class='id identifier rubyid_addend'>addend</span><span class='rparen'>)</span> <span class='kw'>then</span> <span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>+</span> <span class='id identifier rubyid_addend'>addend</span><span class='period'>.</span><span class='id identifier rubyid_amount'>amount</span><span class='rparen'>)</span>
2053
+ <span class='kw'>in</span> <span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span> <span class='kw'>if</span> <span class='id identifier rubyid_same_currency?'>same_currency?</span><span class='lparen'>(</span><span class='id identifier rubyid_addend'>addend</span><span class='rparen'>)</span> <span class='kw'>then</span> <span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>+</span> <span class='id identifier rubyid_addend'>addend</span><span class='period'>.</span><span class='id identifier rubyid_amount'>amount</span><span class='rparen'>)</span>
1610
2054
  <span class='kw'>else</span> <span class='id identifier rubyid_raise'>raise</span> <span class='const'>TypeError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_addend'>addend</span><span class='embexpr_end'>}</span><span class='tstring_content'> can&#39;t be added to </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1611
2055
  <span class='kw'>end</span>
1612
2056
  <span class='kw'>end</span></pre>
@@ -1703,7 +2147,7 @@ is not registered</p></div>
1703
2147
  <span class='kw'>def</span> <span class='op'>-</span><span class='lparen'>(</span><span class='id identifier rubyid_subtrahend'>subtrahend</span><span class='rparen'>)</span>
1704
2148
  <span class='kw'>case</span> <span class='id identifier rubyid_subtrahend'>subtrahend</span>
1705
2149
  <span class='kw'>when</span> <span class='int'>0</span> <span class='kw'>then</span> <span class='kw'>return</span> <span class='kw'>self</span>
1706
- <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span> <span class='kw'>then</span> <span class='kw'>return</span> <span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>-</span> <span class='id identifier rubyid_subtrahend'>subtrahend</span><span class='period'>.</span><span class='id identifier rubyid_amount'>amount</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_same_currency?'>same_currency?</span><span class='lparen'>(</span><span class='id identifier rubyid_subtrahend'>subtrahend</span><span class='rparen'>)</span>
2150
+ <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span> <span class='kw'>then</span> <span class='kw'>return</span> <span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>-</span> <span class='id identifier rubyid_subtrahend'>subtrahend</span><span class='period'>.</span><span class='id identifier rubyid_amount'>amount</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_same_currency?'>same_currency?</span><span class='lparen'>(</span><span class='id identifier rubyid_subtrahend'>subtrahend</span><span class='rparen'>)</span>
1707
2151
  <span class='kw'>end</span>
1708
2152
  <span class='id identifier rubyid_raise'>raise</span> <span class='const'>TypeError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_subtrahend'>subtrahend</span><span class='embexpr_end'>}</span><span class='tstring_content'> can&#39;t be subtracted from </span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
1709
2153
  <span class='kw'>end</span></pre>
@@ -1757,7 +2201,7 @@ is not registered</p></div>
1757
2201
  <td>
1758
2202
  <pre class="code"><span class="info file"># File 'lib/minting/money/arithmetics/operators.rb', line 35</span>
1759
2203
 
1760
- <span class='kw'>def</span> <span class='op'>-@</span> <span class='op'>=</span> <span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='op'>-</span><span class='id identifier rubyid_amount'>amount</span><span class='rparen'>)</span></pre>
2204
+ <span class='kw'>def</span> <span class='op'>-@</span> <span class='op'>=</span> <span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='op'>-</span><span class='id identifier rubyid_amount'>amount</span><span class='rparen'>)</span></pre>
1761
2205
  </td>
1762
2206
  </tr>
1763
2207
  </table>
@@ -1862,7 +2306,7 @@ is not registered</p></div>
1862
2306
 
1863
2307
  <span class='kw'>def</span> <span class='op'>/</span><span class='lparen'>(</span><span class='id identifier rubyid_divisor'>divisor</span><span class='rparen'>)</span>
1864
2308
  <span class='kw'>case</span> <span class='id identifier rubyid_divisor'>divisor</span>
1865
- <span class='kw'>when</span> <span class='const'>Numeric</span> <span class='kw'>then</span> <span class='kw'>return</span> <span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>/</span> <span class='id identifier rubyid_divisor'>divisor</span><span class='rparen'>)</span>
2309
+ <span class='kw'>when</span> <span class='const'>Numeric</span> <span class='kw'>then</span> <span class='kw'>return</span> <span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>/</span> <span class='id identifier rubyid_divisor'>divisor</span><span class='rparen'>)</span>
1866
2310
  <span class='kw'>when</span> <span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span> <span class='kw'>then</span> <span class='kw'>return</span> <span class='id identifier rubyid_amount'>amount</span> <span class='op'>/</span> <span class='id identifier rubyid_divisor'>divisor</span><span class='period'>.</span><span class='id identifier rubyid_amount'>amount</span> <span class='kw'>if</span> <span class='id identifier rubyid_same_currency?'>same_currency?</span> <span class='id identifier rubyid_divisor'>divisor</span>
1867
2311
  <span class='kw'>end</span>
1868
2312
  <span class='id identifier rubyid_raise'>raise</span> <span class='const'>TypeError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span><span class='kw'>self</span><span class='embexpr_end'>}</span><span class='tstring_content'> can&#39;t be divided by </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_divisor'>divisor</span><span class='embexpr_end'>}</span><span class='tstring_end'>&quot;</span></span>
@@ -2041,7 +2485,7 @@ two_usd &gt; Mint.money(2, &#39;BRL&#39;)
2041
2485
  <td>
2042
2486
  <pre class="code"><span class="info file"># File 'lib/minting/money/arithmetics/methods.rb', line 9</span>
2043
2487
 
2044
- <span class='kw'>def</span> <span class='id identifier rubyid_abs'>abs</span> <span class='op'>=</span> <span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='period'>.</span><span class='id identifier rubyid_abs'>abs</span><span class='rparen'>)</span></pre>
2488
+ <span class='kw'>def</span> <span class='id identifier rubyid_abs'>abs</span> <span class='op'>=</span> <span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='period'>.</span><span class='id identifier rubyid_abs'>abs</span><span class='rparen'>)</span></pre>
2045
2489
  </td>
2046
2490
  </tr>
2047
2491
  </table>
@@ -2140,8 +2584,7 @@ Disperses any subunit rounding amounts across the initial slots</p>
2140
2584
  19
2141
2585
  20
2142
2586
  21
2143
- 22
2144
- 23</pre>
2587
+ 22</pre>
2145
2588
  </td>
2146
2589
  <td>
2147
2590
  <pre class="code"><span class="info file"># File 'lib/minting/money/allocation/allocation.rb', line 15</span>
@@ -2151,13 +2594,113 @@ Disperses any subunit rounding amounts across the initial slots</p>
2151
2594
  <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Need at least 1 proportion element</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_proportions'>proportions</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
2152
2595
  <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Proportions total must not be zero</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_whole'>whole</span><span class='period'>.</span><span class='id identifier rubyid_zero?'>zero?</span>
2153
2596
 
2154
- <span class='id identifier rubyid_subunit'>subunit</span> <span class='op'>=</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_subunit'>subunit</span>
2155
- <span class='id identifier rubyid_amounts'>amounts</span> <span class='op'>=</span> <span class='id identifier rubyid_proportions'>proportions</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rate'>rate</span><span class='op'>|</span> <span class='const'>Rational</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>*</span> <span class='id identifier rubyid_rate'>rate</span><span class='comma'>,</span> <span class='id identifier rubyid_whole'>whole</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_round'>round</span><span class='lparen'>(</span><span class='id identifier rubyid_subunit'>subunit</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
2597
+ <span class='id identifier rubyid_amounts'>amounts</span> <span class='op'>=</span> <span class='id identifier rubyid_proportions'>proportions</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_rate'>rate</span><span class='op'>|</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_normalize_amount'>normalize_amount</span><span class='lparen'>(</span><span class='const'>Rational</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>*</span> <span class='id identifier rubyid_rate'>rate</span><span class='comma'>,</span> <span class='id identifier rubyid_whole'>whole</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
2156
2598
  <span class='id identifier rubyid_allocate_left_over'>allocate_left_over</span><span class='lparen'>(</span><span class='label'>amounts:</span> <span class='id identifier rubyid_amounts'>amounts</span><span class='comma'>,</span> <span class='label'>left_over:</span> <span class='id identifier rubyid_amount'>amount</span> <span class='op'>-</span> <span class='id identifier rubyid_amounts'>amounts</span><span class='period'>.</span><span class='id identifier rubyid_sum'>sum</span><span class='rparen'>)</span>
2157
2599
  <span class='kw'>end</span></pre>
2158
2600
  </td>
2159
2601
  </tr>
2160
2602
  </table>
2603
+ </div>
2604
+
2605
+ <div class="method_details ">
2606
+ <h3 class="signature " id="change-instance_method">
2607
+
2608
+ #<strong>change</strong>(new_amount) &#x21d2; <tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>
2609
+
2610
+
2611
+
2612
+
2613
+
2614
+ </h3><div class="docstring">
2615
+ <div class="discussion">
2616
+ <p>Returns a new Money object with the specified amount, or self if unchanged.
2617
+ This is the primary method for creating a modified copy of a Money instance
2618
+ while preserving immutability.</p>
2619
+
2620
+ </div>
2621
+ </div>
2622
+ <div class="tags">
2623
+
2624
+ <div class="examples">
2625
+ <h4 class="tag_title">Examples:</h4>
2626
+
2627
+
2628
+ <pre class="example code"><code><span class='id identifier rubyid_price'>price</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Mint.html" title="Mint (module)">Mint</a></span></span><span class='period'>.</span><span class='id identifier rubyid_money'><span class='object_link'><a href="../Mint.html#money-class_method" title="Mint.money (method)">money</a></span></span><span class='lparen'>(</span><span class='float'>10.00</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
2629
+ <span class='id identifier rubyid_price'>price</span><span class='period'>.</span><span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='float'>15.00</span><span class='rparen'>)</span> <span class='comment'>#=&gt; [USD 15.00]
2630
+ </span><span class='id identifier rubyid_price'>price</span><span class='period'>.</span><span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='float'>10.00</span><span class='rparen'>)</span> <span class='comment'>#=&gt; [USD 10.00] (returns self)</span></code></pre>
2631
+
2632
+ </div>
2633
+ <p class="tag_title">Parameters:</p>
2634
+ <ul class="param">
2635
+
2636
+ <li>
2637
+
2638
+ <span class='name'>new_amount</span>
2639
+
2640
+
2641
+ <span class='type'>(<tt>Numeric</tt>)</span>
2642
+
2643
+
2644
+
2645
+ &mdash;
2646
+ <div class='inline'><p>The new monetary amount</p></div>
2647
+
2648
+ </li>
2649
+
2650
+ </ul>
2651
+
2652
+ <p class="tag_title">Returns:</p>
2653
+ <ul class="return">
2654
+
2655
+ <li>
2656
+
2657
+
2658
+ <span class='type'>(<tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>)</span>
2659
+
2660
+
2661
+
2662
+ &mdash;
2663
+ <div class='inline'><p>A new Money object with the new amount, or self if the amount is unchanged</p></div>
2664
+
2665
+ </li>
2666
+
2667
+ </ul>
2668
+
2669
+ </div><table class="source_code">
2670
+ <tr>
2671
+ <td>
2672
+ <pre class="lines">
2673
+
2674
+
2675
+ 98
2676
+ 99
2677
+ 100
2678
+ 101
2679
+ 102
2680
+ 103
2681
+ 104
2682
+ 105
2683
+ 106
2684
+ 107
2685
+ 108</pre>
2686
+ </td>
2687
+ <td>
2688
+ <pre class="code"><span class="info file"># File 'lib/minting/money/constructors.rb', line 98</span>
2689
+
2690
+ <span class='kw'>def</span> <span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='id identifier rubyid_new_amount'>new_amount</span><span class='rparen'>)</span>
2691
+ <span class='id identifier rubyid_new_amount'>new_amount</span> <span class='op'>=</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_normalize_amount'>normalize_amount</span><span class='lparen'>(</span><span class='id identifier rubyid_new_amount'>new_amount</span><span class='rparen'>)</span>
2692
+
2693
+ <span class='kw'>if</span> <span class='id identifier rubyid_new_amount'>new_amount</span> <span class='op'>==</span> <span class='id identifier rubyid_amount'>amount</span>
2694
+ <span class='kw'>self</span>
2695
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_new_amount'>new_amount</span><span class='period'>.</span><span class='id identifier rubyid_zero?'>zero?</span>
2696
+ <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_zero'>zero</span>
2697
+ <span class='kw'>else</span>
2698
+ <span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_new_amount'>new_amount</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
2699
+ <span class='kw'>end</span>
2700
+ <span class='kw'>end</span></pre>
2701
+ </td>
2702
+ </tr>
2703
+ </table>
2161
2704
  </div>
2162
2705
 
2163
2706
  <div class="method_details ">
@@ -2314,7 +2857,7 @@ if min is a Range, and max is not nil</p></div>
2314
2857
  <span class='kw'>else</span>
2315
2858
  <span class='id identifier rubyid_min'>min</span> <span class='op'>=</span> <span class='id identifier rubyid_min_or_range'>min_or_range</span>
2316
2859
  <span class='kw'>end</span>
2317
- <span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='period'>.</span><span class='id identifier rubyid_clamp'>clamp</span><span class='lparen'>(</span><span class='id identifier rubyid_normalize_boundary'>normalize_boundary</span><span class='lparen'>(</span><span class='id identifier rubyid_min'>min</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_normalize_boundary'>normalize_boundary</span><span class='lparen'>(</span><span class='id identifier rubyid_max'>max</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
2860
+ <span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span><span class='period'>.</span><span class='id identifier rubyid_clamp'>clamp</span><span class='lparen'>(</span><span class='id identifier rubyid_normalize_boundary'>normalize_boundary</span><span class='lparen'>(</span><span class='id identifier rubyid_min'>min</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_normalize_boundary'>normalize_boundary</span><span class='lparen'>(</span><span class='id identifier rubyid_max'>max</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='rparen'>)</span>
2318
2861
  <span class='kw'>end</span></pre>
2319
2862
  </td>
2320
2863
  </tr>
@@ -2695,98 +3238,29 @@ For example, cents for USD (subunit 2), yen for JPY (subunit 0), fils for IQD (s
2695
3238
  <div class="method_details ">
2696
3239
  <h3 class="signature " id="mint-instance_method">
2697
3240
 
2698
- #<strong>mint</strong>(new_amount) &#x21d2; <tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>
2699
-
2700
-
2701
-
2702
-
3241
+ #<strong>mint</strong>(new_amount) &#x21d2; <tt>Object</tt>
2703
3242
 
2704
- </h3><div class="docstring">
2705
- <div class="discussion">
2706
- <p>Returns a new Money object with the specified amount, or self if unchanged.
2707
- This is the primary method for creating a modified copy of a Money instance
2708
- while preserving immutability.</p>
2709
3243
 
2710
- </div>
2711
- </div>
2712
- <div class="tags">
2713
-
2714
- <div class="examples">
2715
- <h4 class="tag_title">Examples:</h4>
2716
-
2717
-
2718
- <pre class="example code"><code><span class='id identifier rubyid_price'>price</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="../Mint.html" title="Mint (module)">Mint</a></span></span><span class='period'>.</span><span class='id identifier rubyid_money'><span class='object_link'><a href="../Mint.html#money-class_method" title="Mint.money (method)">money</a></span></span><span class='lparen'>(</span><span class='float'>10.00</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>USD</span><span class='tstring_end'>&#39;</span></span><span class='rparen'>)</span>
2719
- <span class='id identifier rubyid_price'>price</span><span class='period'>.</span><span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='float'>15.00</span><span class='rparen'>)</span> <span class='comment'>#=&gt; [USD 15.00]
2720
- </span><span class='id identifier rubyid_price'>price</span><span class='period'>.</span><span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='float'>10.00</span><span class='rparen'>)</span> <span class='comment'>#=&gt; [USD 10.00] (returns self)</span></code></pre>
2721
-
2722
- </div>
2723
- <p class="tag_title">Parameters:</p>
2724
- <ul class="param">
2725
-
2726
- <li>
2727
-
2728
- <span class='name'>new_amount</span>
2729
-
2730
-
2731
- <span class='type'>(<tt>Numeric</tt>)</span>
2732
-
2733
-
2734
-
2735
- &mdash;
2736
- <div class='inline'><p>The new monetary amount</p></div>
2737
-
2738
- </li>
2739
3244
 
2740
- </ul>
2741
3245
 
2742
- <p class="tag_title">Returns:</p>
2743
- <ul class="return">
2744
-
2745
- <li>
2746
-
2747
-
2748
- <span class='type'>(<tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>)</span>
2749
-
2750
-
2751
-
2752
- &mdash;
2753
- <div class='inline'><p>A new Money object with the new amount, or self if the amount is unchanged</p></div>
2754
-
2755
- </li>
2756
3246
 
2757
- </ul>
2758
-
2759
- </div><table class="source_code">
3247
+ </h3><table class="source_code">
2760
3248
  <tr>
2761
3249
  <td>
2762
3250
  <pre class="lines">
2763
3251
 
2764
3252
 
2765
- 55
2766
- 56
2767
- 57
2768
- 58
2769
- 59
2770
- 60
2771
- 61
2772
- 62
2773
- 63
2774
- 64
2775
- 65</pre>
3253
+ 110
3254
+ 111
3255
+ 112
3256
+ 113</pre>
2776
3257
  </td>
2777
3258
  <td>
2778
- <pre class="code"><span class="info file"># File 'lib/minting/money/constructors.rb', line 55</span>
3259
+ <pre class="code"><span class="info file"># File 'lib/minting/money/constructors.rb', line 110</span>
2779
3260
 
2780
3261
  <span class='kw'>def</span> <span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='id identifier rubyid_new_amount'>new_amount</span><span class='rparen'>)</span>
2781
- <span class='id identifier rubyid_new_amount'>new_amount</span> <span class='op'>=</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_normalize_amount'>normalize_amount</span><span class='lparen'>(</span><span class='id identifier rubyid_new_amount'>new_amount</span><span class='rparen'>)</span>
2782
-
2783
- <span class='kw'>if</span> <span class='id identifier rubyid_new_amount'>new_amount</span> <span class='op'>==</span> <span class='id identifier rubyid_amount'>amount</span>
2784
- <span class='kw'>self</span>
2785
- <span class='kw'>elsif</span> <span class='id identifier rubyid_new_amount'>new_amount</span><span class='period'>.</span><span class='id identifier rubyid_zero?'>zero?</span>
2786
- <span class='const'><span class='object_link'><a href="../Mint.html" title="Mint (module)">Mint</a></span></span><span class='period'>.</span><span class='id identifier rubyid_zero'><span class='object_link'><a href="../Mint.html#zero-class_method" title="Mint.zero (method)">zero</a></span></span><span class='lparen'>(</span><span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
2787
- <span class='kw'>else</span>
2788
- <span class='const'><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_new_amount'>new_amount</span><span class='comma'>,</span> <span class='id identifier rubyid_currency'>currency</span><span class='rparen'>)</span>
2789
- <span class='kw'>end</span>
3262
+ <span class='id identifier rubyid_warn'>warn</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Money#mint is now deprecated and will be removed in v2</span><span class='tstring_end'>&#39;</span></span>
3263
+ <span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='id identifier rubyid_new_amount'>new_amount</span><span class='rparen'>)</span>
2790
3264
  <span class='kw'>end</span></pre>
2791
3265
  </td>
2792
3266
  </tr>
@@ -2957,7 +3431,7 @@ while preserving immutability.</p>
2957
3431
 
2958
3432
  </h3><div class="docstring">
2959
3433
  <div class="discussion">
2960
- <p>Helper method to verify if another object has the identical currency.</p>
3434
+ <p>Helper method to verify if another Money has the identical currency.</p>
2961
3435
 
2962
3436
  </div>
2963
3437
  </div>
@@ -2970,7 +3444,7 @@ while preserving immutability.</p>
2970
3444
  <span class='name'>other</span>
2971
3445
 
2972
3446
 
2973
- <span class='type'>(<tt><span class='object_link'><a href="Currency.html" title="Mint::Currency (class)">Currency</a></span></tt>)</span>
3447
+ <span class='type'>(<tt><span class='object_link'><a href="" title="Mint::Money (class)">Money</a></span></tt>)</span>
2974
3448
 
2975
3449
 
2976
3450
 
@@ -3004,10 +3478,10 @@ while preserving immutability.</p>
3004
3478
  <pre class="lines">
3005
3479
 
3006
3480
 
3007
- 57</pre>
3481
+ 51</pre>
3008
3482
  </td>
3009
3483
  <td>
3010
- <pre class="code"><span class="info file"># File 'lib/minting/money/money.rb', line 57</span>
3484
+ <pre class="code"><span class="info file"># File 'lib/minting/money/comparable.rb', line 51</span>
3011
3485
 
3012
3486
  <span class='kw'>def</span> <span class='id identifier rubyid_same_currency?'>same_currency?</span><span class='lparen'>(</span><span class='id identifier rubyid_other'>other</span><span class='rparen'>)</span> <span class='op'>=</span> <span class='id identifier rubyid_other'>other</span><span class='period'>.</span><span class='id identifier rubyid_currency'>currency</span> <span class='op'>==</span> <span class='id identifier rubyid_currency'>currency</span></pre>
3013
3487
  </td>
@@ -3116,7 +3590,7 @@ so that the sum is preserved.</p>
3116
3590
  <span class='kw'>def</span> <span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='id identifier rubyid_slices'>slices</span><span class='rparen'>)</span>
3117
3591
  <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Slices quantity must be an poitive integer</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_slices'>slices</span><span class='period'>.</span><span class='id identifier rubyid_positive?'>positive?</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_slices'>slices</span><span class='period'>.</span><span class='id identifier rubyid_integer?'>integer?</span>
3118
3592
 
3119
- <span class='id identifier rubyid_fraction'>fraction</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>/</span> <span class='id identifier rubyid_slices'>slices</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_round'>round</span><span class='lparen'>(</span><span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_subunit'>subunit</span><span class='rparen'>)</span>
3593
+ <span class='id identifier rubyid_fraction'>fraction</span> <span class='op'>=</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_normalize_amount'>normalize_amount</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>/</span> <span class='id identifier rubyid_slices'>slices</span><span class='rparen'>)</span>
3120
3594
  <span class='id identifier rubyid_allocate_left_over'>allocate_left_over</span><span class='lparen'>(</span><span class='label'>amounts:</span> <span class='const'>Array</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_slices'>slices</span><span class='comma'>,</span> <span class='id identifier rubyid_fraction'>fraction</span><span class='rparen'>)</span><span class='comma'>,</span>
3121
3595
  <span class='label'>left_over:</span> <span class='id identifier rubyid_amount'>amount</span> <span class='op'>-</span> <span class='lparen'>(</span><span class='id identifier rubyid_fraction'>fraction</span> <span class='op'>*</span> <span class='id identifier rubyid_slices'>slices</span><span class='rparen'>)</span><span class='rparen'>)</span>
3122
3596
  <span class='kw'>end</span></pre>
@@ -3171,7 +3645,7 @@ Enables standard ranges and stepping (e.g. <code>1.dollar..10.dollars</code>).</
3171
3645
  <td>
3172
3646
  <pre class="code"><span class="info file"># File 'lib/minting/money/arithmetics/methods.rb', line 25</span>
3173
3647
 
3174
- <span class='kw'>def</span> <span class='id identifier rubyid_succ'>succ</span> <span class='op'>=</span> <span class='id identifier rubyid_mint'>mint</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>+</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_minimum_amount'>minimum_amount</span><span class='rparen'>)</span></pre>
3648
+ <span class='kw'>def</span> <span class='id identifier rubyid_succ'>succ</span> <span class='op'>=</span> <span class='id identifier rubyid_change'>change</span><span class='lparen'>(</span><span class='id identifier rubyid_amount'>amount</span> <span class='op'>+</span> <span class='id identifier rubyid_currency'>currency</span><span class='period'>.</span><span class='id identifier rubyid_minimum_amount'>minimum_amount</span><span class='rparen'>)</span></pre>
3175
3649
  </td>
3176
3650
  </tr>
3177
3651
  </table>
@@ -3856,10 +4330,10 @@ is empty, or the Hash contains an unrecognised key.</p></div>
3856
4330
  <pre class="lines">
3857
4331
 
3858
4332
 
3859
- 48</pre>
4333
+ 54</pre>
3860
4334
  </td>
3861
4335
  <td>
3862
- <pre class="code"><span class="info file"># File 'lib/minting/money/comparable.rb', line 48</span>
4336
+ <pre class="code"><span class="info file"># File 'lib/minting/money/comparable.rb', line 54</span>
3863
4337
 
3864
4338
  <span class='kw'>def</span> <span class='id identifier rubyid_zero?'>zero?</span> <span class='op'>=</span> <span class='id identifier rubyid_amount'>amount</span><span class='period'>.</span><span class='id identifier rubyid_zero?'>zero?</span></pre>
3865
4339
  </td>
@@ -3872,7 +4346,7 @@ is empty, or the Hash contains an unrecognised key.</p></div>
3872
4346
  </div>
3873
4347
 
3874
4348
  <div id="footer">
3875
- Generated on Mon Jun 15 19:57:57 2026 by
4349
+ Generated on Tue Jun 16 20:22:19 2026 by
3876
4350
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
3877
4351
  0.9.44 (ruby-4.0.5).
3878
4352
  </div>