cnb 0.0.8 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/cnb.gemspec +1 -0
- data/lib/cnb/currency_rates.rb +13 -27
- data/lib/cnb/daily_rates.rb +2 -2
- data/lib/cnb/monthly_rates.rb +2 -2
- data/lib/cnb/version.rb +1 -1
- data/lib/cnb.rb +10 -4
- data/spec/fixtures/daily_rates.xml +38 -0
- data/spec/fixtures/monthly_rates_2013_03.xml +130 -0
- data/spec/models/daily_rates_spec.rb +7 -6
- data/spec/models/monthly_rates_spec.rb +10 -9
- metadata +22 -8
- data/spec/fixtures/daily_cur_rates.txt +0 -35
- data/spec/fixtures/monthly_cur_rates_2013_3.txt +0 -126
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1fc9b6106a803a576a97a106bb7f4b3d20bbd99
|
4
|
+
data.tar.gz: 8ea44b922132d9bc5c0df125ff80972ff3cef254
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc4fe3b8ea2849295b18e1371282fe1574869fa6e8223820ed8299c72391de7a0f0d48092a6c21a698ee9a9faea80a627892ee21404ba16e896a5d9da53c851c
|
7
|
+
data.tar.gz: 2f19c1e0d98fe58fd06713f406f29dcd3c78553cdce1cee5841a3d41d20e7cfc87ca8d34f6389457527976553b7be417d7a971be077b791e09c44b5a02c9836b
|
data/README.md
CHANGED
@@ -47,6 +47,8 @@ Get date when the currency rates were published. Czech National Bank does not pu
|
|
47
47
|
|
48
48
|
CNB.date
|
49
49
|
|
50
|
+
Daily currency rates are used by default, so you can use the methods for getting rates, currency names and countries straight away.
|
51
|
+
|
50
52
|
|
51
53
|
### Monthly currency rates
|
52
54
|
|
data/cnb.gemspec
CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
|
20
20
|
s.require_paths = ['lib', 'config']
|
21
21
|
|
22
|
+
s.add_dependency('nokogiri', '~> 1.6')
|
22
23
|
s.add_development_dependency('pry', '~> 0.9')
|
23
24
|
s.add_development_dependency('rake', '~> 0.9')
|
24
25
|
s.add_development_dependency('rspec', '~> 2.14')
|
data/lib/cnb/currency_rates.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'open-uri'
|
2
|
+
require 'nokogiri'
|
2
3
|
|
3
4
|
module CNB
|
4
5
|
class CurrencyRates
|
@@ -26,35 +27,20 @@ module CNB
|
|
26
27
|
@currencies[cur_code]
|
27
28
|
end
|
28
29
|
|
29
|
-
def
|
30
|
-
|
31
|
-
|
32
|
-
@date = parse_date(lines.first)
|
30
|
+
def get_currencies
|
31
|
+
xml_doc = Nokogiri::XML(open(@cur_rates_url))
|
32
|
+
@date = Date.parse(xml_doc.css('kurzy').attr('datum').value)
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
@currencies[cur[:cur_code]] = cur[:data]
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def parse_cur(line)
|
42
|
-
columns = line.split('|')
|
43
|
-
amount = columns[2].to_f
|
44
|
-
rate = columns[4].chomp.tr(',', '.').to_f
|
45
|
-
|
46
|
-
data = { country: columns[0], name: columns[1], rate: rate / amount }
|
47
|
-
{ cur_code: columns[3], data: data }
|
48
|
-
end
|
49
|
-
|
50
|
-
def parse_date(line)
|
51
|
-
date = line[0..line.index('#') - 1].chomp
|
52
|
-
Date.parse(date)
|
53
|
-
end
|
34
|
+
xml_doc.css('radek').each do |currency|
|
35
|
+
amount = currency.attr('mnozstvi').to_f
|
36
|
+
rate = currency.attr('kurz').tr(',', '.').to_f
|
54
37
|
|
55
|
-
|
56
|
-
|
57
|
-
|
38
|
+
@currencies[currency.attr('kod')] = {
|
39
|
+
country: currency.attr('zeme'),
|
40
|
+
name: currency.attr('mena'),
|
41
|
+
rate: rate / amount
|
42
|
+
}
|
43
|
+
end
|
58
44
|
end
|
59
45
|
end
|
60
46
|
end
|
data/lib/cnb/daily_rates.rb
CHANGED
@@ -2,9 +2,9 @@ module CNB
|
|
2
2
|
class DailyRates < CurrencyRates
|
3
3
|
def initialize
|
4
4
|
@currencies = {}
|
5
|
-
@cur_rates_url = "#{CUR_RATES_URL}kurzy_devizoveho_trhu/denni_kurz.
|
5
|
+
@cur_rates_url = "#{CUR_RATES_URL}kurzy_devizoveho_trhu/denni_kurz.xml"
|
6
6
|
|
7
|
-
|
7
|
+
get_currencies
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
data/lib/cnb/monthly_rates.rb
CHANGED
@@ -8,9 +8,9 @@ module CNB
|
|
8
8
|
raise 'Invalid month given' unless valid_year?
|
9
9
|
|
10
10
|
@currencies = {}
|
11
|
-
@cur_rates_url = "#{CUR_RATES_URL}/kurzy_ostatnich_men/kurzy.
|
11
|
+
@cur_rates_url = "#{CUR_RATES_URL}/kurzy_ostatnich_men/kurzy.xml?mesic=#{month}&rok=#{year}"
|
12
12
|
|
13
|
-
|
13
|
+
get_currencies
|
14
14
|
end
|
15
15
|
|
16
16
|
private
|
data/lib/cnb/version.rb
CHANGED
data/lib/cnb.rb
CHANGED
@@ -15,19 +15,25 @@ module CNB
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def date
|
18
|
-
|
18
|
+
parser.date
|
19
19
|
end
|
20
20
|
|
21
21
|
def rate(cur_code)
|
22
|
-
|
22
|
+
parser.rate(cur_code)
|
23
23
|
end
|
24
24
|
|
25
25
|
def name(cur_code)
|
26
|
-
|
26
|
+
parser.name(cur_code)
|
27
27
|
end
|
28
28
|
|
29
29
|
def country(cur_code)
|
30
|
-
|
30
|
+
parser.country(cur_code)
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def parser
|
36
|
+
@parser ||= DailyRates.new
|
31
37
|
end
|
32
38
|
end
|
33
39
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<kurzy banka="CNB" datum="25.02.2014" poradi="39">
|
3
|
+
<tabulka typ="XML_TYP_CNB_KURZY_DEVIZOVEHO_TRHU">
|
4
|
+
<radek kod="AUD" mena="dolar" mnozstvi="1" kurz="17,936" zeme="Austrálie"/>
|
5
|
+
<radek kod="BRL" mena="real" mnozstvi="1" kurz="8,513" zeme="Brazílie"/>
|
6
|
+
<radek kod="BGN" mena="lev" mnozstvi="1" kurz="13,977" zeme="Bulharsko"/>
|
7
|
+
<radek kod="CNY" mena="renminbi" mnozstvi="1" kurz="3,245" zeme="Čína"/>
|
8
|
+
<radek kod="DKK" mena="koruna" mnozstvi="1" kurz="3,664" zeme="Dánsko"/>
|
9
|
+
<radek kod="EUR" mena="euro" mnozstvi="1" kurz="27,340" zeme="EMU"/>
|
10
|
+
<radek kod="PHP" mena="peso" mnozstvi="100" kurz="44,554" zeme="Filipíny"/>
|
11
|
+
<radek kod="HKD" mena="dolar" mnozstvi="1" kurz="2,561" zeme="Hongkong"/>
|
12
|
+
<radek kod="HRK" mena="kuna" mnozstvi="1" kurz="3,565" zeme="Chorvatsko"/>
|
13
|
+
<radek kod="INR" mena="rupie" mnozstvi="100" kurz="32,090" zeme="Indie"/>
|
14
|
+
<radek kod="IDR" mena="rupie" mnozstvi="1000" kurz="1,704" zeme="Indonesie"/>
|
15
|
+
<radek kod="ILS" mena="šekel" mnozstvi="1" kurz="5,649" zeme="Izrael"/>
|
16
|
+
<radek kod="JPY" mena="jen" mnozstvi="100" kurz="19,433" zeme="Japonsko"/>
|
17
|
+
<radek kod="ZAR" mena="rand" mnozstvi="1" kurz="1,852" zeme="Jihoafrická rep."/>
|
18
|
+
<radek kod="KRW" mena="won" mnozstvi="100" kurz="1,852" zeme="Jižní Korea"/>
|
19
|
+
<radek kod="CAD" mena="dolar" mnozstvi="1" kurz="17,945" zeme="Kanada"/>
|
20
|
+
<radek kod="LTL" mena="litas" mnozstvi="1" kurz="7,918" zeme="Litva"/>
|
21
|
+
<radek kod="HUF" mena="forint" mnozstvi="100" kurz="8,847" zeme="Maďarsko"/>
|
22
|
+
<radek kod="MYR" mena="ringgit" mnozstvi="1" kurz="6,054" zeme="Malajsie"/>
|
23
|
+
<radek kod="MXN" mena="peso" mnozstvi="1" kurz="1,499" zeme="Mexiko"/>
|
24
|
+
<radek kod="XDR" mena="SDR" mnozstvi="1" kurz="30,708" zeme="MMF"/>
|
25
|
+
<radek kod="NOK" mena="koruna" mnozstvi="1" kurz="3,299" zeme="Norsko"/>
|
26
|
+
<radek kod="NZD" mena="dolar" mnozstvi="1" kurz="16,556" zeme="Nový Zéland"/>
|
27
|
+
<radek kod="PLN" mena="zlotý" mnozstvi="1" kurz="6,584" zeme="Polsko"/>
|
28
|
+
<radek kod="RON" mena="nové leu" mnozstvi="1" kurz="6,057" zeme="Rumunsko"/>
|
29
|
+
<radek kod="RUB" mena="rubl" mnozstvi="100" kurz="55,791" zeme="Rusko"/>
|
30
|
+
<radek kod="SGD" mena="dolar" mnozstvi="1" kurz="15,718" zeme="Singapur"/>
|
31
|
+
<radek kod="SEK" mena="koruna" mnozstvi="1" kurz="3,060" zeme="Švédsko"/>
|
32
|
+
<radek kod="CHF" mena="frank" mnozstvi="1" kurz="22,420" zeme="Švýcarsko"/>
|
33
|
+
<radek kod="THB" mena="baht" mnozstvi="100" kurz="61,027" zeme="Thajsko"/>
|
34
|
+
<radek kod="TRY" mena="lira" mnozstvi="1" kurz="9,002" zeme="Turecko"/>
|
35
|
+
<radek kod="USD" mena="dolar" mnozstvi="1" kurz="19,876" zeme="USA"/>
|
36
|
+
<radek kod="GBP" mena="libra" mnozstvi="1" kurz="33,188" zeme="Velká Británie"/>
|
37
|
+
</tabulka>
|
38
|
+
</kurzy>
|
@@ -0,0 +1,130 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<kurzy banka="CNB" datum="29.03.2013" poradi="3">
|
3
|
+
<tabulka typ="XML_TYP_CNB_KURZY_DEVIZOVEHO_TRHU">
|
4
|
+
<radek kod="AFN" mena="afghani" mnozstvi="100" kurz="38,167" zeme="Afghánistán"/>
|
5
|
+
<radek kod="ALL" mena="lek" mnozstvi="100" kurz="18,474" zeme="Albánie"/>
|
6
|
+
<radek kod="DZD" mena="dinár" mnozstvi="100" kurz="25,454" zeme="Alžírsko"/>
|
7
|
+
<radek kod="AOA" mena="kwanza" mnozstvi="100" kurz="20,964" zeme="Angola"/>
|
8
|
+
<radek kod="ARS" mena="peso" mnozstvi="1" kurz="3,921" zeme="Argentina"/>
|
9
|
+
<radek kod="AMD" mena="dram" mnozstvi="100" kurz="4,808" zeme="Arménie"/>
|
10
|
+
<radek kod="AWG" mena="gulden" mnozstvi="1" kurz="11,276" zeme="Aruba"/>
|
11
|
+
<radek kod="AZN" mena="manat" mnozstvi="1" kurz="25,622" zeme="Ázerbájdžán"/>
|
12
|
+
<radek kod="BSD" mena="dolar" mnozstvi="1" kurz="20,072" zeme="Bahamy"/>
|
13
|
+
<radek kod="BHD" mena="dinár" mnozstvi="1" kurz="53,246" zeme="Bahrajn"/>
|
14
|
+
<radek kod="BDT" mena="taka" mnozstvi="100" kurz="25,717" zeme="Bangladéš"/>
|
15
|
+
<radek kod="BBD" mena="dolar" mnozstvi="1" kurz="10,036" zeme="Barbados"/>
|
16
|
+
<radek kod="BZD" mena="dolar" mnozstvi="1" kurz="9,937" zeme="Belize"/>
|
17
|
+
<radek kod="BYR" mena="rubl" mnozstvi="100" kurz="0,233" zeme="Bělorusko"/>
|
18
|
+
<radek kod="BMD" mena="dolar" mnozstvi="1" kurz="20,072" zeme="Bermudy"/>
|
19
|
+
<radek kod="BTN" mena="ngultrum" mnozstvi="100" kurz="36,979" zeme="Bhútán"/>
|
20
|
+
<radek kod="BOB" mena="boliviano" mnozstvi="1" kurz="2,884" zeme="Bolivie"/>
|
21
|
+
<radek kod="BAM" mena="marka" mnozstvi="1" kurz="13,158" zeme="Bosna a Hercegovina"/>
|
22
|
+
<radek kod="BWP" mena="pula" mnozstvi="1" kurz="2,429" zeme="Botswana"/>
|
23
|
+
<radek kod="BND" mena="dolar" mnozstvi="1" kurz="16,179" zeme="Brunej"/>
|
24
|
+
<radek kod="BIF" mena="frank" mnozstvi="100" kurz="1,294" zeme="Burundi"/>
|
25
|
+
<radek kod="CVE" mena="escudo" mnozstvi="100" kurz="23,457" zeme="Cape Verde"/>
|
26
|
+
<radek kod="ANG" mena="gulden" mnozstvi="1" kurz="11,276" zeme="Curacao a St. Marteen"/>
|
27
|
+
<radek kod="DOP" mena="peso" mnozstvi="100" kurz="49,136" zeme="Dominikánská republika"/>
|
28
|
+
<radek kod="DJF" mena="frank" mnozstvi="100" kurz="11,489" zeme="Džibutsko"/>
|
29
|
+
<radek kod="EGP" mena="libra" mnozstvi="1" kurz="2,950" zeme="Egypt"/>
|
30
|
+
<radek kod="ERN" mena="nakfa" mnozstvi="1" kurz="1,379" zeme="Eritrea"/>
|
31
|
+
<radek kod="ETB" mena="birr" mnozstvi="1" kurz="1,090" zeme="Etiopie"/>
|
32
|
+
<radek kod="FKP" mena="libra" mnozstvi="1" kurz="30,520" zeme="Falklandy"/>
|
33
|
+
<radek kod="FJD" mena="dolar" mnozstvi="1" kurz="11,142" zeme="Fidži"/>
|
34
|
+
<radek kod="XPF" mena="frank CFP" mnozstvi="100" kurz="21,695" zeme="Francouzská Polynésie"/>
|
35
|
+
<radek kod="GMD" mena="dalasi" mnozstvi="100" kurz="62,725" zeme="Gambie"/>
|
36
|
+
<radek kod="GHS" mena="Ghana cedi" mnozstvi="1" kurz="10,360" zeme="Ghana"/>
|
37
|
+
<radek kod="GIP" mena="libra" mnozstvi="1" kurz="30,520" zeme="Gibraltar"/>
|
38
|
+
<radek kod="GEL" mena="lari" mnozstvi="1" kurz="12,108" zeme="Gruzie"/>
|
39
|
+
<radek kod="GTQ" mena="quetzal" mnozstvi="1" kurz="2,581" zeme="Guatemala"/>
|
40
|
+
<radek kod="GNF" mena="frank" mnozstvi="1000" kurz="2,896" zeme="Guinea"/>
|
41
|
+
<radek kod="GYD" mena="dolar" mnozstvi="100" kurz="9,926" zeme="Guyana"/>
|
42
|
+
<radek kod="HTG" mena="gourde" mnozstvi="100" kurz="47,228" zeme="Haiti"/>
|
43
|
+
<radek kod="HNL" mena="lempira" mnozstvi="1" kurz="1,024" zeme="Honduras"/>
|
44
|
+
<radek kod="CLP" mena="peso" mnozstvi="100" kurz="4,258" zeme="Chile"/>
|
45
|
+
<radek kod="IQD" mena="dinar" mnozstvi="1000" kurz="17,303" zeme="Irák"/>
|
46
|
+
<radek kod="IRR" mena="rial" mnozstvi="1000" kurz="1,637" zeme="Írán"/>
|
47
|
+
<radek kod="ISK" mena="koruna" mnozstvi="100" kurz="16,227" zeme="Island"/>
|
48
|
+
<radek kod="JMD" mena="dolar" mnozstvi="100" kurz="20,597" zeme="Jamajka"/>
|
49
|
+
<radek kod="YER" mena="rial" mnozstvi="100" kurz="9,368" zeme="Jemen"/>
|
50
|
+
<radek kod="JOD" mena="dinár" mnozstvi="1" kurz="28,354" zeme="Jordánsko"/>
|
51
|
+
<radek kod="KYD" mena="dolar" mnozstvi="1" kurz="24,478" zeme="Kajmanské ostrovy"/>
|
52
|
+
<radek kod="KHR" mena="riel" mnozstvi="1000" kurz="5,041" zeme="Kambodža"/>
|
53
|
+
<radek kod="QAR" mena="rial" mnozstvi="1" kurz="5,513" zeme="Katar"/>
|
54
|
+
<radek kod="KZT" mena="tenge" mnozstvi="100" kurz="13,302" zeme="Kazachstán"/>
|
55
|
+
<radek kod="KES" mena="šilink" mnozstvi="100" kurz="23,586" zeme="Keňa"/>
|
56
|
+
<radek kod="KPW" mena="won" mnozstvi="1" kurz="15,440" zeme="KLDR"/>
|
57
|
+
<radek kod="COP" mena="peso" mnozstvi="1000" kurz="11,016" zeme="Kolumbie"/>
|
58
|
+
<radek kod="KMF" mena="frank" mnozstvi="100" kurz="5,234" zeme="Komory"/>
|
59
|
+
<radek kod="CDF" mena="frank" mnozstvi="100" kurz="2,220" zeme="Konžská demokratická republika"/>
|
60
|
+
<radek kod="CRC" mena="colon" mnozstvi="100" kurz="4,027" zeme="Kostarika"/>
|
61
|
+
<radek kod="CUP" mena="peso" mnozstvi="1" kurz="20,072" zeme="Kuba"/>
|
62
|
+
<radek kod="KWD" mena="dinár" mnozstvi="1" kurz="70,478" zeme="Kuvajt"/>
|
63
|
+
<radek kod="KGS" mena="som" mnozstvi="100" kurz="42,465" zeme="Kyrgyzstán"/>
|
64
|
+
<radek kod="LAK" mena="kip" mnozstvi="1000" kurz="2,570" zeme="Laos"/>
|
65
|
+
<radek kod="LSL" mena="loti" mnozstvi="1" kurz="2,175" zeme="Lesotho"/>
|
66
|
+
<radek kod="LBP" mena="libra" mnozstvi="1000" kurz="13,372" zeme="Libanon"/>
|
67
|
+
<radek kod="LRD" mena="dolar" mnozstvi="100" kurz="27,216" zeme="Libérie"/>
|
68
|
+
<radek kod="LYD" mena="dinár" mnozstvi="1" kurz="15,664" zeme="Libye"/>
|
69
|
+
<radek kod="MOP" mena="pataca" mnozstvi="1" kurz="2,513" zeme="Macao"/>
|
70
|
+
<radek kod="MGA" mena="ariary" mnozstvi="1000" kurz="8,977" zeme="Madagaskar"/>
|
71
|
+
<radek kod="MKD" mena="denár" mnozstvi="100" kurz="42,301" zeme="Makedonie"/>
|
72
|
+
<radek kod="MWK" mena="kwacha" mnozstvi="100" kurz="5,282" zeme="Malawi"/>
|
73
|
+
<radek kod="MVR" mena="rufiya" mnozstvi="1" kurz="1,321" zeme="Maledivy"/>
|
74
|
+
<radek kod="MAD" mena="dirham" mnozstvi="1" kurz="2,321" zeme="Maroko"/>
|
75
|
+
<radek kod="MRO" mena="ouguiya" mnozstvi="100" kurz="7,299" zeme="Mauritánie"/>
|
76
|
+
<radek kod="MUR" mena="rupie" mnozstvi="100" kurz="64,644" zeme="Mauritius"/>
|
77
|
+
<radek kod="MDL" mena="leu" mnozstvi="1" kurz="1,625" zeme="Moldávie"/>
|
78
|
+
<radek kod="MNT" mena="tugrik" mnozstvi="100" kurz="1,439" zeme="Mongolsko"/>
|
79
|
+
<radek kod="MZN" mena="nový metical" mnozstvi="1000" kurz="669,067" zeme="Mosambik"/>
|
80
|
+
<radek kod="MMK" mena="kyat" mnozstvi="1" kurz="0,023" zeme="Myanmar"/>
|
81
|
+
<radek kod="NAD" mena="dolar" mnozstvi="1" kurz="2,175" zeme="Namibie"/>
|
82
|
+
<radek kod="NPR" mena="rupie" mnozstvi="100" kurz="23,242" zeme="Nepál"/>
|
83
|
+
<radek kod="NGN" mena="naira" mnozstvi="100" kurz="12,668" zeme="Nigérie"/>
|
84
|
+
<radek kod="NIO" mena="cordoba " mnozstvi="1" kurz="0,829" zeme="Nikaragua"/>
|
85
|
+
<radek kod="OMR" mena="rial" mnozstvi="1" kurz="52,139" zeme="Omán"/>
|
86
|
+
<radek kod="PKR" mena="rupie" mnozstvi="100" kurz="20,409" zeme="Pákistán"/>
|
87
|
+
<radek kod="PAB" mena="balboa" mnozstvi="1" kurz="20,072" zeme="Panama"/>
|
88
|
+
<radek kod="PGK" mena="kina" mnozstvi="1" kurz="9,103" zeme="Papua-Nová Quinea"/>
|
89
|
+
<radek kod="PYG" mena="guarani" mnozstvi="1000" kurz="5,018" zeme="Paraguay"/>
|
90
|
+
<radek kod="PEN" mena="nuevo sol" mnozstvi="1" kurz="7,754" zeme="Peru"/>
|
91
|
+
<radek kod="RWF" mena="frank" mnozstvi="100" kurz="3,186" zeme="Rwanda"/>
|
92
|
+
<radek kod="SVC" mena="colon" mnozstvi="1" kurz="2,296" zeme="Salvádor"/>
|
93
|
+
<radek kod="WST" mena="tala" mnozstvi="1" kurz="8,659" zeme="Samoa"/>
|
94
|
+
<radek kod="SAR" mena="riyal" mnozstvi="1" kurz="5,352" zeme="Saudská Arábie"/>
|
95
|
+
<radek kod="SCR" mena="rupie" mnozstvi="1" kurz="1,781" zeme="Seychely"/>
|
96
|
+
<radek kod="SLL" mena="leone" mnozstvi="1000" kurz="4,647" zeme="Sierra-Leone"/>
|
97
|
+
<radek kod="SOS" mena="šilink" mnozstvi="1000" kurz="13,231" zeme="Somálsko"/>
|
98
|
+
<radek kod="AED" mena="dirham" mnozstvi="1" kurz="5,465" zeme="Spojené arabské emiráty"/>
|
99
|
+
<radek kod="RSD" mena="dinár" mnozstvi="100" kurz="23,100" zeme="Srbsko"/>
|
100
|
+
<radek kod="LKR" mena="rupie" mnozstvi="100" kurz="15,842" zeme="Srí Lanka"/>
|
101
|
+
<radek kod="XAF" mena="frank CFA" mnozstvi="100" kurz="3,924" zeme="Státy střední Afriky"/>
|
102
|
+
<radek kod="XOF" mena="frank CFA" mnozstvi="100" kurz="3,924" zeme="Státy západní Afriky"/>
|
103
|
+
<radek kod="SDG" mena="libra" mnozstvi="1" kurz="4,562" zeme="Súdán"/>
|
104
|
+
<radek kod="SRD" mena="dolar" mnozstvi="1" kurz="6,176" zeme="Surinam"/>
|
105
|
+
<radek kod="SHP" mena="libra" mnozstvi="1" kurz="30,520" zeme="Svatá Helena"/>
|
106
|
+
<radek kod="STD" mena="dobra" mnozstvi="1000" kurz="1,083" zeme="Svatý Tomáš a Princův ostrov"/>
|
107
|
+
<radek kod="SZL" mena="lilangeni" mnozstvi="1" kurz="2,175" zeme="Svazijsko"/>
|
108
|
+
<radek kod="SYP" mena="libra" mnozstvi="100" kurz="28,503" zeme="Sýrie"/>
|
109
|
+
<radek kod="SBD" mena="dolar" mnozstvi="1" kurz="2,740" zeme="Šalomounovy ostrovy"/>
|
110
|
+
<radek kod="TJS" mena="somoni" mnozstvi="1" kurz="4,222" zeme="Tádžikistán"/>
|
111
|
+
<radek kod="TWD" mena="dolar" mnozstvi="100" kurz="67,333" zeme="Taiwan"/>
|
112
|
+
<radek kod="TZS" mena="šilink" mnozstvi="100" kurz="1,245" zeme="Tanzanie"/>
|
113
|
+
<radek kod="TOP" mena="pa`anga" mnozstvi="1" kurz="11,453" zeme="Tonga"/>
|
114
|
+
<radek kod="TTD" mena="dolar" mnozstvi="1" kurz="3,141" zeme="Trinidad a Tobago"/>
|
115
|
+
<radek kod="TND" mena="dinár" mnozstvi="1" kurz="12,596" zeme="Tunisko"/>
|
116
|
+
<radek kod="TMT" mena="nový manat" mnozstvi="1" kurz="7,055" zeme="Turkmenistán"/>
|
117
|
+
<radek kod="UGX" mena="šilink" mnozstvi="100" kurz="0,777" zeme="Uganda"/>
|
118
|
+
<radek kod="UAH" mena="hřivna" mnozstvi="1" kurz="2,468" zeme="Ukrajina"/>
|
119
|
+
<radek kod="UYU" mena="peso" mnozstvi="100" kurz="106,766" zeme="Uruguay"/>
|
120
|
+
<radek kod="UZS" mena="sum" mnozstvi="100" kurz="0,993" zeme="Uzbekistán"/>
|
121
|
+
<radek kod="VUV" mena="vatu" mnozstvi="100" kurz="22,128" zeme="Vanuatu"/>
|
122
|
+
<radek kod="VEF" mena="bolivar" mnozstvi="1" kurz="3,194" zeme="Venezuela"/>
|
123
|
+
<radek kod="VND" mena="dong" mnozstvi="1000" kurz="0,959" zeme="Vietnam"/>
|
124
|
+
<radek kod="TPE" mena="escudo" mnozstvi="1" kurz="20,072" zeme="Východní Timor"/>
|
125
|
+
<radek kod="XCD" mena="dolar" mnozstvi="1" kurz="7,518" zeme="Východokaribská oblast"/>
|
126
|
+
<radek kod="ZMW" mena="kwacha" mnozstvi="1" kurz="3,741" zeme="Zambie"/>
|
127
|
+
<radek kod="ZWL" mena="dolar" mnozstvi="1000" kurz="0,000" zeme="Zimbabwe"/>
|
128
|
+
</tabulka>
|
129
|
+
</kurzy>
|
130
|
+
|
@@ -2,26 +2,27 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe CNB::DailyRates do
|
4
4
|
before(:each) do
|
5
|
-
filepath = File.join('spec', 'fixtures', '
|
6
|
-
|
5
|
+
filepath = File.join('spec', 'fixtures', 'daily_rates.xml')
|
6
|
+
xml_doc = Nokogiri::XML(File.read(filepath))
|
7
|
+
Nokogiri::XML::Document.should_receive(:parse).and_return { xml_doc }
|
7
8
|
@parser = CNB::DailyRates.new
|
8
9
|
end
|
9
10
|
|
10
11
|
it 'returns date from the exchange rates file' do
|
11
|
-
expect(@parser.date).to eq Date.parse('
|
12
|
+
expect(@parser.date).to eq Date.parse('25.2.2014')
|
12
13
|
end
|
13
14
|
|
14
15
|
describe '#cur_rate' do
|
15
16
|
it 'returns currency rate' do
|
16
|
-
expect(@parser.rate('USD')).to eq(19.
|
17
|
+
expect(@parser.rate('USD')).to eq(19.876)
|
17
18
|
end
|
18
19
|
|
19
20
|
it 'returns currency rate no matter the case of currency code' do
|
20
|
-
expect(@parser.rate('usd')).to eq(19.
|
21
|
+
expect(@parser.rate('usd')).to eq(19.876)
|
21
22
|
end
|
22
23
|
|
23
24
|
it 'raises error if currency with given code is not included in the exchange rates file' do
|
24
|
-
expect{@parser.rate('USX')}.to raise_error(StandardError)
|
25
|
+
expect { @parser.rate('USX') }.to raise_error(StandardError)
|
25
26
|
end
|
26
27
|
end
|
27
28
|
|
@@ -2,21 +2,22 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe CNB::MonthlyRates do
|
4
4
|
before(:each) do
|
5
|
-
filepath = File.join('spec', 'fixtures', '
|
6
|
-
|
5
|
+
filepath = File.join('spec', 'fixtures', 'monthly_rates_2013_03.xml')
|
6
|
+
xml_doc = Nokogiri::XML(File.read(filepath))
|
7
|
+
Nokogiri::XML::Document.should_receive(:parse).and_return { xml_doc }
|
7
8
|
@parser = CNB::MonthlyRates.new(3, 2013)
|
8
9
|
end
|
9
10
|
|
10
11
|
it 'raises error if required month is invalid' do
|
11
|
-
expect{CNB::MonthlyRates.new('abc', 2013)}.to raise_error(StandardError)
|
12
|
-
expect{CNB::MonthlyRates.new(0, 2013)}.to raise_error(StandardError)
|
13
|
-
expect{CNB::MonthlyRates.new(13, 2013)}.to raise_error(StandardError)
|
12
|
+
expect { CNB::MonthlyRates.new('abc', 2013) }.to raise_error(StandardError)
|
13
|
+
expect { CNB::MonthlyRates.new(0, 2013) }.to raise_error(StandardError)
|
14
|
+
expect { CNB::MonthlyRates.new(13, 2013) }.to raise_error(StandardError)
|
14
15
|
end
|
15
16
|
|
16
17
|
it 'raises error if required year is invalid' do
|
17
|
-
expect{CNB::MonthlyRates.new(3, 'abc')}.to raise_error(StandardError)
|
18
|
-
expect{CNB::MonthlyRates.new(3, 2000)}.to raise_error(StandardError)
|
19
|
-
expect{CNB::MonthlyRates.new(3, 2050)}.to raise_error(StandardError)
|
18
|
+
expect { CNB::MonthlyRates.new(3, 'abc') }.to raise_error(StandardError)
|
19
|
+
expect { CNB::MonthlyRates.new(3, 2000) }.to raise_error(StandardError)
|
20
|
+
expect { CNB::MonthlyRates.new(3, 2050) }.to raise_error(StandardError)
|
20
21
|
end
|
21
22
|
|
22
23
|
it 'returns date from the exchange rates file' do
|
@@ -33,7 +34,7 @@ describe CNB::MonthlyRates do
|
|
33
34
|
end
|
34
35
|
|
35
36
|
it 'raises error if currency wth given code is not included in the exchange rates file' do
|
36
|
-
expect{@parser.rate('HNX')}.to raise_error(StandardError)
|
37
|
+
expect { @parser.rate('HNX') }.to raise_error(StandardError)
|
37
38
|
end
|
38
39
|
end
|
39
40
|
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cnb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Zikán
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: nokogiri
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.6'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.6'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: pry
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -85,8 +99,8 @@ files:
|
|
85
99
|
- lib/cnb/daily_rates.rb
|
86
100
|
- lib/cnb/monthly_rates.rb
|
87
101
|
- lib/cnb/version.rb
|
88
|
-
- spec/fixtures/
|
89
|
-
- spec/fixtures/
|
102
|
+
- spec/fixtures/daily_rates.xml
|
103
|
+
- spec/fixtures/monthly_rates_2013_03.xml
|
90
104
|
- spec/models/daily_rates_spec.rb
|
91
105
|
- spec/models/monthly_rates_spec.rb
|
92
106
|
- spec/spec_helper.rb
|
@@ -101,12 +115,12 @@ require_paths:
|
|
101
115
|
- config
|
102
116
|
required_ruby_version: !ruby/object:Gem::Requirement
|
103
117
|
requirements:
|
104
|
-
- -
|
118
|
+
- - '>='
|
105
119
|
- !ruby/object:Gem::Version
|
106
120
|
version: '0'
|
107
121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
122
|
requirements:
|
109
|
-
- -
|
123
|
+
- - '>='
|
110
124
|
- !ruby/object:Gem::Version
|
111
125
|
version: '0'
|
112
126
|
requirements: []
|
@@ -116,7 +130,7 @@ signing_key:
|
|
116
130
|
specification_version: 4
|
117
131
|
summary: CNB currency rates
|
118
132
|
test_files:
|
119
|
-
- spec/fixtures/
|
120
|
-
- spec/fixtures/
|
133
|
+
- spec/fixtures/daily_rates.xml
|
134
|
+
- spec/fixtures/monthly_rates_2013_03.xml
|
121
135
|
- spec/models/daily_rates_spec.rb
|
122
136
|
- spec/models/monthly_rates_spec.rb
|
@@ -1,35 +0,0 @@
|
|
1
|
-
24.02.2014 #38
|
2
|
-
země|měna|množství|kód|kurz
|
3
|
-
Austrálie|dolar|1|AUD|17,919
|
4
|
-
Brazílie|real|1|BRL|8,503
|
5
|
-
Bulharsko|lev|1|BGN|13,990
|
6
|
-
Čína|renminbi|1|CNY|3,268
|
7
|
-
Dánsko|koruna|1|DKK|3,667
|
8
|
-
EMU|euro|1|EUR|27,365
|
9
|
-
Filipíny|peso|100|PHP|44,690
|
10
|
-
Hongkong|dolar|1|HKD|2,568
|
11
|
-
Chorvatsko|kuna|1|HRK|3,570
|
12
|
-
Indie|rupie|100|INR|32,102
|
13
|
-
Indonesie|rupie|1000|IDR|1,711
|
14
|
-
Izrael|šekel|1|ILS|5,686
|
15
|
-
Japonsko|jen|100|JPY|19,453
|
16
|
-
Jihoafrická rep.|rand|1|ZAR|1,825
|
17
|
-
Jižní Korea|won|100|KRW|1,854
|
18
|
-
Kanada|dolar|1|CAD|17,955
|
19
|
-
Litva|litas|1|LTL|7,926
|
20
|
-
Maďarsko|forint|100|HUF|8,823
|
21
|
-
Malajsie|ringgit|1|MYR|6,070
|
22
|
-
Mexiko|peso|1|MXN|1,503
|
23
|
-
MMF|SDR|1|XDR|30,765
|
24
|
-
Norsko|koruna|1|NOK|3,305
|
25
|
-
Nový Zéland|dolar|1|NZD|16,527
|
26
|
-
Polsko|zlotý|1|PLN|6,581
|
27
|
-
Rumunsko|nové leu|1|RON|6,068
|
28
|
-
Rusko|rubl|100|RUB|56,033
|
29
|
-
Singapur|dolar|1|SGD|15,740
|
30
|
-
Švédsko|koruna|1|SEK|3,062
|
31
|
-
Švýcarsko|frank|1|CHF|22,411
|
32
|
-
Thajsko|baht|100|THB|61,220
|
33
|
-
Turecko|lira|1|TRY|9,154
|
34
|
-
USA|dolar|1|USD|19,927
|
35
|
-
Velká Británie|libra|1|GBP|33,184
|
@@ -1,126 +0,0 @@
|
|
1
|
-
29.03.2013 #3
|
2
|
-
země|měna|množství|kód|kurz
|
3
|
-
Afghánistán|afghani|100|AFN|38,167
|
4
|
-
Albánie|lek|100|ALL|18,474
|
5
|
-
Alžírsko|dinár|100|DZD|25,454
|
6
|
-
Angola|kwanza|100|AOA|20,964
|
7
|
-
Argentina|peso|1|ARS|3,921
|
8
|
-
Arménie|dram|100|AMD|4,808
|
9
|
-
Aruba|gulden|1|AWG|11,276
|
10
|
-
Ázerbájdžán|manat|1|AZN|25,622
|
11
|
-
Bahamy|dolar|1|BSD|20,072
|
12
|
-
Bahrajn|dinár|1|BHD|53,246
|
13
|
-
Bangladéš|taka|100|BDT|25,717
|
14
|
-
Barbados|dolar|1|BBD|10,036
|
15
|
-
Belize|dolar|1|BZD|9,937
|
16
|
-
Bělorusko|rubl|100|BYR|0,233
|
17
|
-
Bermudy|dolar|1|BMD|20,072
|
18
|
-
Bhútán|ngultrum|100|BTN|36,979
|
19
|
-
Bolivie|boliviano|1|BOB|2,884
|
20
|
-
Bosna a Hercegovina|marka|1|BAM|13,158
|
21
|
-
Botswana|pula|1|BWP|2,429
|
22
|
-
Brunej|dolar|1|BND|16,179
|
23
|
-
Burundi|frank|100|BIF|1,294
|
24
|
-
Cape Verde|escudo|100|CVE|23,457
|
25
|
-
Curacao a St. Marteen|gulden|1|ANG|11,276
|
26
|
-
Dominikánská republika|peso|100|DOP|49,136
|
27
|
-
Džibutsko|frank|100|DJF|11,489
|
28
|
-
Egypt|libra|1|EGP|2,950
|
29
|
-
Eritrea|nakfa|1|ERN|1,379
|
30
|
-
Etiopie|birr|1|ETB|1,090
|
31
|
-
Falklandy|libra|1|FKP|30,520
|
32
|
-
Fidži|dolar|1|FJD|11,142
|
33
|
-
Francouzská Polynésie|frank CFP|100|XPF|21,695
|
34
|
-
Gambie|dalasi|100|GMD|62,725
|
35
|
-
Ghana|Ghana cedi|1|GHS|10,360
|
36
|
-
Gibraltar|libra|1|GIP|30,520
|
37
|
-
Gruzie|lari|1|GEL|12,108
|
38
|
-
Guatemala|quetzal|1|GTQ|2,581
|
39
|
-
Guinea|frank|1000|GNF|2,896
|
40
|
-
Guyana|dolar|100|GYD|9,926
|
41
|
-
Haiti|gourde|100|HTG|47,228
|
42
|
-
Honduras|lempira|1|HNL|1,024
|
43
|
-
Chile|peso|100|CLP|4,258
|
44
|
-
Irák|dinar|1000|IQD|17,303
|
45
|
-
Írán|rial|1000|IRR|1,637
|
46
|
-
Island|koruna|100|ISK|16,227
|
47
|
-
Jamajka|dolar|100|JMD|20,597
|
48
|
-
Jemen|rial|100|YER|9,368
|
49
|
-
Jordánsko|dinár|1|JOD|28,354
|
50
|
-
Kajmanské ostrovy|dolar|1|KYD|24,478
|
51
|
-
Kambodža|riel|1000|KHR|5,041
|
52
|
-
Katar|rial|1|QAR|5,513
|
53
|
-
Kazachstán|tenge|100|KZT|13,302
|
54
|
-
Keňa|šilink|100|KES|23,586
|
55
|
-
KLDR|won|1|KPW|15,440
|
56
|
-
Kolumbie|peso|1000|COP|11,016
|
57
|
-
Komory|frank|100|KMF|5,234
|
58
|
-
Konžská demokratická republika|frank|100|CDF|2,220
|
59
|
-
Kostarika|colon|100|CRC|4,027
|
60
|
-
Kuba|peso|1|CUP|20,072
|
61
|
-
Kuvajt|dinár|1|KWD|70,478
|
62
|
-
Kyrgyzstán|som|100|KGS|42,465
|
63
|
-
Laos|kip|1000|LAK|2,570
|
64
|
-
Lesotho|loti|1|LSL|2,175
|
65
|
-
Libanon|libra|1000|LBP|13,372
|
66
|
-
Libérie|dolar|100|LRD|27,216
|
67
|
-
Libye|dinár|1|LYD|15,664
|
68
|
-
Macao|pataca|1|MOP|2,513
|
69
|
-
Madagaskar|ariary|1000|MGA|8,977
|
70
|
-
Makedonie|denár|100|MKD|42,301
|
71
|
-
Malawi|kwacha|100|MWK|5,282
|
72
|
-
Maledivy|rufiya|1|MVR|1,321
|
73
|
-
Maroko|dirham|1|MAD|2,321
|
74
|
-
Mauritánie|ouguiya|100|MRO|7,299
|
75
|
-
Mauritius|rupie|100|MUR|64,644
|
76
|
-
Moldávie|leu|1|MDL|1,625
|
77
|
-
Mongolsko|tugrik|100|MNT|1,439
|
78
|
-
Mosambik|nový metical|1000|MZN|669,067
|
79
|
-
Myanmar|kyat|1|MMK|0,023
|
80
|
-
Namibie|dolar|1|NAD|2,175
|
81
|
-
Nepál|rupie|100|NPR|23,242
|
82
|
-
Nigérie|naira|100|NGN|12,668
|
83
|
-
Nikaragua|cordoba |1|NIO|0,829
|
84
|
-
Omán|rial|1|OMR|52,139
|
85
|
-
Pákistán|rupie|100|PKR|20,409
|
86
|
-
Panama|balboa|1|PAB|20,072
|
87
|
-
Papua-Nová Quinea|kina|1|PGK|9,103
|
88
|
-
Paraguay|guarani|1000|PYG|5,018
|
89
|
-
Peru|nuevo sol|1|PEN|7,754
|
90
|
-
Rwanda|frank|100|RWF|3,186
|
91
|
-
Salvádor|colon|1|SVC|2,296
|
92
|
-
Samoa|tala|1|WST|8,659
|
93
|
-
Saudská Arábie|riyal|1|SAR|5,352
|
94
|
-
Seychely|rupie|1|SCR|1,781
|
95
|
-
Sierra-Leone|leone|1000|SLL|4,647
|
96
|
-
Somálsko|šilink|1000|SOS|13,231
|
97
|
-
Spojené arabské emiráty|dirham|1|AED|5,465
|
98
|
-
Srbsko|dinár|100|RSD|23,100
|
99
|
-
Srí Lanka|rupie|100|LKR|15,842
|
100
|
-
Státy střední Afriky|frank CFA|100|XAF|3,924
|
101
|
-
Státy západní Afriky|frank CFA|100|XOF|3,924
|
102
|
-
Súdán|libra|1|SDG|4,562
|
103
|
-
Surinam|dolar|1|SRD|6,176
|
104
|
-
Svatá Helena|libra|1|SHP|30,520
|
105
|
-
Svatý Tomáš a Princův ostrov|dobra|1000|STD|1,083
|
106
|
-
Svazijsko|lilangeni|1|SZL|2,175
|
107
|
-
Sýrie|libra|100|SYP|28,503
|
108
|
-
Šalomounovy ostrovy|dolar|1|SBD|2,740
|
109
|
-
Tádžikistán|somoni|1|TJS|4,222
|
110
|
-
Taiwan|dolar|100|TWD|67,333
|
111
|
-
Tanzanie|šilink|100|TZS|1,245
|
112
|
-
Tonga|pa`anga|1|TOP|11,453
|
113
|
-
Trinidad a Tobago|dolar|1|TTD|3,141
|
114
|
-
Tunisko|dinár|1|TND|12,596
|
115
|
-
Turkmenistán|nový manat|1|TMT|7,055
|
116
|
-
Uganda|šilink|100|UGX|0,777
|
117
|
-
Ukrajina|hřivna|1|UAH|2,468
|
118
|
-
Uruguay|peso|100|UYU|106,766
|
119
|
-
Uzbekistán|sum|100|UZS|0,993
|
120
|
-
Vanuatu|vatu|100|VUV|22,128
|
121
|
-
Venezuela|bolivar|1|VEF|3,194
|
122
|
-
Vietnam|dong|1000|VND|0,959
|
123
|
-
Východní Timor|escudo|1|TPE|20,072
|
124
|
-
Východokaribská oblast|dolar|1|XCD|7,518
|
125
|
-
Zambie|kwacha|1|ZMW|3,741
|
126
|
-
Zimbabwe|dolar|1000|ZWL|0,000
|