money-open-exchange-rates 0.0.1 → 0.0.2

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