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 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