exchange 0.12.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/.travis.yml +1 -0
  2. data/README.rdoc +34 -6
  3. data/Rakefile +3 -30
  4. data/changelog.rdoc +6 -0
  5. data/exchange.gemspec +3 -6
  6. data/iso4217.yml +238 -81
  7. data/lib/exchange.rb +2 -1
  8. data/lib/exchange/base.rb +3 -2
  9. data/lib/exchange/cache.rb +1 -0
  10. data/lib/exchange/cache/base.rb +2 -1
  11. data/lib/exchange/cache/configuration.rb +2 -1
  12. data/lib/exchange/cache/file.rb +2 -1
  13. data/lib/exchange/cache/memcached.rb +2 -1
  14. data/lib/exchange/cache/memory.rb +2 -1
  15. data/lib/exchange/cache/no_cache.rb +2 -1
  16. data/lib/exchange/cache/rails.rb +2 -1
  17. data/lib/exchange/cache/redis.rb +2 -1
  18. data/lib/exchange/configurable.rb +3 -2
  19. data/lib/exchange/configuration.rb +8 -5
  20. data/lib/exchange/core_extensions.rb +2 -1
  21. data/lib/exchange/core_extensions/cachify.rb +2 -1
  22. data/lib/exchange/core_extensions/float/error_safe.rb +2 -1
  23. data/lib/exchange/core_extensions/numeric/conversability.rb +2 -1
  24. data/lib/exchange/external_api.rb +3 -1
  25. data/lib/exchange/external_api/base.rb +2 -1
  26. data/lib/exchange/external_api/call.rb +2 -1
  27. data/lib/exchange/external_api/configuration.rb +18 -3
  28. data/lib/exchange/external_api/ecb.rb +2 -1
  29. data/lib/exchange/external_api/json.rb +2 -1
  30. data/lib/exchange/external_api/open_exchange_rates.rb +2 -1
  31. data/lib/exchange/external_api/random.rb +31 -0
  32. data/lib/exchange/external_api/xavier_media.rb +2 -1
  33. data/lib/exchange/external_api/xml.rb +2 -1
  34. data/lib/exchange/gem_loader.rb +2 -1
  35. data/lib/exchange/helper.rb +2 -1
  36. data/lib/exchange/iso.rb +29 -13
  37. data/lib/exchange/money.rb +35 -9
  38. data/lib/exchange/typecasting.rb +2 -1
  39. data/spec/exchange/cache/base_spec.rb +2 -1
  40. data/spec/exchange/cache/configuration_spec.rb +4 -1
  41. data/spec/exchange/cache/file_spec.rb +2 -1
  42. data/spec/exchange/cache/memcached_spec.rb +2 -1
  43. data/spec/exchange/cache/memory_spec.rb +4 -2
  44. data/spec/exchange/cache/no_cache_spec.rb +2 -1
  45. data/spec/exchange/cache/rails_spec.rb +2 -1
  46. data/spec/exchange/cache/redis_spec.rb +2 -1
  47. data/spec/exchange/configuration_spec.rb +6 -2
  48. data/spec/exchange/core_extensions/array/cachify_spec.rb +2 -1
  49. data/spec/exchange/core_extensions/float/error_safe_spec.rb +2 -1
  50. data/spec/exchange/core_extensions/hash/cachify_spec.rb +2 -1
  51. data/spec/exchange/core_extensions/numeric/cachify_spec.rb +2 -1
  52. data/spec/exchange/core_extensions/numeric/conversability_spec.rb +2 -1
  53. data/spec/exchange/core_extensions/string/cachify_spec.rb +2 -1
  54. data/spec/exchange/core_extensions/symbol/cachify_spec.rb +2 -1
  55. data/spec/exchange/external_api/base_spec.rb +2 -1
  56. data/spec/exchange/external_api/call_spec.rb +2 -1
  57. data/spec/exchange/external_api/configuration_spec.rb +18 -2
  58. data/spec/exchange/external_api/ecb_spec.rb +2 -1
  59. data/spec/exchange/external_api/open_exchange_rates_spec.rb +2 -1
  60. data/spec/exchange/external_api/random_spec.rb +40 -0
  61. data/spec/exchange/external_api/xavier_media_spec.rb +2 -1
  62. data/spec/exchange/gem_loader_spec.rb +2 -1
  63. data/spec/exchange/helper_spec.rb +2 -1
  64. data/spec/exchange/iso_spec.rb +214 -189
  65. data/spec/exchange/money_spec.rb +65 -2
  66. data/spec/exchange/typecasting_spec.rb +2 -1
  67. data/spec/spec_helper.rb +3 -1
  68. metadata +10 -10
  69. data/benchmark/benchmark.rb +0 -50
@@ -3,6 +3,7 @@ rvm:
3
3
  - 1.8.7
4
4
  - 1.9.2
5
5
  - 1.9.3
6
+ - 2.0.0
6
7
  - ree
7
8
  - rbx-18mode
8
9
  - rbx-19mode
@@ -1,9 +1,11 @@
1
- = exchange {<img src="https://secure.travis-ci.org/beatrichartz/exchange.png" />}[http://travis-ci.org/beatrichartz/exchange] {<img src="https://gemnasium.com/beatrichartz/exchange.png" alt="Dependency Status" />}[https://gemnasium.com/beatrichartz/exchange] {<img src="https://codeclimate.com/badge.png" />}[https://codeclimate.com/github/beatrichartz/exchange]
1
+ = exchange {<img src="https://secure.travis-ci.org/beatrichartz/exchange.png?branch=master" />}[http://travis-ci.org/beatrichartz/exchange] {<img src="https://gemnasium.com/beatrichartz/exchange.png" alt="Dependency Status" />}[https://gemnasium.com/beatrichartz/exchange] {<img src="https://codeclimate.com/badge.png" />}[https://codeclimate.com/github/beatrichartz/exchange]
2
2
 
3
- The Exchange Gem gives you easy access to currency functions directly on your Numbers. {It is tested against}[http://travis-ci.org/beatrichartz/exchange]: ruby 1.9, ruby 1.8, ree and rubinius (1.8 and 1.9 mode)
3
+ The Exchange Gem gives you easy access to currency functions directly on your Numbers. {It is tested against}[http://travis-ci.org/beatrichartz/exchange]: ruby 2.0, 1.9, ruby 1.8, ree and rubinius (1.8 and 1.9 mode). Exchange will in future versions take advantage of 2.0 features, be sure to check this page for updates!
4
4
 
5
5
  You can use it with just plain ruby projects, in Rails 2 and 3, Sinatra or whatever Framework you like.
6
6
 
7
+ {<img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" />}[http://flattr.com/thing/1096528/]
8
+
7
9
  == Installation
8
10
  === Bundler / Rails
9
11
  Add it to your Gemfile
@@ -26,6 +28,12 @@ Conversion of currencies does not get any easier
26
28
  or better for historic dates
27
29
  1.in(:eur).to(:usd, :at => Time.now - 84600)
28
30
 
31
+ === Fallbacks for Conversion APIs
32
+ Never worry if an API is shortly unavailable – Exchange provides the possibility to fall back to other conversion API's if the chosen one is currently not available or does not provide a rate for the attempted conversion. Thus it is possible to combine different API's with incomplete currency sets to have a more complete currency set.
33
+
34
+ The performance impact of a fallback if a rate is recognizably not provided by an API is minimal, whereas the performance impact on a http connection error can have a bigger impact on performance.
35
+
36
+ The default fallback mechanism used calls the ECB API if the Xavier Media API is unavailable. You can set your own fallback chain using the API configuration.
29
37
 
30
38
  === Precise Calculation
31
39
 
@@ -91,9 +99,21 @@ You're hitting the internet only daily to get new rates (hourly updates are avai
91
99
  One of the issues with currencies is: You never know the format they should be in. With Exchange, you can just use the currencies
92
100
  to_s method, which takes care of the right format for you. You can either have a string with the currency code in front, or just the amount in the right format
93
101
 
94
- 49.567.in(:usd).to_s #=> "USD 49.57"
95
- 45.in(:jpy).to_s #=> "JPY 45"
96
- 34.34.in(:omr).to_s #=> "OMR 34.340"
102
+ Normal formatting via to_s includes the ISO4217-compatible currency code
103
+
104
+ 1.in(:usd).to_s #=> "USD 1.00"
105
+
106
+ Specify the symbol format will print out the currency with a symbol. If no symbol is associated with a currency, the fallback used is the normally formatted string with the ISO4217-compatible currency code
107
+
108
+ 1.2.in(:eur).to_s(:symbol) #=> "€1.40"
109
+
110
+ Specifying the amount format will print out the formatted amount only
111
+
112
+ 1440.4.in(:usd).to_s(:amount) #=> "1,440.40"
113
+
114
+ As seen above, exchange takes care of the right format for the separators
115
+
116
+ 155_000_000.in(:usd).to_s #=> "USD 155,000,000.00"
97
117
 
98
118
  === Use three great APIs or your own
99
119
 
@@ -195,7 +215,15 @@ Convert one currency to another and round, ceil or floor it, it still retains cu
195
215
  10.34.in(:usd).to(:nok).ceil(0) #=> #<Exchange::Money @value=45 @currency=:nok>
196
216
  5.34.in(:usd).to(:eur).floor(0) #=> #<Exchange::Money @value=4 @currency=:eur>
197
217
  5.34.in(:usd).to(:eur).floor.from #=> #<Exchange::Money @value=5.34 @currency=:usd>
198
-
218
+
219
+ === Psychological Pricing
220
+
221
+ You can apply psychological pricing by passing the psych argument to the rounding operation
222
+
223
+ 10.345.in(:usd).round(:psych) #=> 9.99
224
+ 9.999.in(:eur).floor(:psych) #=> 8.99
225
+ 10.345.in(:omr).ceil(:psych) #=> 10.999
226
+ 76.in(:jpy).floor(:psych) #=> 69
199
227
 
200
228
  === Retain Information
201
229
 
data/Rakefile CHANGED
@@ -3,44 +3,17 @@
3
3
  require 'rubygems'
4
4
  require 'bundler'
5
5
  begin
6
- Bundler.setup(:default, :development)
6
+ Bundler.require(:default, :test)
7
7
  rescue Bundler::BundlerError => e
8
8
  $stderr.puts e.message
9
9
  $stderr.puts "Run `bundle install` to install missing gems"
10
10
  exit e.status_code
11
11
  end
12
12
  require 'rake'
13
-
14
- require 'jeweler'
15
- Jeweler::Tasks.new do |gem|
16
- # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
- gem.name = "exchange"
18
- gem.homepage = "http://github.com/beatrichartz/exchange"
19
- gem.license = "MIT"
20
- gem.summary = %Q{Simple Exchange Rate operations for your ruby app}
21
- gem.description = %Q{The Exchange Gem gives you easy access to currency functions directly on your Numbers. Imagine a conversion as easy as
22
- 1.in(:eur).to(:usd)
23
- or even better
24
- 1.in(:eur).to(:usd, :at => Time.now - 84600)
25
- which gets you an exchange at the rates of yesterday.}
26
- gem.email = "exchange_gem@gmail.com"
27
- gem.authors = ["Beat Richartz"]
28
- # dependencies defined in Gemfile
29
- end
30
- Jeweler::RubygemsDotOrgTasks.new
13
+ require 'rspec/core/rake_task'
31
14
 
32
15
  task :default => :test
33
16
 
34
- require 'rspec/core'
35
- require 'rspec/core/rake_task'
36
17
  RSpec::Core::RakeTask.new(:spec) do |spec|
37
18
  spec.pattern = FileList['spec/**/*_spec.rb']
38
- end
39
-
40
- require 'yard'
41
- YARD::Rake::YardocTask.new
42
-
43
- # RSpec::Core::RakeTask.new(:rcov) do |spec|
44
- # spec.pattern = 'spec/**/*_spec.rb'
45
- # spec.rcov = true
46
- # end
19
+ end
@@ -1,5 +1,11 @@
1
1
  = Changes to Exchange
2
2
 
3
+ == 0.12.0
4
+ - Currencies can now be instantiated via ISO country codes
5
+ - Setting the host and the port now wipes existing cache clients in favor of a new one
6
+ - Better Dealing with Big Decimal precisions
7
+ - JRuby support
8
+
3
9
  == 0.11.0
4
10
  - Better implementation for preventing implicit conversions, if wished for: Now all operations including comparisons throw errors when implicit conversions are not allowed and currencies are to be converted implicitly.
5
11
 
@@ -6,18 +6,15 @@ Gem::Specification.new do |s|
6
6
  s.name = "exchange"
7
7
  s.version = Exchange::VERSION
8
8
  s.authors = ["Beat Richartz"]
9
- s.date = "2012-10-09"
10
- s.description = "The Exchange Gem gives you easy access to currency functions directly on your Numbers. Imagine a conversion as easy as \n 1.in(:eur).to(:usd) or even better \n 1.in(:eur).to(:usd, :at => Time.now - 84600)\n which gets you an exchange at the rates of yesterday."
11
- s.email = "exchange_gem@gmail.com"
9
+ s.description = "Simple Money handling for your ruby app – ISO4217-compatible Currency instantiation, conversion, string formatting and more via an intuitive DSL: 1.in(:usd).to(:eur)"
10
+ s.email = "attr_accessor@gmail.com"
12
11
  s.homepage = "http://beatrichartz.github.com/exchange"
13
12
  s.licenses = ["MIT"]
14
13
  s.require_paths = ["lib"]
15
- s.rubygems_version = "1.8.24"
16
- s.summary = "Simple Exchange Rate operations for your ruby app"
14
+ s.summary = "Simple Money handling for your ruby app"
17
15
 
18
16
  s.files = `git ls-files`.split("\n")
19
17
  s.test_files = `git ls-files -- spec/*`.split("\n")
20
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
18
  s.require_paths = ["lib"]
22
19
 
23
20
  s.add_dependency "nokogiri", ">= 1.0.0"
@@ -8,37 +8,51 @@ LAK:
8
8
  currency: Kip
9
9
  symbol: ₭
10
10
  SAR:
11
- format: ! '#,###.##'
11
+ separators:
12
+ major: ','
13
+ minor: '.'
12
14
  minor_unit: 2
13
15
  currency: Saudi Riyal
14
16
  symbol: ﷼
15
17
  NOK:
16
- format: ! '#.###,##'
18
+ separators:
19
+ major: '.'
20
+ minor: ','
17
21
  minor_unit: 2
18
22
  currency: Norwegian Krone
19
23
  symbol: kr
20
24
  USD:
21
- format: ! '#,###.##'
25
+ separators:
26
+ major: ','
27
+ minor: '.'
22
28
  minor_unit: 2
23
29
  currency: US Dollar
24
30
  symbol: $
25
31
  RUB:
26
- format: ! '#.###,##'
32
+ separators:
33
+ major: '.'
34
+ minor: ','
27
35
  minor_unit: 2
28
36
  currency: Russian Ruble
29
37
  symbol: руб
30
38
  XCD:
31
- format: ! '#,###.##'
39
+ separators:
40
+ major: ','
41
+ minor: '.'
32
42
  minor_unit: 2
33
43
  currency: East Caribbean Dollar
34
44
  symbol: $
35
45
  OMR:
36
- format: ! '#,###.###'
46
+ separators:
47
+ major: ','
48
+ minor: '.'
37
49
  minor_unit: 3
38
50
  currency: Rial Omani
39
51
  symbol: ﷼
40
52
  AMD:
41
- format: ! '#,###.##'
53
+ separators:
54
+ major: ','
55
+ minor: '.'
42
56
  minor_unit: 2
43
57
  currency: Armenian Dram
44
58
  symbol:
@@ -51,12 +65,16 @@ KPW:
51
65
  currency: North Korean Won
52
66
  symbol: ₩
53
67
  CNY:
54
- format: ! '#,###.##'
68
+ separators:
69
+ major: ','
70
+ minor: '.'
55
71
  minor_unit: 2
56
72
  currency: Yuan Renminbi
57
73
  symbol: ¥
58
74
  KES:
59
- format: ! '#,###.##'
75
+ separators:
76
+ major: ','
77
+ minor: '.'
60
78
  minor_unit: 2
61
79
  currency: Kenyan Shilling
62
80
  symbol:
@@ -65,7 +83,9 @@ KHR:
65
83
  currency: Riel
66
84
  symbol: ៛
67
85
  PLN:
68
- format: ! '# ###,##'
86
+ separators:
87
+ major: ' '
88
+ minor: ','
69
89
  minor_unit: 2
70
90
  currency: Zloty
71
91
  symbol: zł
@@ -74,47 +94,65 @@ MVR:
74
94
  currency: Rufiyaa
75
95
  symbol:
76
96
  GTQ:
77
- format: ! '#,###.##'
97
+ separators:
98
+ major: ','
99
+ minor: '.'
78
100
  minor_unit: 2
79
101
  currency: Quetzal
80
102
  symbol: Q
81
103
  CLP:
82
- format: ! '#.###'
104
+ separators:
105
+ major: '.'
83
106
  minor_unit: 0
84
107
  currency: Chilean Peso
85
108
  symbol: $
86
109
  INR:
110
+ separators:
111
+ major: ','
112
+ minor: '.'
87
113
  format: ! '#,##,###.##'
88
114
  minor_unit: 2
89
115
  currency: Indian Rupee
90
116
  symbol: ''
91
117
  BZD:
92
- format: ! '#,###.##'
118
+ separators:
119
+ major: ','
120
+ minor: '.'
93
121
  minor_unit: 2
94
122
  currency: Belize Dollar
95
123
  symbol: BZ$
96
124
  MYR:
97
- format: ! '#,###.##'
125
+ separators:
126
+ major: ','
127
+ minor: '.'
98
128
  minor_unit: 2
99
129
  currency: Malaysian Ringgit
100
130
  symbol: RM
101
131
  HKD:
102
- format: ! '#,###.##'
132
+ separators:
133
+ major: ','
134
+ minor: '.'
103
135
  minor_unit: 2
104
136
  currency: Hong Kong Dollar
105
137
  symbol: $
106
138
  COP:
107
- format: ! '#.###,##'
139
+ separators:
140
+ major: '.'
141
+ minor: ','
108
142
  minor_unit: 2
109
143
  currency: Colombian Peso
110
144
  symbol: $
111
145
  DKK:
112
- format: ! '#.###,##'
146
+ separators:
147
+ major: '.'
148
+ minor: ','
113
149
  minor_unit: 2
114
150
  currency: Danish Krone
115
151
  symbol: kr
116
152
  SEK:
117
- format: ! '#.###,##'
153
+ separators:
154
+ major: '.'
155
+ minor: ','
118
156
  minor_unit: 2
119
157
  currency: Swedish Krona
120
158
  symbol: kr
@@ -127,7 +165,9 @@ LYD:
127
165
  currency: Libyan Dinar
128
166
  symbol:
129
167
  RON:
130
- format: ! '#.###,##'
168
+ separators:
169
+ major: '.'
170
+ minor: ','
131
171
  minor_unit: 2
132
172
  currency: New Romanian Leu
133
173
  symbol: lei
@@ -140,12 +180,16 @@ BIF:
140
180
  currency: Burundi Franc
141
181
  symbol:
142
182
  ARS:
143
- format: ! '#.###,##'
183
+ separators:
184
+ major: '.'
185
+ minor: ','
144
186
  minor_unit: 2
145
187
  currency: Argentine Peso
146
188
  symbol: $
147
189
  GIP:
148
- format: ! '#,###.##'
190
+ separators:
191
+ major: ','
192
+ minor: '.'
149
193
  minor_unit: 2
150
194
  currency: Gibraltar Pound
151
195
  symbol: £
@@ -154,7 +198,9 @@ UYI:
154
198
  currency: Uruguay Peso en Unidades Indexadas (URUIURUI)
155
199
  symbol:
156
200
  BOB:
157
- format: ! '#,###.##'
201
+ separators:
202
+ major: ','
203
+ minor: '.'
158
204
  minor_unit: 2
159
205
  currency: Boliviano
160
206
  symbol: $b
@@ -179,7 +225,9 @@ XOF:
179
225
  currency: CFA Franc BCEAO
180
226
  symbol:
181
227
  AED:
182
- format: ! '#,###.##'
228
+ separators:
229
+ major: ','
230
+ minor: '.'
183
231
  minor_unit: 2
184
232
  currency: UAE Dirham
185
233
  symbol:
@@ -192,7 +240,9 @@ MWK:
192
240
  currency: Kwacha
193
241
  symbol:
194
242
  CUP:
195
- format: ! '#,###.##'
243
+ separators:
244
+ major: ','
245
+ minor: '.'
196
246
  minor_unit: 2
197
247
  currency: Cuban Peso
198
248
  symbol: ₱
@@ -209,7 +259,9 @@ CVE:
209
259
  currency: Cape Verde Escudo
210
260
  symbol:
211
261
  TZS:
212
- format: ! '#,###.##'
262
+ separators:
263
+ major: ','
264
+ minor: '.'
213
265
  minor_unit: 2
214
266
  currency: Tanzanian Shilling
215
267
  symbol:
@@ -266,7 +318,9 @@ MGA:
266
318
  currency: Malagasy Ariary
267
319
  symbol:
268
320
  TOP:
269
- format: ! '#,###.##'
321
+ separators:
322
+ major: ','
323
+ minor: '.'
270
324
  minor_unit: 2
271
325
  currency: Pa’anga
272
326
  symbol:
@@ -275,7 +329,9 @@ MZN:
275
329
  currency: Mozambique Metical
276
330
  symbol: MT
277
331
  LVL:
278
- format: ! '#,###.##'
332
+ separators:
333
+ major: ','
334
+ minor: '.'
279
335
  minor_unit: 2
280
336
  currency: Latvian Lats
281
337
  symbol: Ls
@@ -288,32 +344,43 @@ USS:
288
344
  currency: US Dollar (Same day)
289
345
  symbol:
290
346
  BWP:
291
- format: ! '#,###.##'
347
+ separators:
348
+ major: ','
349
+ minor: '.'
292
350
  minor_unit: 2
293
351
  currency: Pula
294
352
  symbol: P
295
353
  HNL:
296
- format: ! '#,###.##'
354
+ separators:
355
+ major: ','
356
+ minor: '.'
297
357
  minor_unit: 2
298
358
  currency: Lempira
299
359
  symbol: L
300
360
  EUR:
301
- format: ! '#,###.##'
361
+ separators:
362
+ major: ','
363
+ minor: '.'
302
364
  minor_unit: 2
303
365
  currency: Euro
304
366
  symbol: €
305
367
  EGP:
306
- format: ! '#,###.##'
368
+ separators:
369
+ major: ','
370
+ minor: '.'
307
371
  minor_unit: 2
308
372
  currency: Egyptian Pound
309
373
  symbol: £
310
374
  CHF:
311
- format: ! '#''###.##'
375
+ separators:
376
+ major: "'"
377
+ minor: '.'
312
378
  minor_unit: 2
313
379
  currency: Swiss Franc
314
- symbol: CHF
315
380
  ILS:
316
- format: ! '#,###.##'
381
+ separators:
382
+ major: ','
383
+ minor: '.'
317
384
  minor_unit: 2
318
385
  currency: New Israeli Sheqel
319
386
  symbol: ₪
@@ -322,12 +389,16 @@ PYG:
322
389
  currency: Guarani
323
390
  symbol: Gs
324
391
  LBP:
325
- format: ! '# ###'
392
+ separators:
393
+ major: ' '
394
+ minor: '.'
326
395
  minor_unit: 2
327
396
  currency: Lebanese Pound
328
397
  symbol: £
329
398
  ANG:
330
- format: ! '#.###,##'
399
+ separators:
400
+ major: '.'
401
+ minor: ','
331
402
  minor_unit: 2
332
403
  currency: Netherlands Antillean Guilder
333
404
  symbol: ƒ
@@ -344,7 +415,9 @@ WST:
344
415
  currency: Tala
345
416
  symbol:
346
417
  NPR:
347
- format: ! '#,###.##'
418
+ separators:
419
+ major: ','
420
+ minor: '.'
348
421
  minor_unit: 2
349
422
  currency: Nepalese Rupee
350
423
  symbol: ₨
@@ -353,12 +426,16 @@ KMF:
353
426
  currency: Comoro Franc
354
427
  symbol:
355
428
  THB:
356
- format: ! '#,###.##'
429
+ separators:
430
+ major: ','
431
+ minor: '.'
357
432
  minor_unit: 2
358
433
  currency: Baht
359
434
  symbol: ฿
360
435
  IRR:
361
- format: ! '#,###.##'
436
+ separators:
437
+ major: ','
438
+ minor: '.'
362
439
  minor_unit: 2
363
440
  currency: Iranian Rial
364
441
  symbol: ﷼
@@ -367,17 +444,22 @@ SRD:
367
444
  currency: Surinam Dollar
368
445
  symbol: $
369
446
  JPY:
370
- format: ! '#,###'
447
+ separators:
448
+ major: ','
371
449
  minor_unit: 0
372
450
  currency: Yen
373
451
  symbol: ¥
374
452
  BRL:
375
- format: ! '#.###,##'
453
+ separators:
454
+ major: '.'
455
+ minor: ','
376
456
  minor_unit: 2
377
457
  currency: Brazilian Real
378
458
  symbol: R$
379
459
  UYU:
380
- format: ! '#.###,##'
460
+ separators:
461
+ major: '.'
462
+ minor: ','
381
463
  minor_unit: 2
382
464
  currency: Peso Uruguayo
383
465
  symbol: $U
@@ -386,12 +468,16 @@ MOP:
386
468
  currency: Pataca
387
469
  symbol:
388
470
  BMD:
389
- format: ! '#,###.##'
471
+ separators:
472
+ major: ','
473
+ minor: '.'
390
474
  minor_unit: 2
391
475
  currency: Bermudian Dollar
392
476
  symbol: $
393
477
  SZL:
394
- format: ! '#, ###.##'
478
+ separators:
479
+ major: ', '
480
+ minor: '.'
395
481
  minor_unit: 2
396
482
  currency: Lilangeni
397
483
  symbol:
@@ -400,12 +486,16 @@ ETB:
400
486
  currency: Ethiopian Birr
401
487
  symbol:
402
488
  JOD:
403
- format: ! '#,###.###'
489
+ separators:
490
+ major: ','
491
+ minor: '.'
404
492
  minor_unit: 3
405
493
  currency: Jordanian Dinar
406
494
  symbol:
407
495
  IDR:
408
- format: ! '#.###,##'
496
+ separators:
497
+ major: '.'
498
+ minor: ','
409
499
  minor_unit: 2
410
500
  currency: Rupiah
411
501
  symbol: Rp
@@ -426,22 +516,30 @@ YER:
426
516
  currency: Yemeni Rial
427
517
  symbol: ﷼
428
518
  BAM:
429
- format: ! '#,###.##'
519
+ separators:
520
+ major: ','
521
+ minor: '.'
430
522
  minor_unit: 2
431
523
  currency: Convertible Mark
432
524
  symbol: KM
433
525
  AWG:
434
- format: ! '#,###.##'
526
+ separators:
527
+ major: ','
528
+ minor: '.'
435
529
  minor_unit: 2
436
530
  currency: Aruban Florin
437
531
  symbol: ƒ
438
532
  NZD:
439
- format: ! '#,###.##'
533
+ separators:
534
+ major: ','
535
+ minor: '.'
440
536
  minor_unit: 2
441
537
  currency: New Zealand Dollar
442
538
  symbol: $
443
539
  PEN:
444
- format: ! '#,###.##'
540
+ separators:
541
+ major: ','
542
+ minor: '.'
445
543
  minor_unit: 2
446
544
  currency: Nuevo Sol
447
545
  symbol: S/.
@@ -450,7 +548,9 @@ AOA:
450
548
  currency: Kwanza
451
549
  symbol:
452
550
  KYD:
453
- format: ! '#,###.##'
551
+ separators:
552
+ major: ','
553
+ minor: '.'
454
554
  minor_unit: 2
455
555
  currency: Cayman Islands Dollar
456
556
  symbol: $
@@ -459,12 +559,16 @@ SLL:
459
559
  currency: Leone
460
560
  symbol:
461
561
  TRY:
462
- format: ! '#,###.##'
562
+ separators:
563
+ major: ','
564
+ minor: '.'
463
565
  minor_unit: 2
464
566
  currency: Turkish Lira
465
567
  symbol: ''
466
568
  VEF:
467
- format: ! '#.###,##'
569
+ separators:
570
+ major: '.'
571
+ minor: ','
468
572
  minor_unit: 2
469
573
  currency: Bolivar Fuerte
470
574
  symbol: Bs
@@ -478,7 +582,9 @@ GNF:
478
582
  currency: Guinea Franc
479
583
  symbol:
480
584
  BSD:
481
- format: ! '#,###.##'
585
+ separators:
586
+ major: ','
587
+ minor: '.'
482
588
  minor_unit: 2
483
589
  currency: Bahamian Dollar
484
590
  symbol: $
@@ -487,17 +593,23 @@ DJF:
487
593
  currency: Djibouti Franc
488
594
  symbol:
489
595
  HUF:
490
- format: ! '#.###'
596
+ separators:
597
+ major: '.'
598
+ minor: '.'
491
599
  minor_unit: 2
492
600
  currency: Forint
493
601
  symbol: Ft
494
602
  LTL:
495
- format: ! '# ###,##'
603
+ separators:
604
+ major: ' '
605
+ minor: ','
496
606
  minor_unit: 2
497
607
  currency: Lithuanian Litas
498
608
  symbol: Lt
499
609
  MXN:
500
- format: ! '#,###.##'
610
+ separators:
611
+ major: ','
612
+ minor: '.'
501
613
  minor_unit: 2
502
614
  currency: Mexican Peso
503
615
  symbol: $
@@ -506,7 +618,9 @@ SCR:
506
618
  currency: Seychelles Rupee
507
619
  symbol: ₨
508
620
  SGD:
509
- format: ! '#,###.##'
621
+ separators:
622
+ major: ','
623
+ minor: '.'
510
624
  minor_unit: 2
511
625
  currency: Singapore Dollar
512
626
  symbol: $
@@ -523,7 +637,9 @@ TND:
523
637
  currency: Tunisian Dinar
524
638
  symbol:
525
639
  DOP:
526
- format: ! '#,###.##'
640
+ separators:
641
+ major: ','
642
+ minor: '.'
527
643
  minor_unit: 2
528
644
  currency: Dominican Peso
529
645
  symbol: RD$
@@ -540,7 +656,8 @@ SDG:
540
656
  currency: Sudanese Pound
541
657
  symbol:
542
658
  VUV:
543
- format: ! '#,###'
659
+ separators:
660
+ major: ','
544
661
  minor_unit: 0
545
662
  currency: Vatu
546
663
  symbol:
@@ -553,7 +670,8 @@ LRD:
553
670
  currency: Liberian Dollar
554
671
  symbol: $
555
672
  KRW:
556
- format: ! '#,###'
673
+ separators:
674
+ major: ','
557
675
  minor_unit: 0
558
676
  currency: Won
559
677
  symbol: ₩
@@ -562,17 +680,23 @@ MMK:
562
680
  currency: Kyat
563
681
  symbol:
564
682
  MUR:
565
- format: ! '#,###'
683
+ separators:
684
+ major: ','
685
+ minor: '.'
566
686
  minor_unit: 2
567
687
  currency: Mauritius Rupee
568
688
  symbol: ₨
569
689
  PHP:
570
- format: ! '#,###.##'
690
+ separators:
691
+ major: ','
692
+ minor: '.'
571
693
  minor_unit: 2
572
694
  currency: Philippine Peso
573
695
  symbol: ₱
574
696
  ZAR:
575
- format: ! '# ###.##'
697
+ separators:
698
+ major: ' '
699
+ minor: '.'
576
700
  minor_unit: 2
577
701
  currency: Rand
578
702
  symbol: R
@@ -581,7 +705,9 @@ KGS:
581
705
  currency: Som
582
706
  symbol: лв
583
707
  GBP:
584
- format: ! '#,###.##'
708
+ separators:
709
+ major: ','
710
+ minor: '.'
585
711
  minor_unit: 2
586
712
  currency: Pound Sterling
587
713
  symbol: £
@@ -598,12 +724,15 @@ TMT:
598
724
  currency: Turkmenistan New Manat
599
725
  symbol:
600
726
  UAH:
601
- format: ! '# ###,##'
727
+ separators:
728
+ major: ' '
729
+ minor: ','
602
730
  minor_unit: 2
603
731
  currency: Hryvnia
604
732
  symbol: ₴
605
733
  VND:
606
- format: ! '#.###'
734
+ separators:
735
+ major: '.'
607
736
  minor_unit: 0
608
737
  currency: Dong
609
738
  symbol: ₫
@@ -616,7 +745,9 @@ BOV:
616
745
  currency: Mvdol
617
746
  symbol:
618
747
  HRK:
619
- format: ! '#.###,##'
748
+ separators:
749
+ major: '.'
750
+ minor: ','
620
751
  minor_unit: 2
621
752
  currency: Croatian Kuna
622
753
  symbol: kn
@@ -625,7 +756,9 @@ TTD:
625
756
  currency: Trinidad and Tobago Dollar
626
757
  symbol: TT$
627
758
  BHD:
628
- format: ! '#,###.###'
759
+ separators:
760
+ major: ','
761
+ minor: '.'
629
762
  minor_unit: 3
630
763
  currency: Bahraini Dinar
631
764
  symbol:
@@ -638,22 +771,30 @@ RWF:
638
771
  currency: Rwanda Franc
639
772
  symbol:
640
773
  MKD:
641
- format: ! '#,###.##'
774
+ separators:
775
+ major: ','
776
+ minor: '.'
642
777
  minor_unit: 2
643
778
  currency: Denar
644
779
  symbol: ден
645
780
  AUD:
646
- format: ! '# ###.##'
781
+ separators:
782
+ major: ' '
783
+ minor: '.'
647
784
  minor_unit: 2
648
785
  currency: Australian Dollar
649
786
  symbol: $
650
787
  CRC:
651
- format: ! '#.###,##'
788
+ separators:
789
+ major: '.'
790
+ minor: ','
652
791
  minor_unit: 2
653
792
  currency: Costa Rican Colon
654
793
  symbol: ₡
655
794
  PKR:
656
- format: ! '#,###.##'
795
+ separators:
796
+ major: ','
797
+ minor: '.'
657
798
  minor_unit: 2
658
799
  currency: Pakistan Rupee
659
800
  symbol: ₨
@@ -666,7 +807,9 @@ UZS:
666
807
  currency: Uzbekistan Sum
667
808
  symbol: лв
668
809
  CZK:
669
- format: ! '#.###,##'
810
+ separators:
811
+ major: '.'
812
+ minor: ','
670
813
  minor_unit: 2
671
814
  currency: Czech Koruna
672
815
  symbol: Kč
@@ -675,7 +818,9 @@ AZN:
675
818
  currency: Azerbaijanian Manat
676
819
  symbol: ман
677
820
  BDT:
678
- format: ! '#,###.##'
821
+ separators:
822
+ major: ','
823
+ minor: '.'
679
824
  minor_unit: 2
680
825
  currency: Taka
681
826
  symbol:
@@ -692,7 +837,9 @@ MXV:
692
837
  currency: Mexican Unidad de Inversion (UDI)
693
838
  symbol:
694
839
  CUC:
695
- format: ! '#,###.##'
840
+ separators:
841
+ major: ','
842
+ minor: '.'
696
843
  minor_unit: 2
697
844
  currency: Peso Convertible
698
845
  symbol:
@@ -713,17 +860,23 @@ CHW:
713
860
  currency: WIR Franc
714
861
  symbol:
715
862
  CAD:
716
- format: ! '#,###.##'
863
+ separators:
864
+ major: ','
865
+ minor: '.'
717
866
  minor_unit: 2
718
867
  currency: Canadian Dollar
719
868
  symbol: $
720
869
  JMD:
721
- format: ! '#,###.##'
870
+ separators:
871
+ major: ','
872
+ minor: '.'
722
873
  minor_unit: 2
723
874
  currency: Jamaican Dollar
724
875
  symbol: J$
725
876
  BND:
726
- format: ! '#,###.##'
877
+ separators:
878
+ major: ','
879
+ minor: '.'
727
880
  minor_unit: 2
728
881
  currency: Brunei Dollar
729
882
  symbol: $
@@ -732,7 +885,9 @@ ALL:
732
885
  currency: Lek
733
886
  symbol: Lek
734
887
  SVC:
735
- format: ! '#,###.##'
888
+ separators:
889
+ major: ','
890
+ minor: '.'
736
891
  minor_unit: 2
737
892
  currency: El Salvador Colon
738
893
  symbol: $
@@ -745,7 +900,9 @@ GHS:
745
900
  currency: Ghana Cedi
746
901
  symbol:
747
902
  KWD:
748
- format: ! '#,###.###'
903
+ separators:
904
+ major: ','
905
+ minor: '.'
749
906
  minor_unit: 3
750
907
  currency: Kuwaiti Dinar
751
908
  symbol: