nbp_exchange 0.0.1 → 0.0.2

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.
@@ -2,9 +2,13 @@
2
2
  module NbpExchange
3
3
 
4
4
  class Currency
5
- CurrencieNames = {
5
+ SymbolsNames = {
6
6
  'eur' => 'Euro',
7
- 'usd' => 'Dolar amerykański'
7
+ 'usd' => 'Dolar amerykański',
8
+ 'chf' => 'Frank szwajcarski',
9
+ 'gbp' => 'Funt szterling',
10
+ 'czk' => 'Korona czeska',
11
+ 'jpy' => 'jen (Japonia)'
8
12
  }
9
13
 
10
14
  attr_reader :symbol
@@ -14,11 +18,11 @@ module NbpExchange
14
18
  end
15
19
 
16
20
  def name
17
- @name ||= CurrencieNames[symbol]
21
+ @name ||= SymbolsNames[symbol]
18
22
  end
19
23
 
20
24
  def rate(date)
21
- @rate ||= load_rate(date)
25
+ @rate = load_rate(date)
22
26
  end
23
27
 
24
28
  def self.available_currency_keys
@@ -16,7 +16,10 @@ module NbpExchange
16
16
  def xml_name
17
17
  page = open(dir_url)
18
18
  doc = Nokogiri::HTML(page.read)
19
- name = doc.text[/^#{@date.to_s}.+/][/(\w+.xml)/, 1]
19
+
20
+ date_row = doc.text[/^#{@date.to_s}.+/]
21
+ name = date_row ? date_row[/(\w+.xml)/, 1] : nil
22
+
20
23
  raise NoXMLForThisDate if name.nil? || name.empty?
21
24
  name
22
25
  end
@@ -1,3 +1,3 @@
1
1
  module NbpExchange
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -12,11 +12,23 @@ module NbpExchange
12
12
  end
13
13
 
14
14
  describe "#rate" do
15
- let(:expected){Rate.new(currency, EXCHANGE_DATE, 4.4146)}
15
+ context "When rate exists" do
16
+ let(:expected){Rate.new(currency, EXCHANGE_DATE, 4.4146)}
17
+
18
+ it "should return average rate for given date" do
19
+ r = currency.rate(EXCHANGE_DATE)
20
+ r.average_exchange_rate.should == expected.average_exchange_rate
21
+ end
22
+ end
23
+
24
+ context "when rate doesn't exists for this date" do
25
+
26
+ it "should raise error" do
27
+ lambda {
28
+ r = currency.rate("2001-01-01")
29
+ }.should raise_error(NbpExchange::NoXMLForThisDate)
30
+ end
16
31
 
17
- it "should return average rate for given date" do
18
- r = currency.rate(EXCHANGE_DATE)
19
- r.average_exchange_rate.should == expected.average_exchange_rate
20
32
  end
21
33
  end
22
34
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nbp_exchange
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-08 00:00:00.000000000Z
12
+ date: 2011-11-09 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
16
- requirement: &2155739640 !ruby/object:Gem::Requirement
16
+ requirement: &2157147220 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2155739640
24
+ version_requirements: *2157147220
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &2155738980 !ruby/object:Gem::Requirement
27
+ requirement: &2157145600 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2155738980
35
+ version_requirements: *2157145600
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: vcr
38
- requirement: &2155738360 !ruby/object:Gem::Requirement
38
+ requirement: &2157144260 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2155738360
46
+ version_requirements: *2157144260
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: fakeweb
49
- requirement: &2155737580 !ruby/object:Gem::Requirement
49
+ requirement: &2157143560 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2155737580
57
+ version_requirements: *2157143560
58
58
  description: ! 'Get average exchange rate for PLN polski zloty from specific date.
59
59
  This lib wraps http://rss.nbp.pl/kursy/xml2/2011/a/dir.aspx site. '
60
60
  email: