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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 65ad4a66cac1f91eace625bf55473fbae8356b2f
4
- data.tar.gz: a04375b33cfda6acff2cf067f0880c42cdaa0b48
3
+ metadata.gz: 1b63e5f5f41854159f3ecb37f9991e5891898fe5
4
+ data.tar.gz: 96fc0b87e080bff3f62c30ebc4e3afa2efa1b2b7
5
5
  SHA512:
6
- metadata.gz: 98957c324ccc5d62d1a34e578c47af66c371a156dea0e86afa099dcdde3e145c1ac1a6b9d55465620e44712852d00e69755f94589e62bb0f4061b0154a392ecb
7
- data.tar.gz: 94af90123b47dbee64d935833c2fc34200d0468d3d20cacd4b16864dd0df91492d313debf5925483a785d1d560cadc32a0b417f5766b100dbd52a4fc8c586990
6
+ metadata.gz: 7b37c69c827bcfb47886bf95cf8bfae6642ca143546c6d9e81a059689fbd019648262af044270f0faf6b90e41a658b0bda503e3552b266114cdded18be45a91e
7
+ data.tar.gz: 41f5fa8841aa3f436539326d7c024a380a356a45c5222493ec9349ccf24db5e8151b55cc048c9a4ab0fabf18de911ce726ef0213433da5f7331cb5670c96af62
@@ -141,7 +141,7 @@ class Money
141
141
  #
142
142
  # @return [URI::HTTP]
143
143
  def build_uri(from, to)
144
- raise NoApiKey if api_key.blank?
144
+ raise NoApiKey if api_key.nil? || api_key.blank?
145
145
  uri = URI::HTTP.build(
146
146
  :host => SERVICE_HOST,
147
147
  :path => SERVICE_PATH,
@@ -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
@@ -0,0 +1,3 @@
1
+ require 'timecop'
2
+ require 'money'
3
+ require 'money/bank/json_rates'
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.2
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
- description: MoneyJsonRates extends Money::Bank::Base and gives access to the current
42
- exchange rates using http://jsonrates.com/ api.
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