exchange 0.2.6
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/.document +5 -0
- data/.rspec +2 -0
- data/.travis.yml +6 -0
- data/Gemfile +17 -0
- data/Gemfile.lock +41 -0
- data/LICENSE.txt +20 -0
- data/README.rdoc +262 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/exchange.gemspec +102 -0
- data/lib/core_extensions/conversability.rb +32 -0
- data/lib/exchange.rb +11 -0
- data/lib/exchange/cache.rb +4 -0
- data/lib/exchange/cache/base.rb +51 -0
- data/lib/exchange/cache/memcached.rb +52 -0
- data/lib/exchange/cache/rails.rb +45 -0
- data/lib/exchange/cache/redis.rb +54 -0
- data/lib/exchange/configuration.rb +72 -0
- data/lib/exchange/currency.rb +237 -0
- data/lib/exchange/external_api.rb +4 -0
- data/lib/exchange/external_api/base.rb +114 -0
- data/lib/exchange/external_api/call.rb +76 -0
- data/lib/exchange/external_api/currency_bot.rb +47 -0
- data/lib/exchange/external_api/xavier_media.rb +47 -0
- data/spec/core_extensions/conversability_spec.rb +64 -0
- data/spec/exchange/cache/base_spec.rb +29 -0
- data/spec/exchange/cache/memcached_spec.rb +72 -0
- data/spec/exchange/cache/rails_spec.rb +67 -0
- data/spec/exchange/cache/redis_spec.rb +76 -0
- data/spec/exchange/configuration_spec.rb +47 -0
- data/spec/exchange/currency_spec.rb +219 -0
- data/spec/exchange/external_api/base_spec.rb +31 -0
- data/spec/exchange/external_api/call_spec.rb +68 -0
- data/spec/exchange/external_api/currency_bot_spec.rb +61 -0
- data/spec/exchange/external_api/xavier_media_spec.rb +59 -0
- data/spec/spec_helper.rb +28 -0
- data/spec/support/api_responses/example_historic_json.json +167 -0
- data/spec/support/api_responses/example_json_api.json +167 -0
- data/spec/support/api_responses/example_xml_api.xml +156 -0
- metadata +191 -0
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Exchange::ExternalAPI::CurrencyBot" do
|
4
|
+
before(:all) do
|
5
|
+
Exchange::Configuration.cache = false
|
6
|
+
end
|
7
|
+
describe "updating rates" do
|
8
|
+
subject { Exchange::ExternalAPI::CurrencyBot.new }
|
9
|
+
before(:each) do
|
10
|
+
mock_api("https://raw.github.com/currencybot/open-exchange-rates/master/latest.json", fixture('api_responses/example_json_api.json'))
|
11
|
+
end
|
12
|
+
it "should call the api and yield a block with the result" do
|
13
|
+
subject.update
|
14
|
+
subject.base.should == 'USD'
|
15
|
+
end
|
16
|
+
it "should set a unix timestamp from the api file" do
|
17
|
+
subject.update
|
18
|
+
subject.timestamp.should == 1327748496
|
19
|
+
end
|
20
|
+
end
|
21
|
+
describe "conversion" do
|
22
|
+
subject { Exchange::ExternalAPI::CurrencyBot.new }
|
23
|
+
before(:each) do
|
24
|
+
mock_api("https://raw.github.com/currencybot/open-exchange-rates/master/latest.json", fixture('api_responses/example_json_api.json'))
|
25
|
+
end
|
26
|
+
it "should convert right" do
|
27
|
+
subject.convert(80, 'eur', 'usd').should == 105.76
|
28
|
+
end
|
29
|
+
it "should convert negative numbers right" do
|
30
|
+
subject.convert(-70, 'chf', 'usd').should == -76.71
|
31
|
+
end
|
32
|
+
it "should convert when given symbols" do
|
33
|
+
subject.convert(70, :sek, :usd).should == 10.38
|
34
|
+
end
|
35
|
+
end
|
36
|
+
describe "historic conversion" do
|
37
|
+
subject { Exchange::ExternalAPI::CurrencyBot.new }
|
38
|
+
before(:each) do
|
39
|
+
end
|
40
|
+
it "should convert and be able to use history" do
|
41
|
+
mock_api("https://raw.github.com/currencybot/open-exchange-rates/master/historical/2011-09-09.json", fixture('api_responses/example_json_api.json'))
|
42
|
+
subject.convert(70, 'eur', 'usd', :at => Time.gm(2011,9,9)).should == 92.54
|
43
|
+
end
|
44
|
+
it "should convert negative numbers right" do
|
45
|
+
mock_api("https://raw.github.com/currencybot/open-exchange-rates/master/historical/2011-09-09.json", fixture('api_responses/example_json_api.json'))
|
46
|
+
subject.convert(-70, 'chf', 'usd', :at => Time.gm(2011,9,9)).should == -76.71
|
47
|
+
end
|
48
|
+
it "should convert when given symbols" do
|
49
|
+
mock_api("https://raw.github.com/currencybot/open-exchange-rates/master/historical/2011-09-09.json", fixture('api_responses/example_json_api.json'))
|
50
|
+
subject.convert(70, :sek, :usd, :at => Time.gm(2011,9,9)).should == 10.38
|
51
|
+
end
|
52
|
+
it "should convert right when the year is the same, but the yearday is not" do
|
53
|
+
mock_api("https://raw.github.com/currencybot/open-exchange-rates/master/historical/#{Time.now.year}-0#{Time.now.month > 10 ? Time.now.month - 1 : Time.now.month + 1}-01.json", fixture('api_responses/example_json_api.json'))
|
54
|
+
subject.convert(70, :sek, :usd, :at => Time.gm(Time.now.year,Time.now.month > 9 ? Time.now.month - 1 : Time.now.month + 1,1)).should == 10.38
|
55
|
+
end
|
56
|
+
it "should convert right when the yearday is the same, but the year is not" do
|
57
|
+
mock_api("https://raw.github.com/currencybot/open-exchange-rates/master/historical/#{Time.now.year-1}-03-01.json", fixture('api_responses/example_json_api.json'))
|
58
|
+
subject.convert(70, :sek, :usd, :at => Time.gm(Time.now.year - 1,3,1)).should == 10.38
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Exchange::ExternalAPI::XavierMedia" do
|
4
|
+
before(:all) do
|
5
|
+
Exchange::Configuration.cache = false
|
6
|
+
end
|
7
|
+
describe "updating rates" do
|
8
|
+
subject { Exchange::ExternalAPI::XavierMedia.new }
|
9
|
+
before(:each) do
|
10
|
+
mock_api("http://api.finance.xaviermedia.com/api/#{Time.now.strftime("%Y/%m/%d")}.xml", fixture('api_responses/example_xml_api.xml'))
|
11
|
+
end
|
12
|
+
it "should call the api and yield a block with the result" do
|
13
|
+
subject.update
|
14
|
+
subject.base.should == 'EUR'
|
15
|
+
end
|
16
|
+
it "should set a unix timestamp from the api file" do
|
17
|
+
subject.update
|
18
|
+
subject.timestamp.should == 1322697600
|
19
|
+
end
|
20
|
+
end
|
21
|
+
describe "conversion" do
|
22
|
+
subject { Exchange::ExternalAPI::XavierMedia.new }
|
23
|
+
before(:each) do
|
24
|
+
mock_api("http://api.finance.xaviermedia.com/api/#{Time.now.strftime("%Y/%m/%d")}.xml", fixture('api_responses/example_xml_api.xml'))
|
25
|
+
end
|
26
|
+
it "should convert right" do
|
27
|
+
subject.convert(80, 'eur', 'usd').should == 107.94
|
28
|
+
end
|
29
|
+
it "should convert negative numbers right" do
|
30
|
+
subject.convert(-70, 'chf', 'usd').should == -77.01
|
31
|
+
end
|
32
|
+
it "should convert when given symbols" do
|
33
|
+
subject.convert(70, :sek, :usd).should == 10.35
|
34
|
+
end
|
35
|
+
end
|
36
|
+
describe "historic conversion" do
|
37
|
+
subject { Exchange::ExternalAPI::XavierMedia.new }
|
38
|
+
it "should convert and be able to use history" do
|
39
|
+
mock_api("http://api.finance.xaviermedia.com/api/2011/09/09.xml", fixture('api_responses/example_xml_api.xml'))
|
40
|
+
subject.convert(70, 'eur', 'usd', :at => Time.gm(2011,9,9)).should == 94.44
|
41
|
+
end
|
42
|
+
it "should convert negative numbers right" do
|
43
|
+
mock_api("http://api.finance.xaviermedia.com/api/2011/09/09.xml", fixture('api_responses/example_xml_api.xml'))
|
44
|
+
subject.convert(-70, 'chf', 'usd', :at => Time.gm(2011,9,9)).should == -77.01
|
45
|
+
end
|
46
|
+
it "should convert when given symbols" do
|
47
|
+
mock_api("http://api.finance.xaviermedia.com/api/2011/09/09.xml", fixture('api_responses/example_xml_api.xml'))
|
48
|
+
subject.convert(70, :sek, :usd, :at => Time.gm(2011,9,9)).should == 10.35
|
49
|
+
end
|
50
|
+
it "should convert right when the year is the same, but the yearday is not" do
|
51
|
+
mock_api("http://api.finance.xaviermedia.com/api/#{Time.now.year}/0#{Time.now.month > 10 ? Time.now.month - 1 : Time.now.month + 1}/01.xml", fixture('api_responses/example_xml_api.xml'))
|
52
|
+
subject.convert(70, :sek, :usd, :at => Time.gm(Time.now.year,Time.now.month > 9 ? Time.now.month - 1 : Time.now.month + 1,1)).should == 10.35
|
53
|
+
end
|
54
|
+
it "should convert right when the yearday is the same, but the year is not" do
|
55
|
+
mock_api("http://api.finance.xaviermedia.com/api/#{Time.now.year-1}/03/01.xml", fixture('api_responses/example_xml_api.xml'))
|
56
|
+
subject.convert(70, :sek, :usd, :at => Time.gm(Time.now.year - 1,3,1)).should == 10.35
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require 'bundler'
|
6
|
+
begin
|
7
|
+
Bundler.setup(:default, :development)
|
8
|
+
rescue Bundler::BundlerError => e
|
9
|
+
$stderr.puts e.message
|
10
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
11
|
+
exit e.status_code
|
12
|
+
end
|
13
|
+
|
14
|
+
require 'shoulda'
|
15
|
+
require 'exchange'
|
16
|
+
|
17
|
+
module HelperMethods
|
18
|
+
def fixture(name)
|
19
|
+
File.read(File.dirname(__FILE__) + "/support/#{name}")
|
20
|
+
end
|
21
|
+
|
22
|
+
def mock_api(adress, response, count=1)
|
23
|
+
@uri_mock = mock('uri', :open => mock('opened_uri', :read => response))
|
24
|
+
URI.should_receive(:parse).with(adress).at_most(count).times.and_return(@uri_mock)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
RSpec.configuration.include(HelperMethods)
|
@@ -0,0 +1,167 @@
|
|
1
|
+
{
|
2
|
+
"disclaimer": "This data is collected from various providers and provided free of charge for informational purposes only, with no guarantee whatsoever of accuracy, validity, availability or fitness for any purpose; use at your own risk. Other than that - have fun, and please share/watch/fork if you think data like this should be free!",
|
3
|
+
"license": "Data collected from various providers with public-facing APIs; copyright may apply; not for resale; no warranties given.",
|
4
|
+
"timestamp": 1327748496,
|
5
|
+
"base": "USD",
|
6
|
+
"rates": {
|
7
|
+
"AED": 3.6731,
|
8
|
+
"AFN": 44.25,
|
9
|
+
"ALL": 105.029999,
|
10
|
+
"AMD": 386.630005,
|
11
|
+
"ANG": 1.79,
|
12
|
+
"AOA": 95.285004,
|
13
|
+
"ARS": 4.334,
|
14
|
+
"AUD": 0.938218,
|
15
|
+
"AWG": 1.79,
|
16
|
+
"AZN": 0.7863,
|
17
|
+
"BAM": 1.48265,
|
18
|
+
"BBD": 2,
|
19
|
+
"BDT": 84.480003,
|
20
|
+
"BGN": 1.4929,
|
21
|
+
"BHD": 0.37696,
|
22
|
+
"BIF": 1294.75,
|
23
|
+
"BMD": 1,
|
24
|
+
"BND": 1.2514,
|
25
|
+
"BOB": 6.91,
|
26
|
+
"BRL": 1.7412,
|
27
|
+
"BSD": 1,
|
28
|
+
"BTN": 49.310001,
|
29
|
+
"BWP": 7.278,
|
30
|
+
"BYR": 8350,
|
31
|
+
"BZD": 1.9485,
|
32
|
+
"CAD": 1.00275,
|
33
|
+
"CDF": 921.919495,
|
34
|
+
"CHF": 0.91355,
|
35
|
+
"CLF": 0.02164,
|
36
|
+
"CLP": 484.779999,
|
37
|
+
"CNY": 6.3182,
|
38
|
+
"COP": 1808,
|
39
|
+
"CRC": 503.149994,
|
40
|
+
"CUP": 1,
|
41
|
+
"CVE": 84.230003,
|
42
|
+
"CZK": 19.007999,
|
43
|
+
"DJF": 178.509995,
|
44
|
+
"DKK": 5.6281,
|
45
|
+
"DOP": 38.875,
|
46
|
+
"DZD": 76.019997,
|
47
|
+
"EGP": 6.04075,
|
48
|
+
"ETB": 17.35375,
|
49
|
+
"EUR": 0.766401,
|
50
|
+
"FJD": 1.7699,
|
51
|
+
"FKP": 0.6358,
|
52
|
+
"GBP": 0.635627,
|
53
|
+
"GEL": 1.66895,
|
54
|
+
"GHS": 1.6835,
|
55
|
+
"GIP": 0.63575,
|
56
|
+
"GMD": 30.549999,
|
57
|
+
"GNF": 7237.5,
|
58
|
+
"GTQ": 7.8145,
|
59
|
+
"GYD": 203.949997,
|
60
|
+
"HKD": 7.7561,
|
61
|
+
"HNL": 19.055,
|
62
|
+
"HRK": 5.72725,
|
63
|
+
"HTG": 40.349998,
|
64
|
+
"HUF": 222.050003,
|
65
|
+
"IDR": 8973,
|
66
|
+
"IEP": 0.595735,
|
67
|
+
"ILS": 3.7492,
|
68
|
+
"INR": 49.314999,
|
69
|
+
"IQD": 1165.310059,
|
70
|
+
"IRR": 11308,
|
71
|
+
"ISK": 123.040001,
|
72
|
+
"JMD": 86.25,
|
73
|
+
"JOD": 0.7083,
|
74
|
+
"JPY": 76.68,
|
75
|
+
"KES": 85.099998,
|
76
|
+
"KGS": 46.648899,
|
77
|
+
"KHR": 4189.799805,
|
78
|
+
"KMF": 372.139038,
|
79
|
+
"KPW": 900,
|
80
|
+
"KRW": 1121.02002,
|
81
|
+
"KWD": 0.27814,
|
82
|
+
"KZT": 148.425003,
|
83
|
+
"LAK": 7998.299805,
|
84
|
+
"LBP": 1505,
|
85
|
+
"LKR": 113.834999,
|
86
|
+
"LRD": 73.339996,
|
87
|
+
"LSL": 7.76,
|
88
|
+
"LTL": 2.614,
|
89
|
+
"LVL": 0.529,
|
90
|
+
"LYD": 1.2485,
|
91
|
+
"MAD": 8.4415,
|
92
|
+
"MDL": 11.785,
|
93
|
+
"MGA": 2190,
|
94
|
+
"MKD": 46.939999,
|
95
|
+
"MMK": 6.51,
|
96
|
+
"MNT": 1362.5,
|
97
|
+
"MOP": 7.98705,
|
98
|
+
"MRO": 290.130005,
|
99
|
+
"MUR": 29.5,
|
100
|
+
"MVR": 15.41,
|
101
|
+
"MWK": 165.5,
|
102
|
+
"MXN": 12.9155,
|
103
|
+
"MYR": 3.0425,
|
104
|
+
"MZN": 27.087,
|
105
|
+
"NAD": 7.756,
|
106
|
+
"NGN": 160.949997,
|
107
|
+
"NIO": 23.065001,
|
108
|
+
"NOK": 5.80155,
|
109
|
+
"NPR": 80,
|
110
|
+
"NZD": 1.212342,
|
111
|
+
"OMR": 0.3851,
|
112
|
+
"PAB": 1,
|
113
|
+
"PEN": 2.69,
|
114
|
+
"PGK": 2.0619,
|
115
|
+
"PHP": 42.849998,
|
116
|
+
"PKR": 90.150002,
|
117
|
+
"PLN": 3.1972,
|
118
|
+
"PYG": 4710,
|
119
|
+
"QAR": 3.6415,
|
120
|
+
"RON": 3.2843,
|
121
|
+
"RSD": 80.640503,
|
122
|
+
"RUB": 30.131001,
|
123
|
+
"RWF": 604.380066,
|
124
|
+
"SAR": 3.7503,
|
125
|
+
"SBD": 7.11124,
|
126
|
+
"SCR": 13.99045,
|
127
|
+
"SDG": 2.6778,
|
128
|
+
"SEK": 6.7462,
|
129
|
+
"SGD": 1.25075,
|
130
|
+
"SHP": 0.63575,
|
131
|
+
"SLL": 4407.5,
|
132
|
+
"SOS": 1627,
|
133
|
+
"SRD": 3.275,
|
134
|
+
"STD": 18602.5,
|
135
|
+
"SVC": 8.7475,
|
136
|
+
"SYP": 57.450001,
|
137
|
+
"SZL": 7.762,
|
138
|
+
"THB": 31.084999,
|
139
|
+
"TJS": 4.7581,
|
140
|
+
"TMT": 2.8425,
|
141
|
+
"TND": 1.4945,
|
142
|
+
"TOP": 1.708066,
|
143
|
+
"TRY": 1.7767,
|
144
|
+
"TTD": 6.4053,
|
145
|
+
"TWD": 29.74,
|
146
|
+
"TZS": 1595.5,
|
147
|
+
"UAH": 8.038,
|
148
|
+
"UGX": 2343.5,
|
149
|
+
"USD": 1,
|
150
|
+
"UYU": 19.52,
|
151
|
+
"UZS": 1808.170044,
|
152
|
+
"VEF": 4.2927,
|
153
|
+
"VND": 20943,
|
154
|
+
"VUV": 90.5,
|
155
|
+
"WST": 2.309777,
|
156
|
+
"XAF": 496.185364,
|
157
|
+
"XCD": 2.7,
|
158
|
+
"XDR": 0.646403,
|
159
|
+
"XOF": 497.450012,
|
160
|
+
"XPF": 90.980003,
|
161
|
+
"YER": 213.255005,
|
162
|
+
"ZAR": 7.7622,
|
163
|
+
"ZMK": 5150,
|
164
|
+
"ZWD": 0,
|
165
|
+
"ZWL": 322.355011
|
166
|
+
}
|
167
|
+
}
|
@@ -0,0 +1,167 @@
|
|
1
|
+
{
|
2
|
+
"disclaimer": "This data is collected from various providers and provided free of charge for informational purposes only, with no guarantee whatsoever of accuracy, validity, availability or fitness for any purpose; use at your own risk. Other than that - have fun, and please share/watch/fork if you think data like this should be free!",
|
3
|
+
"license": "Data collected from various providers with public-facing APIs; copyright may apply; not for resale; no warranties given.",
|
4
|
+
"timestamp": 1327748496,
|
5
|
+
"base": "USD",
|
6
|
+
"rates": {
|
7
|
+
"AED": 3.6731,
|
8
|
+
"AFN": 44.25,
|
9
|
+
"ALL": 105.029999,
|
10
|
+
"AMD": 386.630005,
|
11
|
+
"ANG": 1.79,
|
12
|
+
"AOA": 95.285004,
|
13
|
+
"ARS": 4.334,
|
14
|
+
"AUD": 0.938218,
|
15
|
+
"AWG": 1.79,
|
16
|
+
"AZN": 0.7863,
|
17
|
+
"BAM": 1.48265,
|
18
|
+
"BBD": 2,
|
19
|
+
"BDT": 84.480003,
|
20
|
+
"BGN": 1.4929,
|
21
|
+
"BHD": 0.37696,
|
22
|
+
"BIF": 1294.75,
|
23
|
+
"BMD": 1,
|
24
|
+
"BND": 1.2514,
|
25
|
+
"BOB": 6.91,
|
26
|
+
"BRL": 1.7412,
|
27
|
+
"BSD": 1,
|
28
|
+
"BTN": 49.310001,
|
29
|
+
"BWP": 7.278,
|
30
|
+
"BYR": 8350,
|
31
|
+
"BZD": 1.9485,
|
32
|
+
"CAD": 1.00275,
|
33
|
+
"CDF": 921.919495,
|
34
|
+
"CHF": 0.91255,
|
35
|
+
"CLF": 0.02164,
|
36
|
+
"CLP": 484.779999,
|
37
|
+
"CNY": 6.3182,
|
38
|
+
"COP": 1808,
|
39
|
+
"CRC": 503.149994,
|
40
|
+
"CUP": 1,
|
41
|
+
"CVE": 84.230003,
|
42
|
+
"CZK": 19.007999,
|
43
|
+
"DJF": 178.509995,
|
44
|
+
"DKK": 5.6281,
|
45
|
+
"DOP": 38.875,
|
46
|
+
"DZD": 76.019997,
|
47
|
+
"EGP": 6.04075,
|
48
|
+
"ETB": 17.35375,
|
49
|
+
"EUR": 0.756401,
|
50
|
+
"FJD": 1.7699,
|
51
|
+
"FKP": 0.6358,
|
52
|
+
"GBP": 0.635627,
|
53
|
+
"GEL": 1.66895,
|
54
|
+
"GHS": 1.6835,
|
55
|
+
"GIP": 0.63575,
|
56
|
+
"GMD": 30.549999,
|
57
|
+
"GNF": 7237.5,
|
58
|
+
"GTQ": 7.8145,
|
59
|
+
"GYD": 203.949997,
|
60
|
+
"HKD": 7.7561,
|
61
|
+
"HNL": 19.055,
|
62
|
+
"HRK": 5.72725,
|
63
|
+
"HTG": 40.349998,
|
64
|
+
"HUF": 222.050003,
|
65
|
+
"IDR": 8973,
|
66
|
+
"IEP": 0.595735,
|
67
|
+
"ILS": 3.7492,
|
68
|
+
"INR": 49.314999,
|
69
|
+
"IQD": 1165.310059,
|
70
|
+
"IRR": 11308,
|
71
|
+
"ISK": 123.040001,
|
72
|
+
"JMD": 86.25,
|
73
|
+
"JOD": 0.7083,
|
74
|
+
"JPY": 76.68,
|
75
|
+
"KES": 85.099998,
|
76
|
+
"KGS": 46.648899,
|
77
|
+
"KHR": 4189.799805,
|
78
|
+
"KMF": 372.139038,
|
79
|
+
"KPW": 900,
|
80
|
+
"KRW": 1121.02002,
|
81
|
+
"KWD": 0.27814,
|
82
|
+
"KZT": 148.425003,
|
83
|
+
"LAK": 7998.299805,
|
84
|
+
"LBP": 1505,
|
85
|
+
"LKR": 113.834999,
|
86
|
+
"LRD": 73.339996,
|
87
|
+
"LSL": 7.76,
|
88
|
+
"LTL": 2.614,
|
89
|
+
"LVL": 0.529,
|
90
|
+
"LYD": 1.2485,
|
91
|
+
"MAD": 8.4415,
|
92
|
+
"MDL": 11.785,
|
93
|
+
"MGA": 2190,
|
94
|
+
"MKD": 46.939999,
|
95
|
+
"MMK": 6.51,
|
96
|
+
"MNT": 1362.5,
|
97
|
+
"MOP": 7.98705,
|
98
|
+
"MRO": 290.130005,
|
99
|
+
"MUR": 29.5,
|
100
|
+
"MVR": 15.41,
|
101
|
+
"MWK": 165.5,
|
102
|
+
"MXN": 12.9155,
|
103
|
+
"MYR": 3.0425,
|
104
|
+
"MZN": 27.087,
|
105
|
+
"NAD": 7.756,
|
106
|
+
"NGN": 160.949997,
|
107
|
+
"NIO": 23.065001,
|
108
|
+
"NOK": 5.80155,
|
109
|
+
"NPR": 80,
|
110
|
+
"NZD": 1.212342,
|
111
|
+
"OMR": 0.3851,
|
112
|
+
"PAB": 1,
|
113
|
+
"PEN": 2.69,
|
114
|
+
"PGK": 2.0619,
|
115
|
+
"PHP": 42.849998,
|
116
|
+
"PKR": 90.150002,
|
117
|
+
"PLN": 3.1972,
|
118
|
+
"PYG": 4710,
|
119
|
+
"QAR": 3.6415,
|
120
|
+
"RON": 3.2843,
|
121
|
+
"RSD": 80.640503,
|
122
|
+
"RUB": 30.131001,
|
123
|
+
"RWF": 604.380066,
|
124
|
+
"SAR": 3.7503,
|
125
|
+
"SBD": 7.11124,
|
126
|
+
"SCR": 13.99045,
|
127
|
+
"SDG": 2.6778,
|
128
|
+
"SEK": 6.7462,
|
129
|
+
"SGD": 1.25075,
|
130
|
+
"SHP": 0.63575,
|
131
|
+
"SLL": 4407.5,
|
132
|
+
"SOS": 1627,
|
133
|
+
"SRD": 3.275,
|
134
|
+
"STD": 18602.5,
|
135
|
+
"SVC": 8.7475,
|
136
|
+
"SYP": 57.450001,
|
137
|
+
"SZL": 7.762,
|
138
|
+
"THB": 31.084999,
|
139
|
+
"TJS": 4.7581,
|
140
|
+
"TMT": 2.8425,
|
141
|
+
"TND": 1.4945,
|
142
|
+
"TOP": 1.708066,
|
143
|
+
"TRY": 1.7767,
|
144
|
+
"TTD": 6.4053,
|
145
|
+
"TWD": 29.74,
|
146
|
+
"TZS": 1595.5,
|
147
|
+
"UAH": 8.038,
|
148
|
+
"UGX": 2343.5,
|
149
|
+
"USD": 1,
|
150
|
+
"UYU": 19.52,
|
151
|
+
"UZS": 1808.170044,
|
152
|
+
"VEF": 4.2927,
|
153
|
+
"VND": 20943,
|
154
|
+
"VUV": 90.5,
|
155
|
+
"WST": 2.309777,
|
156
|
+
"XAF": 496.185364,
|
157
|
+
"XCD": 2.7,
|
158
|
+
"XDR": 0.646403,
|
159
|
+
"XOF": 497.450012,
|
160
|
+
"XPF": 90.980003,
|
161
|
+
"YER": 213.255005,
|
162
|
+
"ZAR": 7.7622,
|
163
|
+
"ZMK": 5150,
|
164
|
+
"ZWD": 0,
|
165
|
+
"ZWL": 322.355011
|
166
|
+
}
|
167
|
+
}
|