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
|
-
|
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 ||=
|
21
|
+
@name ||= SymbolsNames[symbol]
|
18
22
|
end
|
19
23
|
|
20
24
|
def rate(date)
|
21
|
-
@rate
|
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
|
-
|
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
|
data/lib/nbp_exchange/version.rb
CHANGED
@@ -12,11 +12,23 @@ module NbpExchange
|
|
12
12
|
end
|
13
13
|
|
14
14
|
describe "#rate" do
|
15
|
-
|
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.
|
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-
|
12
|
+
date: 2011-11-09 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
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: *
|
24
|
+
version_requirements: *2157147220
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
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: *
|
35
|
+
version_requirements: *2157145600
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: vcr
|
38
|
-
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: *
|
46
|
+
version_requirements: *2157144260
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: fakeweb
|
49
|
-
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: *
|
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:
|