cnb 0.0.8 → 0.1.1
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.
- 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
|