money-oxr 0.2.0 → 0.3.0
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/CHANGELOG.md +7 -0
- data/README.md +9 -13
- data/lib/money_oxr/rates_store.rb +3 -5
- data/money-oxr.gemspec +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d40cd83560c6539f8aab07757780f58fe9fa78d
|
4
|
+
data.tar.gz: 100dfdab0c1e84cfe0bbe736913aca1bb2382571
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b985081fda88720bede03904f2533002a66d09da3eaa0c085e198267c69103d3e812c1f582f07731c5db9c2bda87c3bc942ea5e85b5263ae3ecc21839d2dc42
|
7
|
+
data.tar.gz: f6e6bef059fb61f9828bb4eb91557f50a4d3530a1dfe6dc31c5c57a580f8c1ef7ce8afba05cd597d64a4ba954ce5a9f42221f9b226624f51befe5c76853ac55e
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,13 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
5
5
|
[How to use a CHANGELOG](http://keepachangelog.com/)
|
6
6
|
|
7
|
+
## [Unreleased]
|
8
|
+
|
9
|
+
## [0.3.0] - 2018-03-21
|
10
|
+
### Changed
|
11
|
+
- Return nil in RateStore if rate is unknown.
|
12
|
+
- Updated Money dependency to ~> 6.6
|
13
|
+
|
7
14
|
## [0.2.0] - 2018-03-19
|
8
15
|
### Added
|
9
16
|
- Added safe handling of API request errors.
|
data/README.md
CHANGED
@@ -28,17 +28,15 @@ Or install it yourself as:
|
|
28
28
|
|
29
29
|
With the gem, you do not need to manually add exchange rates. Calling load will
|
30
30
|
load the rates from the cache file or download the rates from the API depending
|
31
|
-
on your options.
|
31
|
+
on your options.
|
32
32
|
|
33
33
|
``` ruby
|
34
34
|
require 'money_oxr/bank'
|
35
|
-
|
35
|
+
Money.default_bank = MoneyOXR::Bank.new(
|
36
36
|
app_id: 'abcd1234',
|
37
|
-
cache_path: '
|
37
|
+
cache_path: 'config/oxr.json',
|
38
38
|
max_age: 86400
|
39
39
|
)
|
40
|
-
oxr_bank.store.load
|
41
|
-
Money.default_bank = oxr_bank
|
42
40
|
```
|
43
41
|
|
44
42
|
If you only want to load data from a file without ever fetching from the API,
|
@@ -46,26 +44,24 @@ the :app_id and :max_age options are not necessary.
|
|
46
44
|
|
47
45
|
``` ruby
|
48
46
|
require 'money_oxr/bank'
|
49
|
-
|
47
|
+
Money.default_bank = MoneyOXR::Bank.new(
|
50
48
|
cache_path: 'config/oxr.json'
|
51
49
|
)
|
52
|
-
oxr_bank.store.load
|
53
|
-
Money.default_bank = oxr_bank
|
54
50
|
```
|
55
51
|
|
52
|
+
### :source
|
53
|
+
|
56
54
|
If you are on a paid plan from openexchangerates.org and you wish to use a different
|
57
|
-
source currency, you may provide it with the :source option.
|
55
|
+
source currency, you may provide it with the :source option. The default is `USD`.
|
58
56
|
|
59
57
|
``` ruby
|
60
58
|
require 'money_oxr/bank'
|
61
|
-
|
59
|
+
Money.default_bank = MoneyOXR::Bank.new(
|
62
60
|
app_id: 'abcd1234',
|
63
|
-
cache_path: '
|
61
|
+
cache_path: 'config/oxr.json',
|
64
62
|
max_age: 86400,
|
65
63
|
source: 'GBP'
|
66
64
|
)
|
67
|
-
oxr_bank.store.load
|
68
|
-
Money.default_bank = oxr_bank
|
69
65
|
```
|
70
66
|
|
71
67
|
## Development
|
@@ -6,8 +6,6 @@ require 'open-uri'
|
|
6
6
|
module MoneyOXR
|
7
7
|
class RatesStore < Money::RatesStore::Memory
|
8
8
|
|
9
|
-
class UnsupportedCurrency < StandardError; end
|
10
|
-
|
11
9
|
attr_reader :app_id, :source, :cache_path, :last_updated_at, :max_age, :on_api_failure
|
12
10
|
|
13
11
|
def initialize(*)
|
@@ -23,15 +21,15 @@ module MoneyOXR
|
|
23
21
|
load
|
24
22
|
super || begin
|
25
23
|
if iso_from == source
|
26
|
-
|
24
|
+
nil
|
27
25
|
elsif inverse_rate = super(iso_to, iso_from)
|
28
26
|
add_rate(iso_from, iso_to, 1 / inverse_rate)
|
29
27
|
elsif iso_to == source
|
30
|
-
|
28
|
+
nil
|
31
29
|
else
|
32
30
|
rate1 = get_rate(iso_from, source)
|
33
31
|
rate2 = get_rate(source, iso_to)
|
34
|
-
add_rate(iso_from, iso_to, rate1 * rate2)
|
32
|
+
rate1 && rate2 && add_rate(iso_from, iso_to, rate1 * rate2)
|
35
33
|
end
|
36
34
|
end
|
37
35
|
end
|
data/money-oxr.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "money-oxr"
|
5
|
-
spec.version = "0.
|
5
|
+
spec.version = "0.3.0"
|
6
6
|
spec.authors = ["Ed Lebert"]
|
7
7
|
|
8
8
|
spec.summary = %q{A Money-compatible rate store that uses exchange rates from openexchangerates.org.}
|
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
end
|
15
15
|
spec.require_paths = ["lib"]
|
16
16
|
|
17
|
-
spec.add_dependency "money", "~> 6.
|
17
|
+
spec.add_dependency "money", "~> 6.6"
|
18
18
|
|
19
19
|
spec.add_development_dependency "bundler", "~> 1.15"
|
20
20
|
spec.add_development_dependency "rake", "~> 10.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: money-oxr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ed Lebert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: money
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '6.
|
19
|
+
version: '6.6'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '6.
|
26
|
+
version: '6.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|