money 6.3.0 → 6.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3e411b812d22d33e7ed9aef7342e9aa5803d9be9
4
- data.tar.gz: 4ec3b0a561fedf1cc30c01c5e95cf76b50a68f31
3
+ metadata.gz: 5b17085ec48ad637f79d50632f0f33a940e17a22
4
+ data.tar.gz: 76f462a0d1b62562694324fb4f97d96d5c101765
5
5
  SHA512:
6
- metadata.gz: 8fe9253717cc7b378dc8e4409afac6137331707f18a23ae6a329aaae4dabe40385e373b796cfdcfdf3ca88912e74d67dac6d0ca5d090134ab65122d519923561
7
- data.tar.gz: 3d2d4e383818b3d085da7559ba87a7043484be25f09b931d16ed48a8b82d8ca46775620297c79f7a3747db6fe54ae3ef6eafb1d5b98e95a9424460801a52a824
6
+ metadata.gz: dd0bc7415006f620e9e5bea076d2248d63353c82cca3ca11e8c3c29ab6420b1ed6163b6042cc743035a017be2178f48ba07014594edda8b1e4ee3d133949d399
7
+ data.tar.gz: 742631af8dff373d776438ce74d99ac01437387046e87cb8a3ef68498fc3d2fe64860a4f9d6280fb70ccc4c94df8fb3c0b84e0ff4a4e5f6ca115e6d5beb4892a
data/.gitignore CHANGED
@@ -17,3 +17,6 @@ doc/
17
17
  .rbx
18
18
  .rvmrc
19
19
  .ruby-version
20
+
21
+ # Spec artifacts
22
+ /coverage
data/AUTHORS CHANGED
@@ -29,6 +29,7 @@ Exoth
29
29
  François Beausoleil
30
30
  François Klingler
31
31
  Francisco Trindade
32
+ Gabriel Gilder
32
33
  Gee-Hsien Chuang
33
34
  Hakan Ensari
34
35
  Hongli Lai
@@ -56,6 +57,7 @@ kirillian
56
57
  Laurynas Butkus
57
58
  Marcel Scherf
58
59
  Marco Otte-Witte
60
+ Mateus Gomes
59
61
  Mateusz Wolsza
60
62
  Matias Korhonen
61
63
  Matt Jankowski
@@ -90,6 +92,7 @@ Shane Emmons
90
92
  Simone Carletti
91
93
  Spencer Rinehart
92
94
  Steve Morris
95
+ Yok
93
96
  Thomas E Enebo
94
97
  Thomas Weymuth
95
98
  Ticean Bennett
@@ -107,3 +110,4 @@ Tien Nguyen
107
110
  Wei Zhu
108
111
  Zubin Henner
109
112
  Troels Knak-Nielsen
113
+ Edwin Vlieg
data/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  ## Next release
4
4
  - Add method to round a given amount of money to the nearest possible value in cash (aka Swedish rounding).
5
+ - Fixed the subunit_to_unit values of the CLP and KRW currencies
6
+ - Add option for `disambiguate` symbols for formatting
7
+ - Fixed the subunit_to_unit values of the VND currency
8
+ - Fix formatting of NGN - show symbol before amount
9
+ - Switch default and alternate symbols for RUB currency
10
+ - Fix symbol for TRY currency
11
+ - Add `Money.default_formatting_rules` hash, meant to define default rules for everytime `Money#format` is called. They can be overwritten if provided on method call
5
12
 
6
13
  ## 6.2.1
7
14
  - Ensure set is loaded
data/README.md CHANGED
@@ -295,6 +295,8 @@ If you wish to disable this feature:
295
295
  Money.use_i18n = false
296
296
  ```
297
297
 
298
+ *Note: There are several formatting rules for when `Money#format` is called. For more information, check out the [formatting module](https://github.com/RubyMoney/money/blob/master/lib/money/money/formatting.rb).*
299
+
298
300
  ## Migration Notes
299
301
 
300
302
  #### Version 6.0.0
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  require "rubygems"
2
2
  require "bundler/gem_tasks"
3
3
  require "rake/clean"
4
+ require "rspec/core/rake_task"
4
5
 
5
6
  CLOBBER.include('doc', '.yardoc')
6
7
 
@@ -9,3 +10,8 @@ require "yard"
9
10
  YARD::Rake::YardocTask.new do |t|
10
11
  t.options << "--files" << "CHANGELOG.md,LICENSE"
11
12
  end
13
+
14
+ RSpec::Core::RakeTask.new(:spec) do |t|
15
+ t.fail_on_error = false
16
+ end
17
+
@@ -19,6 +19,7 @@
19
19
  "iso_code": "GHS",
20
20
  "name": "Ghanaian Cedi",
21
21
  "symbol": "₵",
22
+ "disambiguate_symbol": "GH₵",
22
23
  "alternate_symbols": ["GH₵"],
23
24
  "subunit": "Pesewa",
24
25
  "subunit_to_unit": 100,
@@ -64,6 +65,7 @@
64
65
  "iso_code": "JPY",
65
66
  "name": "Japanese Yen",
66
67
  "symbol": "¥",
68
+ "disambiguate_symbol": "JPY",
67
69
  "alternate_symbols": ["円", "圓"],
68
70
  "subunit": "Sen",
69
71
  "subunit_to_unit": 100,
@@ -79,6 +81,7 @@
79
81
  "iso_code": "ZWD",
80
82
  "name": "Zimbabwean Dollar",
81
83
  "symbol": "$",
84
+ "disambiguate_symbol": "ZWD",
82
85
  "alternate_symbols": ["Z$"],
83
86
  "subunit": "Cent",
84
87
  "subunit_to_unit": 100,
@@ -94,6 +97,7 @@
94
97
  "iso_code": "ZWL",
95
98
  "name": "Zimbabwean Dollar",
96
99
  "symbol": "$",
100
+ "disambiguate_symbol": "ZWL",
97
101
  "alternate_symbols": ["Z$"],
98
102
  "subunit": "Cent",
99
103
  "subunit_to_unit": 100,
@@ -109,6 +113,7 @@
109
113
  "iso_code": "ZWN",
110
114
  "name": "Zimbabwean Dollar",
111
115
  "symbol": "$",
116
+ "disambiguate_symbol": "ZWN",
112
117
  "alternate_symbols": ["Z$"],
113
118
  "subunit": "Cent",
114
119
  "subunit_to_unit": 100,
@@ -124,6 +129,7 @@
124
129
  "iso_code": "ZWR",
125
130
  "name": "Zimbabwean Dollar",
126
131
  "symbol": "$",
132
+ "disambiguate_symbol": "ZWR",
127
133
  "alternate_symbols": ["Z$"],
128
134
  "subunit": "Cent",
129
135
  "subunit_to_unit": 100,
@@ -34,6 +34,7 @@
34
34
  "iso_code": "ALL",
35
35
  "name": "Albanian Lek",
36
36
  "symbol": "L",
37
+ "disambiguate_symbol": "Lek",
37
38
  "alternate_symbols": ["Lek"],
38
39
  "subunit": "Qintar",
39
40
  "subunit_to_unit": 100,
@@ -94,6 +95,7 @@
94
95
  "iso_code": "ARS",
95
96
  "name": "Argentine Peso",
96
97
  "symbol": "$",
98
+ "disambiguate_symbol": "$m/n",
97
99
  "alternate_symbols": ["$m/n", "m$n"],
98
100
  "subunit": "Centavo",
99
101
  "subunit_to_unit": 100,
@@ -109,6 +111,7 @@
109
111
  "iso_code": "AUD",
110
112
  "name": "Australian Dollar",
111
113
  "symbol": "$",
114
+ "disambiguate_symbol": "A$",
112
115
  "alternate_symbols": ["A$"],
113
116
  "subunit": "Cent",
114
117
  "subunit_to_unit": 100,
@@ -169,6 +172,7 @@
169
172
  "iso_code": "BBD",
170
173
  "name": "Barbadian Dollar",
171
174
  "symbol": "$",
175
+ "disambiguate_symbol": "Bds$",
172
176
  "alternate_symbols": ["Bds$"],
173
177
  "subunit": "Cent",
174
178
  "subunit_to_unit": 100,
@@ -229,6 +233,7 @@
229
233
  "iso_code": "BIF",
230
234
  "name": "Burundian Franc",
231
235
  "symbol": "Fr",
236
+ "disambiguate_symbol": "FBu",
232
237
  "alternate_symbols": ["FBu"],
233
238
  "subunit": "Centime",
234
239
  "subunit_to_unit": 100,
@@ -244,6 +249,7 @@
244
249
  "iso_code": "BMD",
245
250
  "name": "Bermudian Dollar",
246
251
  "symbol": "$",
252
+ "disambiguate_symbol": "BD$",
247
253
  "alternate_symbols": ["BD$"],
248
254
  "subunit": "Cent",
249
255
  "subunit_to_unit": 100,
@@ -259,6 +265,7 @@
259
265
  "iso_code": "BND",
260
266
  "name": "Brunei Dollar",
261
267
  "symbol": "$",
268
+ "disambiguate_symbol": "BND",
262
269
  "alternate_symbols": ["B$"],
263
270
  "subunit": "Sen",
264
271
  "subunit_to_unit": 100,
@@ -303,6 +310,7 @@
303
310
  "iso_code": "BSD",
304
311
  "name": "Bahamian Dollar",
305
312
  "symbol": "$",
313
+ "disambiguate_symbol": "BSD",
306
314
  "alternate_symbols": ["B$"],
307
315
  "subunit": "Cent",
308
316
  "subunit_to_unit": 100,
@@ -348,6 +356,7 @@
348
356
  "iso_code": "BYR",
349
357
  "name": "Belarusian Ruble",
350
358
  "symbol": "Br",
359
+ "disambiguate_symbol": "BYR",
351
360
  "alternate_symbols": [""],
352
361
  "subunit": "Kapyeyka",
353
362
  "subunit_to_unit": 100,
@@ -363,6 +372,7 @@
363
372
  "iso_code": "BZD",
364
373
  "name": "Belize Dollar",
365
374
  "symbol": "$",
375
+ "disambiguate_symbol": "BZ$",
366
376
  "alternate_symbols": ["BZ$"],
367
377
  "subunit": "Cent",
368
378
  "subunit_to_unit": 100,
@@ -378,6 +388,7 @@
378
388
  "iso_code": "CAD",
379
389
  "name": "Canadian Dollar",
380
390
  "symbol": "$",
391
+ "disambiguate_symbol": "C$",
381
392
  "alternate_symbols": ["C$", "CAD$"],
382
393
  "subunit": "Cent",
383
394
  "subunit_to_unit": 100,
@@ -393,6 +404,7 @@
393
404
  "iso_code": "CDF",
394
405
  "name": "Congolese Franc",
395
406
  "symbol": "Fr",
407
+ "disambiguate_symbol": "FC",
396
408
  "alternate_symbols": ["FC"],
397
409
  "subunit": "Centime",
398
410
  "subunit_to_unit": 100,
@@ -437,9 +449,10 @@
437
449
  "iso_code": "CLP",
438
450
  "name": "Chilean Peso",
439
451
  "symbol": "$",
452
+ "disambiguate_symbol": "CLP",
440
453
  "alternate_symbols": [],
441
454
  "subunit": "Peso",
442
- "subunit_to_unit": 1,
455
+ "subunit_to_unit": 100,
443
456
  "symbol_first": true,
444
457
  "html_entity": "&#36;",
445
458
  "decimal_mark": ",",
@@ -456,7 +469,7 @@
456
469
  "subunit": "Fen",
457
470
  "subunit_to_unit": 100,
458
471
  "symbol_first": true,
459
- "html_entity": "&#20803;",
472
+ "html_entity": "",
460
473
  "decimal_mark": ".",
461
474
  "thousands_separator": ",",
462
475
  "iso_numeric": "156",
@@ -467,6 +480,7 @@
467
480
  "iso_code": "COP",
468
481
  "name": "Colombian Peso",
469
482
  "symbol": "$",
483
+ "disambiguate_symbol": "COL$",
470
484
  "alternate_symbols": ["COL$"],
471
485
  "subunit": "Centavo",
472
486
  "subunit_to_unit": 100,
@@ -497,6 +511,7 @@
497
511
  "iso_code": "CUC",
498
512
  "name": "Cuban Convertible Peso",
499
513
  "symbol": "$",
514
+ "disambiguate_symbol": "CUC$",
500
515
  "alternate_symbols": ["CUC$"],
501
516
  "subunit": "Centavo",
502
517
  "subunit_to_unit": 100,
@@ -512,6 +527,7 @@
512
527
  "iso_code": "CUP",
513
528
  "name": "Cuban Peso",
514
529
  "symbol": "$",
530
+ "disambiguate_symbol": "$MN",
515
531
  "alternate_symbols": ["$MN"],
516
532
  "subunit": "Centavo",
517
533
  "subunit_to_unit": 100,
@@ -527,6 +543,7 @@
527
543
  "iso_code": "CVE",
528
544
  "name": "Cape Verdean Escudo",
529
545
  "symbol": "$",
546
+ "disambiguate_symbol": "Esc",
530
547
  "alternate_symbols": ["Esc"],
531
548
  "subunit": "Centavo",
532
549
  "subunit_to_unit": 100,
@@ -545,7 +562,7 @@
545
562
  "alternate_symbols": [],
546
563
  "subunit": "Haléř",
547
564
  "subunit_to_unit": 100,
548
- "symbol_first": true,
565
+ "symbol_first": false,
549
566
  "html_entity": "",
550
567
  "decimal_mark": ",",
551
568
  "thousands_separator": ".",
@@ -572,6 +589,7 @@
572
589
  "iso_code": "DKK",
573
590
  "name": "Danish Krone",
574
591
  "symbol": "kr",
592
+ "disambiguate_symbol": "DKK",
575
593
  "alternate_symbols": [",-"],
576
594
  "subunit": "Øre",
577
595
  "subunit_to_unit": 100,
@@ -587,6 +605,7 @@
587
605
  "iso_code": "DOP",
588
606
  "name": "Dominican Peso",
589
607
  "symbol": "$",
608
+ "disambiguate_symbol": "RD$",
590
609
  "alternate_symbols": ["RD$"],
591
610
  "subunit": "Centavo",
592
611
  "subunit_to_unit": 100,
@@ -647,6 +666,7 @@
647
666
  "iso_code": "ETB",
648
667
  "name": "Ethiopian Birr",
649
668
  "symbol": "Br",
669
+ "disambiguate_symbol": "ETB",
650
670
  "alternate_symbols": [],
651
671
  "subunit": "Santim",
652
672
  "subunit_to_unit": 100,
@@ -677,6 +697,7 @@
677
697
  "iso_code": "FJD",
678
698
  "name": "Fijian Dollar",
679
699
  "symbol": "$",
700
+ "disambiguate_symbol": "FJ$",
680
701
  "alternate_symbols": ["FJ$"],
681
702
  "subunit": "Cent",
682
703
  "subunit_to_unit": 100,
@@ -692,6 +713,7 @@
692
713
  "iso_code": "FKP",
693
714
  "name": "Falkland Pound",
694
715
  "symbol": "£",
716
+ "disambiguate_symbol": "FK£",
695
717
  "alternate_symbols": ["FK£"],
696
718
  "subunit": "Penny",
697
719
  "subunit_to_unit": 100,
@@ -752,6 +774,7 @@
752
774
  "iso_code": "GIP",
753
775
  "name": "Gibraltar Pound",
754
776
  "symbol": "£",
777
+ "disambiguate_symbol": "GIP",
755
778
  "alternate_symbols": [],
756
779
  "subunit": "Penny",
757
780
  "subunit_to_unit": 100,
@@ -782,6 +805,7 @@
782
805
  "iso_code": "GNF",
783
806
  "name": "Guinean Franc",
784
807
  "symbol": "Fr",
808
+ "disambiguate_symbol": "FG",
785
809
  "alternate_symbols": ["FG", "GFr"],
786
810
  "subunit": "Centime",
787
811
  "subunit_to_unit": 100,
@@ -812,6 +836,7 @@
812
836
  "iso_code": "GYD",
813
837
  "name": "Guyanese Dollar",
814
838
  "symbol": "$",
839
+ "disambiguate_symbol": "G$",
815
840
  "alternate_symbols": ["G$"],
816
841
  "subunit": "Cent",
817
842
  "subunit_to_unit": 100,
@@ -827,6 +852,7 @@
827
852
  "iso_code": "HKD",
828
853
  "name": "Hong Kong Dollar",
829
854
  "symbol": "$",
855
+ "disambiguate_symbol": "HK$",
830
856
  "alternate_symbols": ["HK$"],
831
857
  "subunit": "Cent",
832
858
  "subunit_to_unit": 100,
@@ -842,6 +868,7 @@
842
868
  "iso_code": "HNL",
843
869
  "name": "Honduran Lempira",
844
870
  "symbol": "L",
871
+ "disambiguate_symbol": "HNL",
845
872
  "alternate_symbols": [],
846
873
  "subunit": "Centavo",
847
874
  "subunit_to_unit": 100,
@@ -992,6 +1019,7 @@
992
1019
  "iso_code": "JMD",
993
1020
  "name": "Jamaican Dollar",
994
1021
  "symbol": "$",
1022
+ "disambiguate_symbol": "J$",
995
1023
  "alternate_symbols": ["J$"],
996
1024
  "subunit": "Cent",
997
1025
  "subunit_to_unit": 100,
@@ -1082,6 +1110,7 @@
1082
1110
  "iso_code": "KMF",
1083
1111
  "name": "Comorian Franc",
1084
1112
  "symbol": "Fr",
1113
+ "disambiguate_symbol": "CF",
1085
1114
  "alternate_symbols": ["CF"],
1086
1115
  "subunit": "Centime",
1087
1116
  "subunit_to_unit": 100,
@@ -1113,7 +1142,7 @@
1113
1142
  "name": "South Korean Won",
1114
1143
  "symbol": "₩",
1115
1144
  "subunit": null,
1116
- "subunit_to_unit": 1,
1145
+ "subunit_to_unit": 100,
1117
1146
  "alternate_symbols": [],
1118
1147
  "symbol_first": true,
1119
1148
  "html_entity": "&#x20A9;",
@@ -1142,6 +1171,7 @@
1142
1171
  "iso_code": "KYD",
1143
1172
  "name": "Cayman Islands Dollar",
1144
1173
  "symbol": "$",
1174
+ "disambiguate_symbol": "CI$",
1145
1175
  "alternate_symbols": ["CI$"],
1146
1176
  "subunit": "Cent",
1147
1177
  "subunit_to_unit": 100,
@@ -1202,6 +1232,7 @@
1202
1232
  "iso_code": "LKR",
1203
1233
  "name": "Sri Lankan Rupee",
1204
1234
  "symbol": "₨",
1235
+ "disambiguate_symbol": "SLRs",
1205
1236
  "alternate_symbols": ["රු", "ரூ", "SLRs", "/-"],
1206
1237
  "subunit": "Cent",
1207
1238
  "subunit_to_unit": 100,
@@ -1217,6 +1248,7 @@
1217
1248
  "iso_code": "LRD",
1218
1249
  "name": "Liberian Dollar",
1219
1250
  "symbol": "$",
1251
+ "disambiguate_symbol": "L$",
1220
1252
  "alternate_symbols": ["L$"],
1221
1253
  "subunit": "Cent",
1222
1254
  "subunit_to_unit": 100,
@@ -1232,6 +1264,7 @@
1232
1264
  "iso_code": "LSL",
1233
1265
  "name": "Lesotho Loti",
1234
1266
  "symbol": "L",
1267
+ "disambiguate_symbol": "M",
1235
1268
  "alternate_symbols": ["M"],
1236
1269
  "subunit": "Sente",
1237
1270
  "subunit_to_unit": 100,
@@ -1352,6 +1385,7 @@
1352
1385
  "iso_code": "MMK",
1353
1386
  "name": "Myanmar Kyat",
1354
1387
  "symbol": "K",
1388
+ "disambiguate_symbol": "MMK",
1355
1389
  "alternate_symbols": [],
1356
1390
  "subunit": "Pya",
1357
1391
  "subunit_to_unit": 100,
@@ -1457,6 +1491,7 @@
1457
1491
  "iso_code": "MXN",
1458
1492
  "name": "Mexican Peso",
1459
1493
  "symbol": "$",
1494
+ "disambiguate_symbol": "MEX$",
1460
1495
  "alternate_symbols": ["MEX$"],
1461
1496
  "subunit": "Centavo",
1462
1497
  "subunit_to_unit": 100,
@@ -1502,6 +1537,7 @@
1502
1537
  "iso_code": "NAD",
1503
1538
  "name": "Namibian Dollar",
1504
1539
  "symbol": "$",
1540
+ "disambiguate_symbol": "N$",
1505
1541
  "alternate_symbols": ["N$"],
1506
1542
  "subunit": "Cent",
1507
1543
  "subunit_to_unit": 100,
@@ -1520,7 +1556,7 @@
1520
1556
  "alternate_symbols": [],
1521
1557
  "subunit": "Kobo",
1522
1558
  "subunit_to_unit": 100,
1523
- "symbol_first": false,
1559
+ "symbol_first": true,
1524
1560
  "html_entity": "&#x20A6;",
1525
1561
  "decimal_mark": ".",
1526
1562
  "thousands_separator": ",",
@@ -1547,6 +1583,7 @@
1547
1583
  "iso_code": "NOK",
1548
1584
  "name": "Norwegian Krone",
1549
1585
  "symbol": "kr",
1586
+ "disambiguate_symbol": "NOK",
1550
1587
  "alternate_symbols": [",-"],
1551
1588
  "subunit": "Øre",
1552
1589
  "subunit_to_unit": 100,
@@ -1562,6 +1599,7 @@
1562
1599
  "iso_code": "NPR",
1563
1600
  "name": "Nepalese Rupee",
1564
1601
  "symbol": "₨",
1602
+ "disambiguate_symbol": "NPR",
1565
1603
  "alternate_symbols": ["Rs", "रू"],
1566
1604
  "subunit": "Paisa",
1567
1605
  "subunit_to_unit": 100,
@@ -1577,6 +1615,7 @@
1577
1615
  "iso_code": "NZD",
1578
1616
  "name": "New Zealand Dollar",
1579
1617
  "symbol": "$",
1618
+ "disambiguate_symbol": "NZ$",
1580
1619
  "alternate_symbols": ["NZ$"],
1581
1620
  "subunit": "Cent",
1582
1621
  "subunit_to_unit": 100,
@@ -1637,6 +1676,7 @@
1637
1676
  "iso_code": "PGK",
1638
1677
  "name": "Papua New Guinean Kina",
1639
1678
  "symbol": "K",
1679
+ "disambiguate_symbol": "PGK",
1640
1680
  "alternate_symbols": [],
1641
1681
  "subunit": "Toea",
1642
1682
  "subunit_to_unit": 100,
@@ -1667,6 +1707,7 @@
1667
1707
  "iso_code": "PKR",
1668
1708
  "name": "Pakistani Rupee",
1669
1709
  "symbol": "₨",
1710
+ "disambiguate_symbol": "PKR",
1670
1711
  "alternate_symbols": ["Rs"],
1671
1712
  "subunit": "Paisa",
1672
1713
  "subunit_to_unit": 100,
@@ -1756,8 +1797,8 @@
1756
1797
  "priority": 100,
1757
1798
  "iso_code": "RUB",
1758
1799
  "name": "Russian Ruble",
1759
- "symbol": "р.",
1760
- "alternate_symbols": ["руб"],
1800
+ "symbol": "руб",
1801
+ "alternate_symbols": ["р.", "₽"],
1761
1802
  "subunit": "Kopek",
1762
1803
  "subunit_to_unit": 100,
1763
1804
  "symbol_first": false,
@@ -1802,6 +1843,7 @@
1802
1843
  "iso_code": "SBD",
1803
1844
  "name": "Solomon Islands Dollar",
1804
1845
  "symbol": "$",
1846
+ "disambiguate_symbol": "SI$",
1805
1847
  "alternate_symbols": ["SI$"],
1806
1848
  "subunit": "Cent",
1807
1849
  "subunit_to_unit": 100,
@@ -1817,6 +1859,7 @@
1817
1859
  "iso_code": "SCR",
1818
1860
  "name": "Seychellois Rupee",
1819
1861
  "symbol": "₨",
1862
+ "disambiguate_symbol": "SRe",
1820
1863
  "alternate_symbols": ["SRe", "SR"],
1821
1864
  "subunit": "Cent",
1822
1865
  "subunit_to_unit": 100,
@@ -1832,6 +1875,7 @@
1832
1875
  "iso_code": "SDG",
1833
1876
  "name": "Sudanese Pound",
1834
1877
  "symbol": "£",
1878
+ "disambiguate_symbol": "SDG",
1835
1879
  "alternate_symbols": [],
1836
1880
  "subunit": "Piastre",
1837
1881
  "subunit_to_unit": 100,
@@ -1847,6 +1891,7 @@
1847
1891
  "iso_code": "SEK",
1848
1892
  "name": "Swedish Krona",
1849
1893
  "symbol": "kr",
1894
+ "disambiguate_symbol": "SEK",
1850
1895
  "alternate_symbols": [":-"],
1851
1896
  "subunit": "Öre",
1852
1897
  "subunit_to_unit": 100,
@@ -1862,6 +1907,7 @@
1862
1907
  "iso_code": "SGD",
1863
1908
  "name": "Singapore Dollar",
1864
1909
  "symbol": "$",
1910
+ "disambiguate_symbol": "S$",
1865
1911
  "alternate_symbols": ["S$"],
1866
1912
  "subunit": "Cent",
1867
1913
  "subunit_to_unit": 100,
@@ -1877,6 +1923,7 @@
1877
1923
  "iso_code": "SHP",
1878
1924
  "name": "Saint Helenian Pound",
1879
1925
  "symbol": "£",
1926
+ "disambiguate_symbol": "SHP",
1880
1927
  "alternate_symbols": [],
1881
1928
  "subunit": "Penny",
1882
1929
  "subunit_to_unit": 100,
@@ -1937,6 +1984,7 @@
1937
1984
  "iso_code": "SRD",
1938
1985
  "name": "Surinamese Dollar",
1939
1986
  "symbol": "$",
1987
+ "disambiguate_symbol": "SRD",
1940
1988
  "alternate_symbols": [],
1941
1989
  "subunit": "Cent",
1942
1990
  "subunit_to_unit": 100,
@@ -1952,6 +2000,7 @@
1952
2000
  "iso_code": "SSP",
1953
2001
  "name": "South Sudanese Pound",
1954
2002
  "symbol": "£",
2003
+ "disambiguate_symbol": "SSP",
1955
2004
  "alternate_symbols": [],
1956
2005
  "subunit": "piaster",
1957
2006
  "subunit_to_unit": 100,
@@ -2012,6 +2061,7 @@
2012
2061
  "iso_code": "SZL",
2013
2062
  "name": "Swazi Lilangeni",
2014
2063
  "symbol": "L",
2064
+ "disambiguate_symbol": "SZL",
2015
2065
  "alternate_symbols": ["E"],
2016
2066
  "subunit": "Cent",
2017
2067
  "subunit_to_unit": 100,
@@ -2101,8 +2151,8 @@
2101
2151
  "priority": 100,
2102
2152
  "iso_code": "TRY",
2103
2153
  "name": "Turkish Lira",
2104
- "symbol": "TL",
2105
- "alternate_symbols": [],
2154
+ "symbol": "",
2155
+ "alternate_symbols": ["TL"],
2106
2156
  "subunit": "kuruş",
2107
2157
  "subunit_to_unit": 100,
2108
2158
  "symbol_first": false,
@@ -2117,6 +2167,7 @@
2117
2167
  "iso_code": "TTD",
2118
2168
  "name": "Trinidad and Tobago Dollar",
2119
2169
  "symbol": "$",
2170
+ "disambiguate_symbol": "TT$",
2120
2171
  "alternate_symbols": ["TT$"],
2121
2172
  "subunit": "Cent",
2122
2173
  "subunit_to_unit": 100,
@@ -2132,6 +2183,7 @@
2132
2183
  "iso_code": "TWD",
2133
2184
  "name": "New Taiwan Dollar",
2134
2185
  "symbol": "$",
2186
+ "disambiguate_symbol": "NT$",
2135
2187
  "alternate_symbols": ["NT$"],
2136
2188
  "subunit": "Cent",
2137
2189
  "subunit_to_unit": 100,
@@ -2254,13 +2306,13 @@
2254
2306
  "symbol": "₫",
2255
2307
  "alternate_symbols": [],
2256
2308
  "subunit": "Hào",
2257
- "subunit_to_unit": 10,
2309
+ "subunit_to_unit": 1,
2258
2310
  "symbol_first": true,
2259
2311
  "html_entity": "&#x20AB;",
2260
2312
  "decimal_mark": ",",
2261
2313
  "thousands_separator": ".",
2262
2314
  "iso_numeric": "704",
2263
- "smallest_denomination": 2000
2315
+ "smallest_denomination": 100
2264
2316
  },
2265
2317
  "vuv": {
2266
2318
  "priority": 100,
@@ -2282,6 +2334,7 @@
2282
2334
  "iso_code": "WST",
2283
2335
  "name": "Samoan Tala",
2284
2336
  "symbol": "T",
2337
+ "disambiguate_symbol": "WS$",
2285
2338
  "alternate_symbols": ["WS$", "SAT", "ST"],
2286
2339
  "subunit": "Sene",
2287
2340
  "subunit_to_unit": 100,
@@ -2297,6 +2350,7 @@
2297
2350
  "iso_code": "XAF",
2298
2351
  "name": "Central African Cfa Franc",
2299
2352
  "symbol": "Fr",
2353
+ "disambiguate_symbol": "FCFA",
2300
2354
  "alternate_symbols": ["FCFA"],
2301
2355
  "subunit": "Centime",
2302
2356
  "subunit_to_unit": 100,
@@ -2312,6 +2366,7 @@
2312
2366
  "iso_code": "XAG",
2313
2367
  "name": "Silver (Troy Ounce)",
2314
2368
  "symbol": "oz t",
2369
+ "disambiguate_symbol": "XAG",
2315
2370
  "alternate_symbols": [],
2316
2371
  "subunit": "oz",
2317
2372
  "subunit_to_unit": 1,
@@ -2326,6 +2381,7 @@
2326
2381
  "iso_code": "XAU",
2327
2382
  "name": "Gold (Troy Ounce)",
2328
2383
  "symbol": "oz t",
2384
+ "disambiguate_symbol": "XAU",
2329
2385
  "alternate_symbols": [],
2330
2386
  "subunit": "oz",
2331
2387
  "subunit_to_unit": 1,
@@ -2340,6 +2396,7 @@
2340
2396
  "iso_code": "XCD",
2341
2397
  "name": "East Caribbean Dollar",
2342
2398
  "symbol": "$",
2399
+ "disambiguate_symbol": "EX$",
2343
2400
  "alternate_symbols": ["EC$"],
2344
2401
  "subunit": "Cent",
2345
2402
  "subunit_to_unit": 100,
@@ -2369,6 +2426,7 @@
2369
2426
  "iso_code": "XOF",
2370
2427
  "name": "West African Cfa Franc",
2371
2428
  "symbol": "Fr",
2429
+ "disambiguate_symbol": "CFA",
2372
2430
  "alternate_symbols": ["CFA"],
2373
2431
  "subunit": "Centime",
2374
2432
  "subunit_to_unit": 100,
@@ -2429,6 +2487,7 @@
2429
2487
  "iso_code": "ZMK",
2430
2488
  "name": "Zambian Kwacha",
2431
2489
  "symbol": "ZK",
2490
+ "disambiguate_symbol": "ZMK",
2432
2491
  "alternate_symbols": [],
2433
2492
  "subunit": "Ngwee",
2434
2493
  "subunit_to_unit": 100,
@@ -2444,6 +2503,7 @@
2444
2503
  "iso_code": "ZMW",
2445
2504
  "name": "Zambian Kwacha",
2446
2505
  "symbol": "ZK",
2506
+ "disambiguate_symbol": "ZMW",
2447
2507
  "alternate_symbols": [],
2448
2508
  "subunit": "Ngwee",
2449
2509
  "subunit_to_unit": 100,
@@ -18,6 +18,7 @@
18
18
  "iso_code": "JEP",
19
19
  "name": "Jersey Pound",
20
20
  "symbol": "£",
21
+ "disambiguate_symbol": "JEP",
21
22
  "alternate_symbols": [],
22
23
  "subunit": "Penny",
23
24
  "subunit_to_unit": 100,
@@ -141,6 +141,7 @@ class Money
141
141
  # defined by the ISO 4217 standard.
142
142
  # @attr_reader [String] name The currency name.
143
143
  # @attr_reader [String] symbol The currency symbol (UTF-8 encoded).
144
+ # @attr_reader [String] disambiguate_symbol Alternative currency used if symbol is ambiguous
144
145
  # @attr_reader [String] html_entity The html entity for the currency symbol
145
146
  # @attr_reader [String] subunit The name of the fractional monetary unit.
146
147
  # @attr_reader [Integer] subunit_to_unit The proportion between the unit
@@ -155,7 +156,7 @@ class Money
155
156
  # possible (in the subunit of this currency)
156
157
 
157
158
  attr_reader :id, :priority, :iso_code, :iso_numeric, :name, :symbol,
158
- :html_entity, :subunit, :subunit_to_unit, :decimal_mark,
159
+ :disambiguate_symbol, :html_entity, :subunit, :subunit_to_unit, :decimal_mark,
159
160
  :thousands_separator, :symbol_first, :smallest_denomination
160
161
 
161
162
  alias_method :separator, :decimal_mark
@@ -180,6 +181,7 @@ class Money
180
181
  @iso_code = data[:iso_code]
181
182
  @name = data[:name]
182
183
  @symbol = data[:symbol]
184
+ @disambiguate_symbol = data[:disambiguate_symbol]
183
185
  @alternate_symbols = data[:alternate_symbols]
184
186
  @subunit = data[:subunit]
185
187
  @subunit_to_unit = data[:subunit_to_unit]
data/lib/money/money.rb CHANGED
@@ -15,7 +15,7 @@ require "money/money/formatting"
15
15
  # @see http://en.wikipedia.org/wiki/Money
16
16
  class Money
17
17
  include Comparable, Money::Arithmetic, Money::Formatting
18
-
18
+
19
19
  # Raised when smallest denomination of a currency is not defined
20
20
  class UndefinedSmallestDenomination < StandardError; end
21
21
 
@@ -52,7 +52,7 @@ class Money
52
52
 
53
53
  return_value(fractional)
54
54
  end
55
-
55
+
56
56
  # Round a given amount of money to the nearest possible amount in cash value. For
57
57
  # example, in Swiss francs (CHF), the smallest possible amount of cash value is
58
58
  # CHF 0.05. Therefore, this method rounds CHF 0.07 to CHF 0.05, and CHF 0.08 to
@@ -66,11 +66,11 @@ class Money
66
66
  unless self.currency.smallest_denomination
67
67
  raise UndefinedSmallestDenomination, 'Smallest denomination of this currency is not defined'
68
68
  end
69
-
69
+
70
70
  fractional = as_d(@fractional)
71
71
  smallest_denomination = as_d(self.currency.smallest_denomination)
72
72
  rounded_value = (fractional / smallest_denomination).round(0, self.class.rounding_mode) * smallest_denomination
73
-
73
+
74
74
  return_value(rounded_value)
75
75
  end
76
76
 
@@ -86,18 +86,34 @@ class Money
86
86
  # This property allows you to specify the default bank object. The default
87
87
  # value for this property is an instance of +Bank::VariableExchange.+ It
88
88
  # allows one to specify custom exchange rates.
89
+ #
89
90
  # @attr_accessor [Money::Currency] default_currency The default currency,
90
91
  # which is used when +Money.new+ is called without an explicit currency
91
92
  # argument. The default value is Currency.new("USD"). The value must be a
92
93
  # valid +Money::Currency+ instance.
94
+ #
95
+ # @attr_accessor [Hash] default_formatting_rules Use this to define a default
96
+ # hash of rules for everytime +Money#format+ is called.
97
+ # Rules provided on method call will be merged with the default ones.
98
+ # To overwrite a rule, just provide the intended value while calling +format+.
99
+ #
100
+ # @see +Money::Formatting#format+ for more details.
101
+ #
102
+ # @example
103
+ # Money.default_formatting_rules = { :display_free => true }
104
+ # Money.new(0, "USD").format # => "free"
105
+ # Money.new(0, "USD").format(:display_free => false) # => "$0.00"
106
+ #
93
107
  # @attr_accessor [true, false] use_i18n Use this to disable i18n even if
94
108
  # it's used by other objects in your app.
109
+ #
95
110
  # @attr_accessor [true, false] infinite_precision Use this to enable
96
111
  # infinite precision cents
112
+ #
97
113
  # @attr_accessor [Integer] conversion_precision Use this to specify
98
114
  # precision for converting Rational to BigDecimal
99
- attr_accessor :default_bank, :default_currency, :use_i18n,
100
- :infinite_precision, :conversion_precision
115
+ attr_accessor :default_bank, :default_currency, :default_formatting_rules,
116
+ :use_i18n, :infinite_precision, :conversion_precision
101
117
 
102
118
  # @attr_writer rounding_mode Use this to specify the rounding mode
103
119
  attr_writer :rounding_mode
@@ -260,7 +276,7 @@ class Money
260
276
  def initialize(obj, currency = Money.default_currency, bank = Money.default_bank)
261
277
  @fractional = obj.respond_to?(:fractional) ? obj.fractional : as_d(obj)
262
278
  @currency = obj.respond_to?(:currency) ? obj.currency : Currency.wrap(currency)
263
- @currency ||= Money.default_currency
279
+ @currency ||= Money.default_currency
264
280
  @bank = obj.respond_to?(:bank) ? obj.bank : bank
265
281
  end
266
282
 
@@ -618,7 +634,7 @@ class Money
618
634
  index < remainder ? high : low
619
635
  end
620
636
  end
621
-
637
+
622
638
  def return_value(value)
623
639
  if self.class.infinite_precision
624
640
  value
@@ -13,12 +13,11 @@ class Money
13
13
  def self.define_i18n_method(method, name, character)
14
14
  define_method(method) do
15
15
  if self.class.use_i18n
16
- I18n.t(
17
- :"number.currency.format.#{name}", :default => I18n.t(
18
- :"number.format.#{name}",
19
- :default => (currency.send(method) || character)
20
- )
21
- )
16
+ begin
17
+ I18n.t name, :scope => "number.currency.format", :raise => true
18
+ rescue I18n::MissingTranslationData => e
19
+ I18n.t name, :scope =>"number.format", :default => (currency.send(method) || character)
20
+ end
22
21
  else
23
22
  currency.send(method) || character
24
23
  end
@@ -180,10 +179,25 @@ class Money
180
179
  # Money.new(100, "GBP").format(:sign_positive => false, :sign_before_symbol => true) #=> "£1.00"
181
180
  # Money.new(100, "GBP").format(:sign_positive => false, :sign_before_symbol => false) #=> "£1.00"
182
181
  # Money.new(100, "GBP").format #=> "£+1.00"
182
+ #
183
+ # @option *rules [Boolean] :disambiguate (false) Prevents the result from being ambiguous
184
+ # due to equal symbols for different currencies. Uses the `disambiguate_symbol`.
185
+ #
186
+ # @example
187
+ # Money.new(100, "USD").format(:disambiguate => false) #=> "$100.00"
188
+ # Money.new(100, "CAD").format(:disambiguate => false) #=> "$100.00"
189
+ # Money.new(100, "USD").format(:disambiguate => true) #=> "$100.00"
190
+ # Money.new(100, "CAD").format(:disambiguate => true) #=> "C$100.00"
191
+ #
192
+ # Note that the default rules can be defined through +Money.default_formatting_rules+ hash.
193
+ #
194
+ # @see +Money.default_formatting_rules+ for more information.
183
195
 
184
196
  def format(*rules)
185
197
  # support for old format parameters
186
198
  rules = normalize_formatting_rules(rules)
199
+
200
+ rules = default_formatting_rules.merge(rules)
187
201
  rules = localize_formatting_rules(rules)
188
202
 
189
203
  if fractional == 0
@@ -298,6 +312,10 @@ class Money
298
312
  end
299
313
  end
300
314
 
315
+ def default_formatting_rules
316
+ self.class.default_formatting_rules || {}
317
+ end
318
+
301
319
  def regexp_format(formatted, rules, decimal_mark, symbol_value)
302
320
  regexp_decimal = Regexp.escape(decimal_mark)
303
321
  if rules[:south_asian_number_formatting]
@@ -332,6 +350,8 @@ class Money
332
350
  end
333
351
  elsif rules[:html]
334
352
  currency.html_entity == '' ? currency.symbol : currency.html_entity
353
+ elsif rules[:disambiguate] and currency.disambiguate_symbol
354
+ currency.disambiguate_symbol
335
355
  else
336
356
  symbol
337
357
  end
data/lib/money/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Money
2
- VERSION = "6.3.0"
2
+ VERSION = "6.4.0"
3
3
  end
data/money.gemspec CHANGED
@@ -25,7 +25,7 @@ and choose the migration that best suits your application.
25
25
  Test responsibly :-)
26
26
  MSG
27
27
 
28
- s.add_dependency 'i18n', ['>= 0.6.4', '<= 0.7.0.dev']
28
+ s.add_dependency 'i18n', ['>= 0.6.4', '<= 0.7.0.beta1']
29
29
 
30
30
  s.add_development_dependency "bundler", "~> 1.3"
31
31
  s.add_development_dependency "rake"
@@ -120,7 +120,7 @@ describe Money, "formatting" do
120
120
  end
121
121
 
122
122
  it "does not display a decimal when :subunit_to_unit is 1" do
123
- expect(Money.new(10_00, "CLP").format).to eq "$1.000"
123
+ expect(Money.new(10_00, "VUV").format).to eq "Vt1,000"
124
124
  end
125
125
 
126
126
  it "respects the thousands_separator and decimal_mark defaults" do
@@ -169,6 +169,40 @@ describe Money, "formatting" do
169
169
  expect(Money.euro(1_234_567_12).format(:no_cents => true)).to eq "€1.234.567"
170
170
  end
171
171
 
172
+ context 'when default_formatting_rules defines (display_free: true)' do
173
+ before do
174
+ Money.default_formatting_rules = { :display_free => "you won't pay a thing" }
175
+ end
176
+
177
+ after do
178
+ Money.default_formatting_rules = nil
179
+ end
180
+
181
+ context 'with no rule provided' do
182
+ it 'acknowledges default rule' do
183
+ expect(Money.new(0, 'USD').format).to eq "you won't pay a thing"
184
+ end
185
+ end
186
+
187
+ context 'with rule (display_free: false) provided' do
188
+ it 'acknowledges provided rule' do
189
+ expect(Money.new(0, 'USD').format(:display_free => false)).to eq '$0.00'
190
+ end
191
+ end
192
+ end
193
+
194
+ context 'when default_formatting_rules is not defined' do
195
+ before do
196
+ Money.default_formatting_rules = nil
197
+ end
198
+
199
+ context 'acknowledges provided rule' do
200
+ it 'acknowledges provided rule' do
201
+ expect(Money.new(100, 'USD').format(:with_currency => true)).to eq '$1.00 USD'
202
+ end
203
+ end
204
+ end
205
+
172
206
  describe ":with_currency option" do
173
207
  specify "(:with_currency option => true) works as documented" do
174
208
  expect(Money.ca_dollar(100).format(:with_currency => true)).to eq "$1.00 CAD"
@@ -191,7 +225,7 @@ describe Money, "formatting" do
191
225
  it "inserts thousand separators if symbol contains decimal mark and no_cents is true" do
192
226
  expect(Money.new(100000000, "AMD").format(:no_cents => true)).to eq "1,000,000 դր."
193
227
  expect(Money.new(100000000, "USD").format(:no_cents => true)).to eq "$1,000,000"
194
- expect(Money.new(100000000, "RUB").format(:no_cents => true)).to eq "1.000.000 р."
228
+ expect(Money.new(100000000, "RUB").format(:no_cents => true)).to eq "1.000.000 руб"
195
229
  end
196
230
 
197
231
  it "doesn't incorrectly format HTML" do
@@ -207,8 +241,8 @@ describe Money, "formatting" do
207
241
  expect(Money.new(10034, "VUV").format(:no_cents_if_whole => true, :symbol => false)).to eq "10,034"
208
242
  expect(Money.new(10000, "MGA").format(:no_cents_if_whole => true, :symbol => false)).to eq "2,000"
209
243
  expect(Money.new(10034, "MGA").format(:no_cents_if_whole => true, :symbol => false)).to eq "2,006.4"
210
- expect(Money.new(10000, "VND").format(:no_cents_if_whole => true, :symbol => false)).to eq "1.000"
211
- expect(Money.new(10034, "VND").format(:no_cents_if_whole => true, :symbol => false)).to eq "1.003,4"
244
+ expect(Money.new(10000, "VND").format(:no_cents_if_whole => true, :symbol => false)).to eq "10.000"
245
+ expect(Money.new(10034, "VND").format(:no_cents_if_whole => true, :symbol => false)).to eq "10.034"
212
246
  expect(Money.new(10000, "USD").format(:no_cents_if_whole => true, :symbol => false)).to eq "100"
213
247
  expect(Money.new(10034, "USD").format(:no_cents_if_whole => true, :symbol => false)).to eq "100.34"
214
248
  expect(Money.new(10000, "IQD").format(:no_cents_if_whole => true, :symbol => false)).to eq "10"
@@ -220,8 +254,8 @@ describe Money, "formatting" do
220
254
  expect(Money.new(10034, "VUV").format(:no_cents_if_whole => false, :symbol => false)).to eq "10,034"
221
255
  expect(Money.new(10000, "MGA").format(:no_cents_if_whole => false, :symbol => false)).to eq "2,000.0"
222
256
  expect(Money.new(10034, "MGA").format(:no_cents_if_whole => false, :symbol => false)).to eq "2,006.4"
223
- expect(Money.new(10000, "VND").format(:no_cents_if_whole => false, :symbol => false)).to eq "1.000,0"
224
- expect(Money.new(10034, "VND").format(:no_cents_if_whole => false, :symbol => false)).to eq "1.003,4"
257
+ expect(Money.new(10000, "VND").format(:no_cents_if_whole => false, :symbol => false)).to eq "10.000"
258
+ expect(Money.new(10034, "VND").format(:no_cents_if_whole => false, :symbol => false)).to eq "10.034"
225
259
  expect(Money.new(10000, "USD").format(:no_cents_if_whole => false, :symbol => false)).to eq "100.00"
226
260
  expect(Money.new(10034, "USD").format(:no_cents_if_whole => false, :symbol => false)).to eq "100.34"
227
261
  expect(Money.new(10000, "IQD").format(:no_cents_if_whole => false, :symbol => false)).to eq "10.000"
@@ -586,4 +620,44 @@ describe Money, "formatting" do
586
620
  end
587
621
 
588
622
  end
623
+
624
+ context "currencies with ambiguous signs" do
625
+
626
+ it "returns ambiguous signs when disambiguate is not set" do
627
+ expect(Money.new(1999_98, "USD").format).to eq("$1,999.98")
628
+ expect(Money.new(1999_98, "CAD").format).to eq("$1,999.98")
629
+ expect(Money.new(1999_98, "DKK").format).to eq("1.999,98 kr")
630
+ expect(Money.new(1999_98, "NOK").format).to eq("1.999,98 kr")
631
+ expect(Money.new(1999_98, "SEK").format).to eq("1 999,98 kr")
632
+ end
633
+
634
+ it "returns ambiguous signs when disambiguate is false" do
635
+ expect(Money.new(1999_98, "USD").format(disambiguate: false)).to eq("$1,999.98")
636
+ expect(Money.new(1999_98, "CAD").format(disambiguate: false)).to eq("$1,999.98")
637
+ expect(Money.new(1999_98, "DKK").format(disambiguate: false)).to eq("1.999,98 kr")
638
+ expect(Money.new(1999_98, "NOK").format(disambiguate: false)).to eq("1.999,98 kr")
639
+ expect(Money.new(1999_98, "SEK").format(disambiguate: false)).to eq("1 999,98 kr")
640
+ end
641
+
642
+ it "returns disambiguate signs when disambiguate: true" do
643
+ expect(Money.new(1999_98, "USD").format(disambiguate: true)).to eq("$1,999.98")
644
+ expect(Money.new(1999_98, "CAD").format(disambiguate: true)).to eq("C$1,999.98")
645
+ expect(Money.new(1999_98, "DKK").format(disambiguate: true)).to eq("1.999,98 DKK")
646
+ expect(Money.new(1999_98, "NOK").format(disambiguate: true)).to eq("1.999,98 NOK")
647
+ expect(Money.new(1999_98, "SEK").format(disambiguate: true)).to eq("1 999,98 SEK")
648
+ end
649
+
650
+ it "should never return an ambiguous format with disambiguate: true" do
651
+ formatted_results = {}
652
+
653
+ # When we format the same amount in all known currencies, disambiguate should return
654
+ # all different values
655
+ Money::Currency.all.each do |currency|
656
+ format = Money.new(1999_98, currency).format(disambiguate: true)
657
+ expect(formatted_results.keys).not_to include(format), "Format '#{format}' for #{currency} is ambiguous with currency #{formatted_results[format]}."
658
+ formatted_results[format] = currency
659
+ end
660
+ end
661
+
662
+ end
589
663
  end
data/spec/money_spec.rb CHANGED
@@ -385,7 +385,7 @@ YAML
385
385
  it "respects :subunit_to_unit currency property" do
386
386
  expect(Money.new(1_00, "USD").amount).to eq 1
387
387
  expect(Money.new(1_000, "TND").amount).to eq 1
388
- expect(Money.new(1, "CLP").amount).to eq 1
388
+ expect(Money.new(1, "VUV").amount).to eq 1
389
389
  end
390
390
 
391
391
  it "does not loose precision" do
@@ -473,7 +473,7 @@ YAML
473
473
  end
474
474
 
475
475
  it "does not have decimal when :subunit_to_unit == 1" do
476
- expect(Money.new(10_00, "CLP").to_s).to eq "1000"
476
+ expect(Money.new(10_00, "VUV").to_s).to eq "1000"
477
477
  end
478
478
 
479
479
  it "does not work when :subunit_to_unit == 5" do
@@ -502,7 +502,7 @@ YAML
502
502
  end
503
503
 
504
504
  it "shows fractional if needed when :subunut_to_unit == 1" do
505
- expect(Money.new(10_00.1, "CLP").to_s).to eq "1000,1"
505
+ expect(Money.new(10_00.1, "VUV").to_s).to eq "1000.1"
506
506
  end
507
507
  end
508
508
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: money
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.3.0
4
+ version: 6.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane Emmons
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-11 00:00:00.000000000 Z
11
+ date: 2014-10-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: 0.6.4
20
20
  - - "<="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.7.0.dev
22
+ version: 0.7.0.beta1
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: 0.6.4
30
30
  - - "<="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.7.0.dev
32
+ version: 0.7.0.beta1
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: bundler
35
35
  requirement: !ruby/object:Gem::Requirement