money-open-exchange-rates 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.
@@ -23,7 +23,7 @@ class Money
23
23
  end
24
24
 
25
25
  def save_rates
26
- raise InvalidCache unless cache
26
+ raise InvalidCache unless cache && File.exist?(cache)
27
27
  open(cache, 'w').write(open(OER_URL).read)
28
28
  end
29
29
 
@@ -43,8 +43,16 @@ class Money
43
43
 
44
44
  protected
45
45
 
46
+ def find_rates_source
47
+ if !!cache && File.exist?(cache)
48
+ @rates_source = cache
49
+ else
50
+ OER_URL
51
+ end
52
+ end
53
+
46
54
  def exchange_rates
47
- @rates_source = !!cache ? cache : OER_URL
55
+ @rates_source = find_rates_source
48
56
  @doc = Yajl::Parser.parse(open(rates_source).read)
49
57
  @oer_rates = @doc['rates']
50
58
  @doc['rates']
@@ -73,4 +73,22 @@ describe Money::Bank::OpenExchangeRatesBank do
73
73
  end
74
74
  end
75
75
 
76
+ describe 'no valid file for cache' do
77
+ include RR::Adapters::TestUnit
78
+ before do
79
+ @bank = Money::Bank::OpenExchangeRatesBank.new
80
+ @bank.cache = "space_dir#{rand(999999999)}/out_space_file.json"
81
+ end
82
+
83
+ it 'should get from url' do
84
+ stub(OpenURI::OpenRead).open(Money::Bank::OpenExchangeRatesBank::OER_URL) { File.read @cache_path }
85
+ @bank.update_rates
86
+ @bank.rates_source.must_equal Money::Bank::OpenExchangeRatesBank::OER_URL
87
+ end
88
+
89
+ it 'should raise an error if invalid path is given to save_rates' do
90
+ proc { @bank.save_rates }.must_raise Money::Bank::InvalidCache
91
+ end
92
+ end
93
+
76
94
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: money-open-exchange-rates
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-10-18 00:00:00.000000000Z
12
+ date: 2011-10-19 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: yajl-ruby
16
- requirement: &19606860 !ruby/object:Gem::Requirement
16
+ requirement: &9917460 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.8.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *19606860
24
+ version_requirements: *9917460
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: money
27
- requirement: &19605560 !ruby/object:Gem::Requirement
27
+ requirement: &9916040 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.7.1
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *19605560
35
+ version_requirements: *9916040
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: minitest
38
- requirement: &19604500 !ruby/object:Gem::Requirement
38
+ requirement: &9915020 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '2.0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *19604500
46
+ version_requirements: *9915020
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rr
49
- requirement: &19603220 !ruby/object:Gem::Requirement
49
+ requirement: &9913600 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 1.0.4
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *19603220
57
+ version_requirements: *9913600
58
58
  description: A gem that calculates the exchange rate using published rates from open-exchange-rates.
59
59
  Compatible with the money gem.
60
60
  email: laurent@spkdev.net