oxr 0.4.0 → 0.5.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 +5 -5
- data/.travis.yml +2 -3
- data/CHANGELOG.md +5 -0
- data/README.md +15 -13
- data/Rakefile +4 -4
- data/bin/console +3 -3
- data/lib/oxr.rb +7 -9
- data/lib/oxr/configuration.rb +12 -10
- data/lib/oxr/version.rb +1 -1
- data/oxr.gemspec +13 -13
- metadata +18 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 66eacf6ebbb7f1ae8119dee57fc9f567c091bf9dcfc56991503e75feeb88e141
|
4
|
+
data.tar.gz: a1f43993c6a057ffbd668ef67fb126e6046fcf53897e1d16d001c9c023a8d9d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a24056f9f8345d88faf2e7bbabd554186c6f6811d00affaca19a6a7d75fcc00cdaafd0da6dc998728de7925bca59e1119d146040e19dd36761e7bf7cd0cf9f3
|
7
|
+
data.tar.gz: 80878e29a28157acf0571402db5669c1ec817a5e74a143f116df482c098d2bb1d77528e0b361777ac50bc665eb17605d653a588668bcafb9e9db3feed467ec59
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -33,6 +33,7 @@ Configure OXR with your App ID by calling `OXR.configure`:
|
|
33
33
|
```ruby
|
34
34
|
OXR.configure do |config|
|
35
35
|
config.app_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
|
36
|
+
# config.base = 'USD'
|
36
37
|
end
|
37
38
|
```
|
38
39
|
|
@@ -72,20 +73,21 @@ OXR.latest
|
|
72
73
|
|
73
74
|
This will return a JSON object with a structure similar to the following:
|
74
75
|
|
75
|
-
```
|
76
|
+
```ruby
|
76
77
|
{
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
"
|
84
|
-
"
|
85
|
-
|
86
|
-
|
87
|
-
"
|
88
|
-
"
|
78
|
+
"disclaimer"=>"Usage subject to terms: https://openexchangerates.org/terms",
|
79
|
+
"license"=>"https://openexchangerates.org/license",
|
80
|
+
"timestamp"=>1512842416,
|
81
|
+
"base"=>"USD",
|
82
|
+
"rates"=>
|
83
|
+
{
|
84
|
+
"AED"=>3.673097,
|
85
|
+
"AFN"=>68.693,
|
86
|
+
"ALL"=>113.595865,
|
87
|
+
# ...
|
88
|
+
"ZAR"=>13.65526,
|
89
|
+
"ZMW"=>10.243477,
|
90
|
+
"ZWL"=>322.355011
|
89
91
|
}
|
90
92
|
}
|
91
93
|
```
|
data/Rakefile
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
2
|
+
require 'rake/testtask'
|
3
3
|
|
4
4
|
Rake::TestTask.new(:test) do |t|
|
5
|
-
t.libs <<
|
6
|
-
t.libs <<
|
5
|
+
t.libs << 'test'
|
6
|
+
t.libs << 'lib'
|
7
7
|
t.test_files = FileList['test/**/*_test.rb']
|
8
8
|
end
|
9
9
|
|
data/bin/console
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'oxr'
|
5
5
|
|
6
6
|
# You can add fixtures and/or initialization code here to make experimenting
|
7
7
|
# with your gem easier. You can also use a different console, if you like.
|
8
8
|
|
9
9
|
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
require
|
10
|
+
require 'pry'
|
11
11
|
Pry.start
|
12
12
|
|
13
13
|
# require "irb"
|
data/lib/oxr.rb
CHANGED
@@ -19,14 +19,14 @@ module OXR
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def response
|
22
|
-
@response ||= JSON.
|
22
|
+
@response ||= JSON.parse cause.io.read
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
class << self
|
27
27
|
def new(app_id)
|
28
|
-
warn '[DEPRECATION WARNING] OXR.new is
|
29
|
-
" Use OXR class methods instead (from #{caller.first})."
|
28
|
+
warn '[DEPRECATION WARNING] OXR.new is deprecated.' \
|
29
|
+
" Use OXR class methods instead (from #{caller(1..1).first})."
|
30
30
|
configure do |config|
|
31
31
|
config.app_id = app_id
|
32
32
|
end
|
@@ -42,7 +42,7 @@ module OXR
|
|
42
42
|
data['rates'][code.to_s]
|
43
43
|
end
|
44
44
|
|
45
|
-
|
45
|
+
alias [] get_rate
|
46
46
|
|
47
47
|
def currencies
|
48
48
|
call configuration.currencies
|
@@ -61,9 +61,7 @@ module OXR
|
|
61
61
|
end
|
62
62
|
|
63
63
|
def reset_sources
|
64
|
-
configure
|
65
|
-
config.reset_sources
|
66
|
-
end
|
64
|
+
configure(&:reset_sources)
|
67
65
|
end
|
68
66
|
|
69
67
|
def configure
|
@@ -78,9 +76,9 @@ module OXR
|
|
78
76
|
private
|
79
77
|
|
80
78
|
def call(endpoint)
|
81
|
-
JSON.
|
79
|
+
JSON.parse(open(endpoint).read)
|
82
80
|
rescue OpenURI::HTTPError => e
|
83
|
-
raise ApiError
|
81
|
+
raise ApiError, e
|
84
82
|
end
|
85
83
|
end
|
86
84
|
end
|
data/lib/oxr/configuration.rb
CHANGED
@@ -2,33 +2,35 @@ require 'uri'
|
|
2
2
|
|
3
3
|
module OXR
|
4
4
|
class Configuration
|
5
|
-
ENDPOINT = 'https://openexchangerates.org/api/'
|
5
|
+
ENDPOINT = 'https://openexchangerates.org/api/'.freeze
|
6
6
|
|
7
|
-
attr_accessor :app_id
|
7
|
+
attr_accessor :app_id, :base
|
8
8
|
attr_writer :currencies, :historical, :latest, :usage
|
9
9
|
|
10
10
|
def currencies
|
11
|
-
@currencies || URI.join(ENDPOINT, 'currencies.json').tap
|
11
|
+
@currencies || URI.join(ENDPOINT, 'currencies.json').tap do |uri|
|
12
12
|
uri.query = "app_id=#{app_id}"
|
13
|
-
|
13
|
+
end.to_s
|
14
14
|
end
|
15
15
|
|
16
16
|
def historical(date)
|
17
|
-
@historical || URI.join(ENDPOINT, "historical/#{date.strftime('%F')}.json").tap
|
17
|
+
@historical || URI.join(ENDPOINT, "historical/#{date.strftime('%F')}.json").tap do |uri|
|
18
18
|
uri.query = "app_id=#{app_id}"
|
19
|
-
|
19
|
+
uri.query += "&base=#{base}" if base
|
20
|
+
end.to_s
|
20
21
|
end
|
21
22
|
|
22
23
|
def latest
|
23
|
-
@latest || URI.join(ENDPOINT, 'latest.json').tap
|
24
|
+
@latest || URI.join(ENDPOINT, 'latest.json').tap do |uri|
|
24
25
|
uri.query = "app_id=#{app_id}"
|
25
|
-
|
26
|
+
uri.query += "&base=#{base}" if base
|
27
|
+
end.to_s
|
26
28
|
end
|
27
29
|
|
28
30
|
def usage
|
29
|
-
@usage || URI.join(ENDPOINT, 'usage.json').tap
|
31
|
+
@usage || URI.join(ENDPOINT, 'usage.json').tap do |uri|
|
30
32
|
uri.query = "app_id=#{app_id}"
|
31
|
-
|
33
|
+
end.to_s
|
32
34
|
end
|
33
35
|
|
34
36
|
def reset_sources
|
data/lib/oxr/version.rb
CHANGED
data/oxr.gemspec
CHANGED
@@ -1,31 +1,31 @@
|
|
1
|
-
|
1
|
+
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
4
|
require 'oxr/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'oxr'
|
8
8
|
spec.version = OXR::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['John Parker']
|
10
|
+
spec.email = ['jparker@urgetopunt.com']
|
11
11
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
12
|
+
spec.summary = 'Interface for Open Exchange Rates API.'
|
13
|
+
spec.description = 'A ruby interface to the Open Exchange Rates API.'
|
14
|
+
spec.homepage = 'https://github.com/jparker/oxr'
|
15
|
+
spec.license = 'MIT'
|
16
16
|
|
17
17
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
-
spec.bindir =
|
18
|
+
spec.bindir = 'exe'
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
|
-
spec.require_paths = [
|
20
|
+
spec.require_paths = ['lib']
|
21
21
|
|
22
22
|
spec.required_ruby_version = '>= 2.1'
|
23
23
|
|
24
|
-
spec.add_development_dependency
|
25
|
-
spec.add_development_dependency
|
26
|
-
spec.add_development_dependency "minitest", "~> 5.0"
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.11'
|
25
|
+
spec.add_development_dependency 'minitest', '~> 5.0'
|
27
26
|
spec.add_development_dependency 'minitest-focus'
|
28
27
|
spec.add_development_dependency 'pry'
|
28
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
29
29
|
spec.add_development_dependency 'webmock', '~> 2.3'
|
30
30
|
|
31
31
|
spec.add_dependency 'json'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oxr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Parker
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.11'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rake
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '10.0'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '10.0'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: minitest
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +66,20 @@ dependencies:
|
|
80
66
|
- - ">="
|
81
67
|
- !ruby/object:Gem::Version
|
82
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '10.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '10.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: webmock
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -117,6 +117,7 @@ extra_rdoc_files: []
|
|
117
117
|
files:
|
118
118
|
- ".gitignore"
|
119
119
|
- ".travis.yml"
|
120
|
+
- CHANGELOG.md
|
120
121
|
- Gemfile
|
121
122
|
- LICENSE.txt
|
122
123
|
- README.md
|
@@ -147,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
148
|
version: '0'
|
148
149
|
requirements: []
|
149
150
|
rubyforge_project:
|
150
|
-
rubygems_version: 2.
|
151
|
+
rubygems_version: 2.7.3
|
151
152
|
signing_key:
|
152
153
|
specification_version: 4
|
153
154
|
summary: Interface for Open Exchange Rates API.
|