money-json-rates 0.0.2 → 0.0.3
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.
- checksums.yaml +4 -4
- data/lib/money/bank/json_rates.rb +1 -1
- data/spec/json_rates_spec.rb +72 -0
- data/spec/spec_helper.rb +3 -0
- metadata +33 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b63e5f5f41854159f3ecb37f9991e5891898fe5
|
4
|
+
data.tar.gz: 96fc0b87e080bff3f62c30ebc4e3afa2efa1b2b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b37c69c827bcfb47886bf95cf8bfae6642ca143546c6d9e81a059689fbd019648262af044270f0faf6b90e41a658b0bda503e3552b266114cdded18be45a91e
|
7
|
+
data.tar.gz: 41f5fa8841aa3f436539326d7c024a380a356a45c5222493ec9349ccf24db5e8151b55cc048c9a4ab0fabf18de911ce726ef0213433da5f7331cb5670c96af62
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "JsonRates" do
|
4
|
+
before :each do
|
5
|
+
@bank = Money::Bank::JsonRates.new
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should accept a ttl_in_seconds option" do
|
9
|
+
Money::Bank::JsonRates.ttl_in_seconds = 86400
|
10
|
+
expect(Money::Bank::JsonRates.ttl_in_seconds).to eq(86400)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe ".refresh_rates_expiration!" do
|
14
|
+
it "set the .rates_expiration using the TTL and the current time" do
|
15
|
+
Money::Bank::JsonRates.ttl_in_seconds = 86400
|
16
|
+
new_time = Time.now
|
17
|
+
Timecop.freeze(new_time)
|
18
|
+
Money::Bank::JsonRates.refresh_rates_expiration!
|
19
|
+
expect(Money::Bank::JsonRates.rates_expiration).to eq(new_time + 86400)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe ".flush_rates" do
|
24
|
+
it "should empty @rates" do
|
25
|
+
@bank.add_rate("USD", "CAD", 1.24515)
|
26
|
+
@bank.flush_rates
|
27
|
+
expect(@bank.rates).to eq({})
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe ".flush_rate" do
|
32
|
+
it "should remove a specific rate from @rates" do
|
33
|
+
@bank.add_rate('USD', 'EUR', 1.4)
|
34
|
+
@bank.add_rate('USD', 'JPY', 0.3)
|
35
|
+
@bank.flush_rate('USD', 'EUR')
|
36
|
+
expect(@bank.rates).to include('USD_TO_JPY')
|
37
|
+
expect(@bank.rates).to_not include('USD_TO_EUR')
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe ".expire_rates" do
|
42
|
+
before do
|
43
|
+
Money::Bank::JsonRates.ttl_in_seconds = 1000
|
44
|
+
end
|
45
|
+
|
46
|
+
context "when the ttl has expired" do
|
47
|
+
before do
|
48
|
+
new_time = Time.now + 1001
|
49
|
+
Timecop.freeze(new_time)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should flush all rates" do
|
53
|
+
expect(@bank).to receive(:flush_rates)
|
54
|
+
@bank.expire_rates
|
55
|
+
end
|
56
|
+
|
57
|
+
it "updates the next expiration time" do
|
58
|
+
exp_time = Time.now + 1000
|
59
|
+
|
60
|
+
@bank.expire_rates
|
61
|
+
expect(Money::Bank::JsonRates.rates_expiration).to eq(exp_time)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "when the ttl has not expired" do
|
66
|
+
it "not should flush all rates" do
|
67
|
+
expect(@bank).to_not receive(:flush_rates)
|
68
|
+
@bank.expire_rates
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: money-json-rates
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrey Skuratovsky
|
@@ -38,8 +38,36 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 3.0.0
|
41
|
-
|
42
|
-
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.7'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.7'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.0'
|
69
|
+
description: JsonRates extends Money::Bank::Base and gives access to the current exchange
|
70
|
+
rates using http://jsonrates.com/ api.
|
43
71
|
email:
|
44
72
|
- skuratowsky@gmail.com
|
45
73
|
executables: []
|
@@ -47,6 +75,8 @@ extensions: []
|
|
47
75
|
extra_rdoc_files: []
|
48
76
|
files:
|
49
77
|
- lib/money/bank/json_rates.rb
|
78
|
+
- spec/json_rates_spec.rb
|
79
|
+
- spec/spec_helper.rb
|
50
80
|
homepage: http://github.com/askuratovsky/money-json-rates
|
51
81
|
licenses:
|
52
82
|
- MIT
|