eu_central_bank 0.3.0 → 0.3.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.
- data/lib/eu_central_bank.rb +25 -6
- metadata +38 -13
data/lib/eu_central_bank.rb
CHANGED
@@ -7,16 +7,13 @@ class InvalidCache < StandardError ; end
|
|
7
7
|
|
8
8
|
class EuCentralBank < Money::Bank::VariableExchange
|
9
9
|
|
10
|
+
attr_accessor :last_updated
|
11
|
+
|
10
12
|
ECB_RATES_URL = 'http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml'
|
11
13
|
CURRENCIES = %w(USD JPY BGN CZK DKK GBP HUF LTL LVL PLN RON SEK CHF NOK HRK RUB TRY AUD BRL CAD CNY HKD IDR INR KRW MXN MYR NZD PHP SGD THB ZAR)
|
12
14
|
|
13
15
|
def update_rates(cache=nil)
|
14
|
-
exchange_rates(cache)
|
15
|
-
rate = exchange_rate.attribute("rate").value.to_f
|
16
|
-
currency = exchange_rate.attribute("currency").value
|
17
|
-
add_rate("EUR", currency, rate)
|
18
|
-
end
|
19
|
-
add_rate("EUR", "EUR", 1)
|
16
|
+
update_parsed_rates(exchange_rates(cache))
|
20
17
|
end
|
21
18
|
|
22
19
|
def save_rates(cache)
|
@@ -27,6 +24,14 @@ class EuCentralBank < Money::Bank::VariableExchange
|
|
27
24
|
end
|
28
25
|
end
|
29
26
|
|
27
|
+
def update_rates_from_s(content)
|
28
|
+
update_parsed_rates(exchange_rates_from_s(content))
|
29
|
+
end
|
30
|
+
|
31
|
+
def save_rates_to_s
|
32
|
+
open(ECB_RATES_URL).read
|
33
|
+
end
|
34
|
+
|
30
35
|
def exchange(cents, from_currency, to_currency)
|
31
36
|
exchange_with(Money.new(cents, from_currency), to_currency)
|
32
37
|
end
|
@@ -49,4 +54,18 @@ class EuCentralBank < Money::Bank::VariableExchange
|
|
49
54
|
doc.xpath('gesmes:Envelope/xmlns:Cube/xmlns:Cube//xmlns:Cube')
|
50
55
|
end
|
51
56
|
|
57
|
+
def exchange_rates_from_s(content)
|
58
|
+
doc = Nokogiri::XML(content)
|
59
|
+
doc.xpath('gesmes:Envelope/xmlns:Cube/xmlns:Cube//xmlns:Cube')
|
60
|
+
end
|
61
|
+
|
62
|
+
def update_parsed_rates(rates)
|
63
|
+
rates.each do |exchange_rate|
|
64
|
+
rate = exchange_rate.attribute("rate").value.to_f
|
65
|
+
currency = exchange_rate.attribute("currency").value
|
66
|
+
add_rate("EUR", currency, rate)
|
67
|
+
end
|
68
|
+
add_rate("EUR", "EUR", 1)
|
69
|
+
@last_updated = Time.now
|
70
|
+
end
|
52
71
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eu_central_bank
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,11 +11,11 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-
|
14
|
+
date: 2012-05-06 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: nokogiri
|
18
|
-
requirement:
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ! '>='
|
@@ -23,10 +23,15 @@ dependencies:
|
|
23
23
|
version: '0'
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements:
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ! '>='
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '0'
|
27
32
|
- !ruby/object:Gem::Dependency
|
28
33
|
name: money
|
29
|
-
requirement:
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
30
35
|
none: false
|
31
36
|
requirements:
|
32
37
|
- - ~>
|
@@ -34,10 +39,15 @@ dependencies:
|
|
34
39
|
version: 4.0.1
|
35
40
|
type: :runtime
|
36
41
|
prerelease: false
|
37
|
-
version_requirements:
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 4.0.1
|
38
48
|
- !ruby/object:Gem::Dependency
|
39
49
|
name: rspec
|
40
|
-
requirement:
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
41
51
|
none: false
|
42
52
|
requirements:
|
43
53
|
- - ! '>='
|
@@ -45,10 +55,15 @@ dependencies:
|
|
45
55
|
version: 2.0.0
|
46
56
|
type: :development
|
47
57
|
prerelease: false
|
48
|
-
version_requirements:
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 2.0.0
|
49
64
|
- !ruby/object:Gem::Dependency
|
50
65
|
name: rr
|
51
|
-
requirement:
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
52
67
|
none: false
|
53
68
|
requirements:
|
54
69
|
- - ! '>='
|
@@ -56,10 +71,15 @@ dependencies:
|
|
56
71
|
version: '0'
|
57
72
|
type: :development
|
58
73
|
prerelease: false
|
59
|
-
version_requirements:
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '0'
|
60
80
|
- !ruby/object:Gem::Dependency
|
61
81
|
name: shoulda
|
62
|
-
requirement:
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
63
83
|
none: false
|
64
84
|
requirements:
|
65
85
|
- - ! '>='
|
@@ -67,7 +87,12 @@ dependencies:
|
|
67
87
|
version: '0'
|
68
88
|
type: :development
|
69
89
|
prerelease: false
|
70
|
-
version_requirements:
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
71
96
|
description: This gem reads exchange rates from the european central bank website.
|
72
97
|
It uses it to calculates exchange rates. It is compatible with the money gem
|
73
98
|
email:
|
@@ -100,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
125
|
version: 1.3.6
|
101
126
|
requirements: []
|
102
127
|
rubyforge_project:
|
103
|
-
rubygems_version: 1.8.
|
128
|
+
rubygems_version: 1.8.21
|
104
129
|
signing_key:
|
105
130
|
specification_version: 3
|
106
131
|
summary: Calculates exchange rates based on rates from european central bank. Money
|