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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 387efd5944296a8914dfe3f5c8c8ff54d4089fe0
4
- data.tar.gz: 6ba3228cc4c48d2a8dc4a4526ea7272afb0df4d7
2
+ SHA256:
3
+ metadata.gz: 66eacf6ebbb7f1ae8119dee57fc9f567c091bf9dcfc56991503e75feeb88e141
4
+ data.tar.gz: a1f43993c6a057ffbd668ef67fb126e6046fcf53897e1d16d001c9c023a8d9d2
5
5
  SHA512:
6
- metadata.gz: 03d9f43350b618d6cbd56f7266f3ba86bb280cd83e0ac6342546596955e5cdbb331e852de00088f7e543d49a430695bb70d5b06016ef04208a49005a0c60ec95
7
- data.tar.gz: ec14398cdd653786cc2837552848df9f5d9867449205dd3e7630e03a8b29947b6de7015f3e23a69f2f7d863cce3df360bde0095775387946dae616bf16d3369f
6
+ metadata.gz: 6a24056f9f8345d88faf2e7bbabd554186c6f6811d00affaca19a6a7d75fcc00cdaafd0da6dc998728de7925bca59e1119d146040e19dd36761e7bf7cd0cf9f3
7
+ data.tar.gz: 80878e29a28157acf0571402db5669c1ec817a5e74a143f116df482c098d2bb1d77528e0b361777ac50bc665eb17605d653a588668bcafb9e9db3feed467ec59
@@ -1,7 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.10
4
- - 2.2.6
5
- - 2.3.3
3
+ - 2.2.7
4
+ - 2.3.4
6
5
  - 2.4.1
7
6
  before_install: gem install bundler -v 1.14.6
@@ -0,0 +1,5 @@
1
+ ## OXR 0.5.0 (December 16, 2017) ##
2
+
3
+ * Added `base` option for performing queries with custom base currencies.
4
+
5
+ *Techbrunch*
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
- ```json
76
+ ```ruby
76
77
  {
77
- "disclaimer": "…",
78
- "license": "",
79
- "timestamp": 1234567890,
80
- "base": "USD",
81
- "rates": {
82
- "AED": 3.672995,
83
- "AFN": 68.360001,
84
- "ALL": 123.0332,
85
- /* … */
86
- "ZMK": 5252.024745,
87
- "ZMW": 11.332275,
88
- "ZWL": 322.387247
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 "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
3
 
4
4
  Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
5
+ t.libs << 'test'
6
+ t.libs << 'lib'
7
7
  t.test_files = FileList['test/**/*_test.rb']
8
8
  end
9
9
 
@@ -1,13 +1,13 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "oxr"
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 "pry"
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.load cause.io
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 depr4ecated.' \
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
- alias_method :[], :get_rate
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 do |config|
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.load open endpoint
79
+ JSON.parse(open(endpoint).read)
82
80
  rescue OpenURI::HTTPError => e
83
- raise ApiError.new e
81
+ raise ApiError, e
84
82
  end
85
83
  end
86
84
  end
@@ -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 { |uri|
11
+ @currencies || URI.join(ENDPOINT, 'currencies.json').tap do |uri|
12
12
  uri.query = "app_id=#{app_id}"
13
- }.to_s
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 { |uri|
17
+ @historical || URI.join(ENDPOINT, "historical/#{date.strftime('%F')}.json").tap do |uri|
18
18
  uri.query = "app_id=#{app_id}"
19
- }.to_s
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 { |uri|
24
+ @latest || URI.join(ENDPOINT, 'latest.json').tap do |uri|
24
25
  uri.query = "app_id=#{app_id}"
25
- }.to_s
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 { |uri|
31
+ @usage || URI.join(ENDPOINT, 'usage.json').tap do |uri|
30
32
  uri.query = "app_id=#{app_id}"
31
- }.to_s
33
+ end.to_s
32
34
  end
33
35
 
34
36
  def reset_sources
@@ -1,3 +1,3 @@
1
1
  module OXR
2
- VERSION = "0.4.0"
2
+ VERSION = '0.5.0'.freeze
3
3
  end
@@ -1,31 +1,31 @@
1
- # coding: utf-8
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 = "oxr"
7
+ spec.name = 'oxr'
8
8
  spec.version = OXR::VERSION
9
- spec.authors = ["John Parker"]
10
- spec.email = ["jparker@urgetopunt.com"]
9
+ spec.authors = ['John Parker']
10
+ spec.email = ['jparker@urgetopunt.com']
11
11
 
12
- spec.summary = %q{Interface for Open Exchange Rates API.}
13
- spec.description = %q{A ruby interface to the Open Exchange Rates API.}
14
- spec.homepage = "https://github.com/jparker/oxr"
15
- spec.license = "MIT"
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 = "exe"
18
+ spec.bindir = 'exe'
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
21
21
 
22
22
  spec.required_ruby_version = '>= 2.1'
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.11"
25
- spec.add_development_dependency "rake", "~> 10.0"
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.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-03-29 00:00:00.000000000 Z
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.6.11
151
+ rubygems_version: 2.7.3
151
152
  signing_key:
152
153
  specification_version: 4
153
154
  summary: Interface for Open Exchange Rates API.