nbp_exchange 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: