omni_exchange 2.0.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: 3ae87cd7a839738c4e8a91ff800a1c0f5867c74540b90bdc69d2d7e1091cae8c
4
- data.tar.gz: 84c043b737c6e7ad350dbedc02b4398059526f3ab39d282ee9d4f3cc07363653
3
+ metadata.gz: 4e7a0a1e7116627916f727e76a72725d406d52efedebbe33b55fbdcb53d0c5b8
4
+ data.tar.gz: 82afd092c8815d6be50fab43164318690bf5e223be1569bd5979bf84c32d5427
5
5
  SHA512:
6
- metadata.gz: bb39b4b6f07e8c7539055aa08e073b8a96c768537950b0c23053c03d978167f5c31d1ee3220125d41ca507d79a8956de7066f96041096d8d69f161a6a86a0fa4
7
- data.tar.gz: f4b145799b92ba721a559db9623e188a9957877b87bffe6e7a899f3bb57469273882790627ad9e74b6fe8c3f42efbc6f34cfdc8f39fbabce161a2cb9a99843e5
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,28 +1,38 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- omni_exchange (2.0.0)
4
+ omni_exchange (3.0.0)
5
+ base64 (~> 0.2.0)
6
+ bigdecimal (~> 3)
5
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.3)
19
+ concurrent-ruby (1.3.5)
14
20
  diff-lcs (1.5.0)
15
21
  dotenv (2.8.1)
16
- faraday (2.9.0)
17
- faraday-net_http (>= 2.0, < 3.2)
18
- faraday-net_http (3.1.0)
19
- net-http
20
- i18n (1.14.4)
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)
21
29
  concurrent-ruby (~> 1.0)
30
+ json (2.9.1)
31
+ logger (1.6.5)
22
32
  method_source (1.0.0)
23
33
  money (6.13.8)
24
34
  i18n (>= 0.6.4, <= 2)
25
- net-http (0.4.1)
35
+ net-http (0.6.0)
26
36
  uri
27
37
  parallel (1.22.1)
28
38
  parser (3.1.2.1)
@@ -30,6 +40,7 @@ GEM
30
40
  pry (0.14.1)
31
41
  coderay (~> 1.1)
32
42
  method_source (~> 1.0)
43
+ racc (1.8.1)
33
44
  rainbow (3.1.1)
34
45
  rake (12.3.3)
35
46
  regexp_parser (2.5.0)
@@ -59,8 +70,9 @@ GEM
59
70
  rubocop-ast (1.21.0)
60
71
  parser (>= 3.1.1.0)
61
72
  ruby-progressbar (1.11.0)
73
+ stringio (3.1.2)
62
74
  unicode-display_width (1.8.0)
63
- uri (0.13.0)
75
+ uri (1.0.2)
64
76
  vcr (6.1.0)
65
77
 
66
78
  PLATFORMS
@@ -77,4 +89,4 @@ DEPENDENCIES
77
89
  vcr
78
90
 
79
91
  BUNDLED WITH
80
- 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)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OmniExchange
4
- VERSION = '2.0.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
 
31
+ spec.add_dependency 'base64', '~> 0.2.0'
32
+ spec.add_dependency 'bigdecimal', '~> 3'
30
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,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omni_exchange
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.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: 2024-03-14 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
@@ -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.2.33
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