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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 14256d21c48268159cdafaa4f931669472bc66dc
4
- data.tar.gz: cd4692078f028841e3401dd6dbd6b5970f5929d3
3
+ metadata.gz: a1fc9b6106a803a576a97a106bb7f4b3d20bbd99
4
+ data.tar.gz: 8ea44b922132d9bc5c0df125ff80972ff3cef254
5
5
  SHA512:
6
- metadata.gz: 35eacea1021e315692fc6d18bffe49cc3cf3e7a40da042a89aa33db7bcad7e2986f8b845a393afd33c75f503f64f4bdb2f9bf06dcde7598a116f8675b9fa1d7f
7
- data.tar.gz: 9a51e8f70e8768129beb0e771de12834e6cd7c978600d8eb888a397a277d58dd5d2e66f96673752d224ff74e1c315df547773dea9ab475809cb6f85a99402190
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')
@@ -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 parse
30
- text = get_page_content(@cur_rates_url)
31
- lines = text.split("\n")
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
- lines.shift(2)
35
- lines.each do |line|
36
- cur = parse_cur(line)
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
- def get_page_content(url)
56
- file = open(url)
57
- file.read
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
@@ -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.txt"
5
+ @cur_rates_url = "#{CUR_RATES_URL}kurzy_devizoveho_trhu/denni_kurz.xml"
6
6
 
7
- parse
7
+ get_currencies
8
8
  end
9
9
  end
10
10
  end
@@ -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.txt?mesic=#{month}&rok=#{year}"
11
+ @cur_rates_url = "#{CUR_RATES_URL}/kurzy_ostatnich_men/kurzy.xml?mesic=#{month}&rok=#{year}"
12
12
 
13
- parse
13
+ get_currencies
14
14
  end
15
15
 
16
16
  private
data/lib/cnb/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module CNB
2
- VERSION = '0.0.8'
2
+ VERSION = '0.1.1'
3
3
  end
data/lib/cnb.rb CHANGED
@@ -15,19 +15,25 @@ module CNB
15
15
  end
16
16
 
17
17
  def date
18
- @parser.date
18
+ parser.date
19
19
  end
20
20
 
21
21
  def rate(cur_code)
22
- @parser.rate(cur_code)
22
+ parser.rate(cur_code)
23
23
  end
24
24
 
25
25
  def name(cur_code)
26
- @parser.name(cur_code)
26
+ parser.name(cur_code)
27
27
  end
28
28
 
29
29
  def country(cur_code)
30
- @parser.country(cur_code)
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', 'daily_cur_rates.txt')
6
- CNB::DailyRates.any_instance.stub(:get_page_content) { File.read(filepath) }
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('24.2.2014')
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.927)
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.927)
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', 'monthly_cur_rates_2013_3.txt')
6
- CNB::MonthlyRates.any_instance.stub(:get_page_content) { File.read(filepath) }
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.0.8
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-26 00:00:00.000000000 Z
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/daily_cur_rates.txt
89
- - spec/fixtures/monthly_cur_rates_2013_3.txt
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/daily_cur_rates.txt
120
- - spec/fixtures/monthly_cur_rates_2013_3.txt
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