maguire 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +21 -0
- data/README.md +59 -0
- data/iso_data/seed_layer/aed.json +9 -0
- data/iso_data/seed_layer/afn.json +9 -0
- data/iso_data/seed_layer/all.json +9 -0
- data/iso_data/seed_layer/amd.json +9 -0
- data/iso_data/seed_layer/ang.json +10 -0
- data/iso_data/seed_layer/aoa.json +9 -0
- data/iso_data/seed_layer/ars.json +9 -0
- data/iso_data/seed_layer/aud.json +16 -0
- data/iso_data/seed_layer/awg.json +9 -0
- data/iso_data/seed_layer/azn.json +9 -0
- data/iso_data/seed_layer/bam.json +9 -0
- data/iso_data/seed_layer/bbd.json +9 -0
- data/iso_data/seed_layer/bdt.json +9 -0
- data/iso_data/seed_layer/bgn.json +9 -0
- data/iso_data/seed_layer/bhd.json +9 -0
- data/iso_data/seed_layer/bif.json +9 -0
- data/iso_data/seed_layer/bmd.json +9 -0
- data/iso_data/seed_layer/bnd.json +9 -0
- data/iso_data/seed_layer/bob.json +9 -0
- data/iso_data/seed_layer/bov.json +9 -0
- data/iso_data/seed_layer/brl.json +9 -0
- data/iso_data/seed_layer/bsd.json +9 -0
- data/iso_data/seed_layer/btn.json +9 -0
- data/iso_data/seed_layer/bwp.json +9 -0
- data/iso_data/seed_layer/byr.json +9 -0
- data/iso_data/seed_layer/bzd.json +9 -0
- data/iso_data/seed_layer/cad.json +9 -0
- data/iso_data/seed_layer/cdf.json +9 -0
- data/iso_data/seed_layer/che.json +9 -0
- data/iso_data/seed_layer/chf.json +10 -0
- data/iso_data/seed_layer/chw.json +9 -0
- data/iso_data/seed_layer/clf.json +9 -0
- data/iso_data/seed_layer/clp.json +9 -0
- data/iso_data/seed_layer/cny.json +9 -0
- data/iso_data/seed_layer/cop.json +9 -0
- data/iso_data/seed_layer/cou.json +9 -0
- data/iso_data/seed_layer/crc.json +9 -0
- data/iso_data/seed_layer/cuc.json +9 -0
- data/iso_data/seed_layer/cup.json +9 -0
- data/iso_data/seed_layer/cve.json +9 -0
- data/iso_data/seed_layer/czk.json +9 -0
- data/iso_data/seed_layer/djf.json +9 -0
- data/iso_data/seed_layer/dkk.json +11 -0
- data/iso_data/seed_layer/dop.json +9 -0
- data/iso_data/seed_layer/dzd.json +9 -0
- data/iso_data/seed_layer/egp.json +9 -0
- data/iso_data/seed_layer/ern.json +9 -0
- data/iso_data/seed_layer/etb.json +9 -0
- data/iso_data/seed_layer/eur.json +42 -0
- data/iso_data/seed_layer/fjd.json +9 -0
- data/iso_data/seed_layer/fkp.json +9 -0
- data/iso_data/seed_layer/gbp.json +12 -0
- data/iso_data/seed_layer/gel.json +9 -0
- data/iso_data/seed_layer/ghs.json +9 -0
- data/iso_data/seed_layer/gip.json +9 -0
- data/iso_data/seed_layer/gmd.json +9 -0
- data/iso_data/seed_layer/gnf.json +9 -0
- data/iso_data/seed_layer/gtq.json +9 -0
- data/iso_data/seed_layer/gyd.json +9 -0
- data/iso_data/seed_layer/hkd.json +9 -0
- data/iso_data/seed_layer/hnl.json +9 -0
- data/iso_data/seed_layer/hrk.json +9 -0
- data/iso_data/seed_layer/htg.json +9 -0
- data/iso_data/seed_layer/huf.json +9 -0
- data/iso_data/seed_layer/idr.json +9 -0
- data/iso_data/seed_layer/ils.json +9 -0
- data/iso_data/seed_layer/inr.json +10 -0
- data/iso_data/seed_layer/iqd.json +9 -0
- data/iso_data/seed_layer/irr.json +9 -0
- data/iso_data/seed_layer/isk.json +9 -0
- data/iso_data/seed_layer/jmd.json +9 -0
- data/iso_data/seed_layer/jod.json +9 -0
- data/iso_data/seed_layer/jpy.json +9 -0
- data/iso_data/seed_layer/kes.json +9 -0
- data/iso_data/seed_layer/kgs.json +9 -0
- data/iso_data/seed_layer/khr.json +9 -0
- data/iso_data/seed_layer/kmf.json +9 -0
- data/iso_data/seed_layer/kpw.json +9 -0
- data/iso_data/seed_layer/krw.json +9 -0
- data/iso_data/seed_layer/kwd.json +9 -0
- data/iso_data/seed_layer/kyd.json +9 -0
- data/iso_data/seed_layer/kzt.json +9 -0
- data/iso_data/seed_layer/lak.json +9 -0
- data/iso_data/seed_layer/lbp.json +9 -0
- data/iso_data/seed_layer/lkr.json +9 -0
- data/iso_data/seed_layer/lrd.json +9 -0
- data/iso_data/seed_layer/lsl.json +9 -0
- data/iso_data/seed_layer/ltl.json +9 -0
- data/iso_data/seed_layer/lyd.json +9 -0
- data/iso_data/seed_layer/mad.json +10 -0
- data/iso_data/seed_layer/mdl.json +9 -0
- data/iso_data/seed_layer/mga.json +9 -0
- data/iso_data/seed_layer/mkd.json +9 -0
- data/iso_data/seed_layer/mmk.json +9 -0
- data/iso_data/seed_layer/mnt.json +9 -0
- data/iso_data/seed_layer/mop.json +9 -0
- data/iso_data/seed_layer/mro.json +9 -0
- data/iso_data/seed_layer/mur.json +9 -0
- data/iso_data/seed_layer/mvr.json +9 -0
- data/iso_data/seed_layer/mwk.json +9 -0
- data/iso_data/seed_layer/mxn.json +9 -0
- data/iso_data/seed_layer/mxv.json +9 -0
- data/iso_data/seed_layer/myr.json +9 -0
- data/iso_data/seed_layer/mzn.json +9 -0
- data/iso_data/seed_layer/nad.json +9 -0
- data/iso_data/seed_layer/ngn.json +9 -0
- data/iso_data/seed_layer/nio.json +9 -0
- data/iso_data/seed_layer/nok.json +11 -0
- data/iso_data/seed_layer/npr.json +9 -0
- data/iso_data/seed_layer/nzd.json +13 -0
- data/iso_data/seed_layer/omr.json +9 -0
- data/iso_data/seed_layer/pab.json +9 -0
- data/iso_data/seed_layer/pen.json +9 -0
- data/iso_data/seed_layer/pgk.json +9 -0
- data/iso_data/seed_layer/php.json +9 -0
- data/iso_data/seed_layer/pkr.json +9 -0
- data/iso_data/seed_layer/pln.json +9 -0
- data/iso_data/seed_layer/pyg.json +9 -0
- data/iso_data/seed_layer/qar.json +9 -0
- data/iso_data/seed_layer/ron.json +9 -0
- data/iso_data/seed_layer/rsd.json +9 -0
- data/iso_data/seed_layer/rub.json +9 -0
- data/iso_data/seed_layer/rwf.json +9 -0
- data/iso_data/seed_layer/sar.json +9 -0
- data/iso_data/seed_layer/sbd.json +9 -0
- data/iso_data/seed_layer/scr.json +9 -0
- data/iso_data/seed_layer/sdg.json +9 -0
- data/iso_data/seed_layer/sek.json +9 -0
- data/iso_data/seed_layer/sgd.json +9 -0
- data/iso_data/seed_layer/shp.json +9 -0
- data/iso_data/seed_layer/sll.json +9 -0
- data/iso_data/seed_layer/sos.json +9 -0
- data/iso_data/seed_layer/srd.json +9 -0
- data/iso_data/seed_layer/ssp.json +9 -0
- data/iso_data/seed_layer/std.json +9 -0
- data/iso_data/seed_layer/svc.json +9 -0
- data/iso_data/seed_layer/syp.json +9 -0
- data/iso_data/seed_layer/szl.json +9 -0
- data/iso_data/seed_layer/thb.json +9 -0
- data/iso_data/seed_layer/tjs.json +9 -0
- data/iso_data/seed_layer/tmt.json +9 -0
- data/iso_data/seed_layer/tnd.json +9 -0
- data/iso_data/seed_layer/top.json +9 -0
- data/iso_data/seed_layer/try.json +9 -0
- data/iso_data/seed_layer/ttd.json +9 -0
- data/iso_data/seed_layer/twd.json +9 -0
- data/iso_data/seed_layer/tzs.json +9 -0
- data/iso_data/seed_layer/uah.json +9 -0
- data/iso_data/seed_layer/ugx.json +9 -0
- data/iso_data/seed_layer/usd.json +27 -0
- data/iso_data/seed_layer/usn.json +9 -0
- data/iso_data/seed_layer/uyi.json +9 -0
- data/iso_data/seed_layer/uyu.json +9 -0
- data/iso_data/seed_layer/uzs.json +9 -0
- data/iso_data/seed_layer/vef.json +9 -0
- data/iso_data/seed_layer/vnd.json +9 -0
- data/iso_data/seed_layer/vuv.json +9 -0
- data/iso_data/seed_layer/wst.json +9 -0
- data/iso_data/seed_layer/xaf.json +14 -0
- data/iso_data/seed_layer/xag.json +9 -0
- data/iso_data/seed_layer/xau.json +9 -0
- data/iso_data/seed_layer/xba.json +9 -0
- data/iso_data/seed_layer/xbb.json +9 -0
- data/iso_data/seed_layer/xbc.json +9 -0
- data/iso_data/seed_layer/xbd.json +9 -0
- data/iso_data/seed_layer/xcd.json +16 -0
- data/iso_data/seed_layer/xdr.json +9 -0
- data/iso_data/seed_layer/xof.json +16 -0
- data/iso_data/seed_layer/xpd.json +9 -0
- data/iso_data/seed_layer/xpf.json +11 -0
- data/iso_data/seed_layer/xpt.json +9 -0
- data/iso_data/seed_layer/xsu.json +9 -0
- data/iso_data/seed_layer/xts.json +9 -0
- data/iso_data/seed_layer/xua.json +9 -0
- data/iso_data/seed_layer/xxx.json +9 -0
- data/iso_data/seed_layer/yer.json +9 -0
- data/iso_data/seed_layer/zar.json +11 -0
- data/iso_data/seed_layer/zmw.json +9 -0
- data/iso_data/seed_layer/zwl.json +9 -0
- data/iso_data/symbol_layer/aud.json +3 -0
- data/iso_data/symbol_layer/aud.json~ +17 -0
- data/iso_data/symbol_layer/cad.json +3 -0
- data/iso_data/symbol_layer/cad.json~ +10 -0
- data/iso_data/symbol_layer/chf.json +3 -0
- data/iso_data/symbol_layer/chf.json~ +11 -0
- data/iso_data/symbol_layer/cny.json +4 -0
- data/iso_data/symbol_layer/cny.json~ +11 -0
- data/iso_data/symbol_layer/dkk.json +3 -0
- data/iso_data/symbol_layer/dkk.json~ +12 -0
- data/iso_data/symbol_layer/eur.json +4 -0
- data/iso_data/symbol_layer/eur.json~ +44 -0
- data/iso_data/symbol_layer/gbp.json +4 -0
- data/iso_data/symbol_layer/gbp.json~ +14 -0
- data/iso_data/symbol_layer/hkd.json +3 -0
- data/iso_data/symbol_layer/hkd.json~ +10 -0
- data/iso_data/symbol_layer/ils.json +4 -0
- data/iso_data/symbol_layer/ils.json~ +11 -0
- data/iso_data/symbol_layer/inr.json +4 -0
- data/iso_data/symbol_layer/inr.json~ +12 -0
- data/iso_data/symbol_layer/jpy.json +4 -0
- data/iso_data/symbol_layer/jpy.json~ +11 -0
- data/iso_data/symbol_layer/khr.json +4 -0
- data/iso_data/symbol_layer/khr.json~ +11 -0
- data/iso_data/symbol_layer/kpw.json +4 -0
- data/iso_data/symbol_layer/kpw.json~ +11 -0
- data/iso_data/symbol_layer/krw.json +4 -0
- data/iso_data/symbol_layer/krw.json~ +11 -0
- data/iso_data/symbol_layer/lkr.json +4 -0
- data/iso_data/symbol_layer/lkr.json~ +11 -0
- data/iso_data/symbol_layer/mur.json +4 -0
- data/iso_data/symbol_layer/mur.json~ +11 -0
- data/iso_data/symbol_layer/mxn.json +3 -0
- data/iso_data/symbol_layer/mxn.json~ +10 -0
- data/iso_data/symbol_layer/ngn.json +4 -0
- data/iso_data/symbol_layer/ngn.json~ +11 -0
- data/iso_data/symbol_layer/nok.json +3 -0
- data/iso_data/symbol_layer/nok.json~ +12 -0
- data/iso_data/symbol_layer/npr.json +4 -0
- data/iso_data/symbol_layer/npr.json~ +11 -0
- data/iso_data/symbol_layer/php.json +4 -0
- data/iso_data/symbol_layer/php.json~ +11 -0
- data/iso_data/symbol_layer/pkr.json +4 -0
- data/iso_data/symbol_layer/pkr.json~ +11 -0
- data/iso_data/symbol_layer/rub.json +4 -0
- data/iso_data/symbol_layer/rub.json~ +11 -0
- data/iso_data/symbol_layer/scr.json +3 -0
- data/iso_data/symbol_layer/scr.json~ +10 -0
- data/iso_data/symbol_layer/sek.json +3 -0
- data/iso_data/symbol_layer/sek.json~ +10 -0
- data/iso_data/symbol_layer/thb.json +4 -0
- data/iso_data/symbol_layer/thb.json~ +11 -0
- data/iso_data/symbol_layer/try.json +4 -0
- data/iso_data/symbol_layer/try.json~ +11 -0
- data/iso_data/symbol_layer/uah.json +4 -0
- data/iso_data/symbol_layer/uah.json~ +11 -0
- data/iso_data/symbol_layer/usd.json +3 -0
- data/iso_data/symbol_layer/usd.json~ +28 -0
- data/iso_data/symbol_layer/vnd.json +4 -0
- data/iso_data/symbol_layer/vnd.json~ +11 -0
- data/iso_data/symbol_layer/zar.json +3 -0
- data/iso_data/symbol_layer/zar.json~ +12 -0
- data/lib/maguire/currency.rb +29 -0
- data/lib/maguire/data_set.rb +61 -0
- data/lib/maguire/hash.rb +13 -0
- data/lib/maguire/locale.rb +165 -0
- data/lib/maguire/version.rb +3 -0
- data/lib/maguire.rb +47 -0
- data/locale/en_CA.json~ +26 -0
- data/locale/en_US.json +26 -0
- data/locale/en_US.json~ +50 -0
- metadata +360 -0
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2014 Paddle8
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
# Maguire [![Build Status](https://next.travis-ci.org/paddle8/maguire.svg)](https://next.travis-ci.org/paddle8/maguire) [![Code Climate](https://codeclimate.com/github/paddle8/maguire.png)](https://codeclimate.com/github/paddle8/maguire) [![Code Climate](https://codeclimate.com/github/paddle8/maguire/coverage.png)](https://codeclimate.com/github/paddle8/maguire)
|
2
|
+
|
3
|
+
Maguire handles formatting currencies in various locales with capabilities to layer custom data sets on top.
|
4
|
+
|
5
|
+
## Adding your own locales
|
6
|
+
|
7
|
+
To add your own locale information, point Maguire to the directory in your project where the locale files will be:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
Maguire.locale_paths << "path/to/my/locales"
|
11
|
+
```
|
12
|
+
|
13
|
+
If you're adding a customization for French-speaking Canadians, the JSON file should be named `fr_CA.json`.
|
14
|
+
|
15
|
+
The file should *at least* have a layouts hash for providing information on how to format the currencies. The layout format should always be in US Dollars (using the code `USD`, and symbol `$`) and use the monetary value of `1234567890.12`.
|
16
|
+
|
17
|
+
So a layout for use in Quebec might be:
|
18
|
+
|
19
|
+
```json
|
20
|
+
{
|
21
|
+
"layouts": {
|
22
|
+
"positive": "1.234.567.890,12 $",
|
23
|
+
"negative": "-1.234.567.890,12"
|
24
|
+
}
|
25
|
+
}
|
26
|
+
```
|
27
|
+
|
28
|
+
Note: positive and negative layouts must be provided.
|
29
|
+
|
30
|
+
## Adding your own currencies
|
31
|
+
|
32
|
+
Adding your own custom currencies works just like adding your own locales; point Maguire to the directory where your currency files are:
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
Maguire.data_paths << "path/to/my/currencies"
|
36
|
+
```
|
37
|
+
|
38
|
+
If you're adding Bitcoin to your project, the JSON file should be named `BTC`. (This corresponds to the lookup code used by the currency parameter passed into the `format` method.)
|
39
|
+
|
40
|
+
Currency files are required to have a `"symbol"` (and `"symbol_html"` if needed), `"code"`, and `"minor_units"` values. (`"minor_units"` says how many minor units make up a major unit in the currency. If there is no minor unit, this should be 0.)
|
41
|
+
|
42
|
+
A file for the Bitcoin currency would look like:
|
43
|
+
|
44
|
+
```json
|
45
|
+
{
|
46
|
+
"name": "Bitcoin",
|
47
|
+
"code": "BTC",
|
48
|
+
"symbol": "฿",
|
49
|
+
"symbol_html": "฿",
|
50
|
+
"minor_units": 0
|
51
|
+
}
|
52
|
+
```
|
53
|
+
|
54
|
+
After doing this, you can format your Bitcoins:
|
55
|
+
|
56
|
+
```ruby
|
57
|
+
Maguire.format({ value: 400_000, currency: "BTC" })
|
58
|
+
# ฿400,000
|
59
|
+
```
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{
|
2
|
+
"name": "Australian Dollar",
|
3
|
+
"code": "AUD",
|
4
|
+
"number": "036",
|
5
|
+
"minor_units": 2,
|
6
|
+
"countries": [
|
7
|
+
"AUSTRALIA",
|
8
|
+
"CHRISTMAS ISLAND",
|
9
|
+
"COCOS (KEELING) ISLANDS",
|
10
|
+
"HEARD ISLAND AND McDONALD ISLANDS",
|
11
|
+
"KIRIBATI",
|
12
|
+
"NAURU",
|
13
|
+
"NORFOLK ISLAND",
|
14
|
+
"TUVALU"
|
15
|
+
]
|
16
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
{
|
2
|
+
"name": "Euro",
|
3
|
+
"code": "EUR",
|
4
|
+
"number": "978",
|
5
|
+
"minor_units": 2,
|
6
|
+
"countries": [
|
7
|
+
"ÅLAND ISLANDS",
|
8
|
+
"ANDORRA",
|
9
|
+
"AUSTRIA",
|
10
|
+
"BELGIUM",
|
11
|
+
"CYPRUS",
|
12
|
+
"ESTONIA",
|
13
|
+
"EUROPEAN UNION",
|
14
|
+
"FINLAND",
|
15
|
+
"FRANCE",
|
16
|
+
"FRENCH GUIANA",
|
17
|
+
"FRENCH SOUTHERN TERRITORIES",
|
18
|
+
"GERMANY",
|
19
|
+
"GREECE",
|
20
|
+
"GUADELOUPE",
|
21
|
+
"HOLY SEE (VATICAN CITY STATE)",
|
22
|
+
"IRELAND",
|
23
|
+
"ITALY",
|
24
|
+
"LATVIA",
|
25
|
+
"LUXEMBOURG",
|
26
|
+
"MALTA",
|
27
|
+
"MARTINIQUE",
|
28
|
+
"MAYOTTE",
|
29
|
+
"MONACO",
|
30
|
+
"MONTENEGRO",
|
31
|
+
"NETHERLANDS",
|
32
|
+
"PORTUGAL",
|
33
|
+
"RÉUNION",
|
34
|
+
"SAINT BARTHÉLEMY",
|
35
|
+
"SAINT MARTIN (FRENCH PART)",
|
36
|
+
"SAINT PIERRE AND MIQUELON",
|
37
|
+
"SAN MARINO",
|
38
|
+
"SLOVAKIA",
|
39
|
+
"SLOVENIA",
|
40
|
+
"SPAIN"
|
41
|
+
]
|
42
|
+
}
|