omni_exchange 1.9.0 → 3.0.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
2
  SHA256:
3
- metadata.gz: 2b8b209ec25ddad7e22d1aecc9c8073e6e41ac9e6121e29fcb15c1a240a86a80
4
- data.tar.gz: d31a7913b18dd4636d449e86f7bb059c2196026e360b2dbdc20e6376e91a96ae
3
+ metadata.gz: 4e7a0a1e7116627916f727e76a72725d406d52efedebbe33b55fbdcb53d0c5b8
4
+ data.tar.gz: 82afd092c8815d6be50fab43164318690bf5e223be1569bd5979bf84c32d5427
5
5
  SHA512:
6
- metadata.gz: 4e0c80da124045ae0ae12d4c874e464ba6084e399ca6b785bc8c23641a88169c9cb1548f90fd4c7e563a48d31f633568b4a0d3545f0d80e98494931e163f985f
7
- data.tar.gz: '08705073d9dc0f158e67c067a021e122527e69851f7d62ce08cb494b30cc681399ef9567a820a9dcea2a1fae79f66d970ed0c3709c500a7fdf9114fcbc99abdc'
6
+ metadata.gz: b8e7bedb90d8ecde7b38048e0ab8c8d78aafabaed1312ae027c6d9ec293fb74998f56a490bf17b11c8e30c90acccdc0fc81260550ad9517449a0a76698cbba9d
7
+ data.tar.gz: 85ea6a9c88ca7cf97ff8e0c46cb455444406d534c25648840d0385e0119c6f0e4d6b016b3f28fad85705f31f918d9442b42099a092bb164177a6764db4301509
@@ -1,18 +1,24 @@
1
- name: Ruby
1
+ name: Ruby Tests
2
2
 
3
- on: [push,pull_request]
3
+ on: [push, pull_request]
4
4
 
5
5
  jobs:
6
- build:
6
+ test:
7
+ name: Ruby ${{ matrix.ruby-version }}
7
8
  runs-on: ubuntu-latest
9
+ strategy:
10
+ matrix:
11
+ ruby-version: ['3.1.1', '3.2.1', '3.3.1', '3.4.1']
12
+ fail-fast: false
8
13
  steps:
9
- - uses: actions/checkout@v2
10
- - name: Set up Ruby
14
+ - uses: actions/checkout@v4
15
+ - name: Set up Ruby ${{ matrix.ruby-version }}
11
16
  uses: ruby/setup-ruby@v1
12
17
  with:
13
- ruby-version: 2.7.3
14
- - name: Run the default task
15
- run: |
16
- gem install bundler -v 2.2.3
17
- bundle install
18
- bundle exec rake
18
+ ruby-version: ${{ matrix.ruby-version }}
19
+ bundler: '2.5.23'
20
+ - name: Install dependencies
21
+ run: bundle install
22
+
23
+ - name: Run tests
24
+ run: bundle exec rake
data/CHANGELOG.md ADDED
@@ -0,0 +1,16 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [3.0.0] - 2025-01-31
11
+
12
+ ### Changed
13
+
14
+ - Updated XE endpoint_url to use an alternative one as per their recommendation.
15
+ - Added dependencies and updated requires that were using ruby's standard library no longer supported since Ruby 3.0.0
16
+ - Supports Ruby versions 3.1, 3.2, 3.3, and 3.4.
data/Gemfile.lock CHANGED
@@ -1,53 +1,46 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- omni_exchange (1.9.0)
5
- faraday (< 2)
4
+ omni_exchange (3.0.0)
5
+ base64 (~> 0.2.0)
6
+ bigdecimal (~> 3)
7
+ faraday (~> 2)
6
8
  money (~> 6.13.1)
9
+ racc (~> 1.4)
10
+ stringio (~> 3.1.2)
7
11
 
8
12
  GEM
9
13
  remote: https://rubygems.org/
10
14
  specs:
11
15
  ast (2.4.2)
16
+ base64 (0.2.0)
17
+ bigdecimal (3.1.9)
12
18
  coderay (1.1.3)
13
- concurrent-ruby (1.2.2)
19
+ concurrent-ruby (1.3.5)
14
20
  diff-lcs (1.5.0)
15
21
  dotenv (2.8.1)
16
- faraday (1.10.3)
17
- faraday-em_http (~> 1.0)
18
- faraday-em_synchrony (~> 1.0)
19
- faraday-excon (~> 1.1)
20
- faraday-httpclient (~> 1.0)
21
- faraday-multipart (~> 1.0)
22
- faraday-net_http (~> 1.0)
23
- faraday-net_http_persistent (~> 1.0)
24
- faraday-patron (~> 1.0)
25
- faraday-rack (~> 1.0)
26
- faraday-retry (~> 1.0)
27
- ruby2_keywords (>= 0.0.4)
28
- faraday-em_http (1.0.0)
29
- faraday-em_synchrony (1.0.0)
30
- faraday-excon (1.1.0)
31
- faraday-httpclient (1.0.1)
32
- faraday-multipart (1.0.4)
33
- multipart-post (~> 2)
34
- faraday-net_http (1.0.1)
35
- faraday-net_http_persistent (1.2.0)
36
- faraday-patron (1.0.0)
37
- faraday-rack (1.0.0)
38
- faraday-retry (1.0.3)
39
- i18n (1.14.1)
22
+ faraday (2.12.2)
23
+ faraday-net_http (>= 2.0, < 3.5)
24
+ json
25
+ logger
26
+ faraday-net_http (3.4.0)
27
+ net-http (>= 0.5.0)
28
+ i18n (1.14.7)
40
29
  concurrent-ruby (~> 1.0)
30
+ json (2.9.1)
31
+ logger (1.6.5)
41
32
  method_source (1.0.0)
42
33
  money (6.13.8)
43
34
  i18n (>= 0.6.4, <= 2)
44
- multipart-post (2.3.0)
35
+ net-http (0.6.0)
36
+ uri
45
37
  parallel (1.22.1)
46
38
  parser (3.1.2.1)
47
39
  ast (~> 2.4.1)
48
40
  pry (0.14.1)
49
41
  coderay (~> 1.1)
50
42
  method_source (~> 1.0)
43
+ racc (1.8.1)
51
44
  rainbow (3.1.1)
52
45
  rake (12.3.3)
53
46
  regexp_parser (2.5.0)
@@ -77,8 +70,9 @@ GEM
77
70
  rubocop-ast (1.21.0)
78
71
  parser (>= 3.1.1.0)
79
72
  ruby-progressbar (1.11.0)
80
- ruby2_keywords (0.0.5)
73
+ stringio (3.1.2)
81
74
  unicode-display_width (1.8.0)
75
+ uri (1.0.2)
82
76
  vcr (6.1.0)
83
77
 
84
78
  PLATFORMS
@@ -95,4 +89,4 @@ DEPENDENCIES
95
89
  vcr
96
90
 
97
91
  BUNDLED WITH
98
- 2.3.9
92
+ 2.6.3
@@ -4,7 +4,7 @@ require 'omni_exchange'
4
4
 
5
5
  module OmniExchange
6
6
  class Xe < Provider
7
- ENDPOINT_URL = 'https://xecdapi.xe.com/'
7
+ ENDPOINT_URL = 'https://xecd-api-ssl.xe.com/'
8
8
 
9
9
  class << self
10
10
  # This method returns the exchange rate, the rate at which the smallest unit of one currency (the base currency)
@@ -77,7 +77,7 @@ module OmniExchange
77
77
  api_key = config[:api_key]
78
78
 
79
79
  Faraday.new(OmniExchange::Xe::ENDPOINT_URL) do |f|
80
- f.request :basic_auth, api_id, api_key
80
+ f.set_basic_auth api_id, api_key
81
81
  f.adapter :net_http
82
82
  end
83
83
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OmniExchange
4
- VERSION = '1.9.0'
4
+ VERSION = '3.0.0'
5
5
  end
data/lib/omni_exchange.rb CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'omni_exchange/provider'
4
4
  # in order to make sure that all API data providers are registered correctly,
5
- # all of the provider files in the providers folder must be required
5
+ # all of the provider files in the providers folder must be required
6
6
  require 'omni_exchange/providers/open_exchange_rates'
7
7
  require 'omni_exchange/providers/xe'
8
8
  require 'omni_exchange/version'
@@ -11,7 +11,7 @@ require 'omni_exchange/error'
11
11
  require 'faraday'
12
12
  require 'money'
13
13
  require 'json'
14
- require 'bigdecimal/util'
14
+ require 'bigdecimal'
15
15
  require 'net/http'
16
16
 
17
17
  # rubocop:disable Lint/Syntax
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative 'lib/omni_exchange/version'
4
4
 
5
+ # rubocop:disable Metrics/BlockLength
5
6
  Gem::Specification.new do |spec|
6
7
  spec.name = 'omni_exchange'
7
8
  spec.version = OmniExchange::VERSION
@@ -12,7 +13,7 @@ Gem::Specification.new do |spec|
12
13
  spec.description = 'OmniExchange converts currencies using up-to-the-minute foreign exchange rates.'
13
14
  spec.homepage = 'https://degica.com'
14
15
  spec.license = 'MIT'
15
- spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
16
+ spec.required_ruby_version = Gem::Requirement.new('>= 3.1')
16
17
 
17
18
  spec.metadata['allowed_push_host'] = 'https://rubygems.org'
18
19
 
@@ -27,8 +28,12 @@ Gem::Specification.new do |spec|
27
28
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
28
29
  spec.require_paths = ['lib']
29
30
 
30
- spec.add_dependency 'faraday', '< 2'
31
+ spec.add_dependency 'base64', '~> 0.2.0'
32
+ spec.add_dependency 'bigdecimal', '~> 3'
33
+ spec.add_dependency 'faraday', '~> 2'
31
34
  spec.add_dependency 'money', '~> 6.13.1'
35
+ spec.add_dependency 'racc', '~> 1.4'
36
+ spec.add_dependency 'stringio', '~> 3.1.2'
32
37
 
33
38
  spec.add_development_dependency 'dotenv'
34
39
  spec.add_development_dependency 'pry'
@@ -37,3 +42,4 @@ Gem::Specification.new do |spec|
37
42
  spec.add_development_dependency 'rubocop', '~> 0.80'
38
43
  spec.add_development_dependency 'vcr'
39
44
  end
45
+ # rubocop:enable Metrics/BlockLength
metadata CHANGED
@@ -1,27 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omni_exchange
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yun Chung
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-07 00:00:00.000000000 Z
11
+ date: 2025-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: base64
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.2.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: bigdecimal
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: faraday
15
43
  requirement: !ruby/object:Gem::Requirement
16
44
  requirements:
17
- - - "<"
45
+ - - "~>"
18
46
  - !ruby/object:Gem::Version
19
47
  version: '2'
20
48
  type: :runtime
21
49
  prerelease: false
22
50
  version_requirements: !ruby/object:Gem::Requirement
23
51
  requirements:
24
- - - "<"
52
+ - - "~>"
25
53
  - !ruby/object:Gem::Version
26
54
  version: '2'
27
55
  - !ruby/object:Gem::Dependency
@@ -38,6 +66,34 @@ dependencies:
38
66
  - - "~>"
39
67
  - !ruby/object:Gem::Version
40
68
  version: 6.13.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: racc
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.4'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.4'
83
+ - !ruby/object:Gem::Dependency
84
+ name: stringio
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 3.1.2
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 3.1.2
41
97
  - !ruby/object:Gem::Dependency
42
98
  name: dotenv
43
99
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +192,7 @@ files:
136
192
  - ".rspec"
137
193
  - ".rubocop.yml"
138
194
  - ".rubocop_todo.yml"
195
+ - CHANGELOG.md
139
196
  - CODE_OF_CONDUCT.md
140
197
  - Gemfile
141
198
  - Gemfile.lock
@@ -168,14 +225,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
225
  requirements:
169
226
  - - ">="
170
227
  - !ruby/object:Gem::Version
171
- version: 2.3.0
228
+ version: '3.1'
172
229
  required_rubygems_version: !ruby/object:Gem::Requirement
173
230
  requirements:
174
231
  - - ">="
175
232
  - !ruby/object:Gem::Version
176
233
  version: '0'
177
234
  requirements: []
178
- rubygems_version: 3.3.26
235
+ rubygems_version: 3.4.19
179
236
  signing_key:
180
237
  specification_version: 4
181
238
  summary: OmniExchange converts currencies using up-to-the-minute foreign exchange