money-openexchangerates-bank 0.1.2 → 0.2.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: 16a3dbd841e49f62e93f4852aeddd725e57de2e9937421d9593790d5347bfffe
4
- data.tar.gz: f400ea59ee1d8ae6b65b5e704b739ec7551897174410ecfbece20da06d4e0bd6
3
+ metadata.gz: 4498e13a45822f61f922f9c67bcc7afb691b9ab03b833cae8b199fc4894dd086
4
+ data.tar.gz: a58e8db08d219c37dc4c9b4da8bacdb1318ef93e623ea2e5b8c273e8874ad283
5
5
  SHA512:
6
- metadata.gz: da444777a24ae70cf8b9099deb0ae987544bd92fe1609f94901c600598464f6647fb2576ef5acdb9d124427dc027d2b4be839ed5835ae773c82a76273fef111c
7
- data.tar.gz: e8e960098d58ac54741000b883adcf112412b20ccbb30ac1ea6a7eca16be862afe6ff4a7564da440e111e9cc3ef09a5a27e0d4974f4314b1efe1f1cca2d94ac6
6
+ metadata.gz: 217ccded63ec3489ce1a99381f6bfa21d4e572a236d06147d47ce75586d3893952d12782f37e5172246105bb61ae77a230ceda7654ca5d537bdc9a0cdcf1b540
7
+ data.tar.gz: 9924c90ac64d7bc335f68c129a83281374e59021693a2c2b2757dfc15c032e4cb25250fb6d415d8c64056475a601f5b3d5fb26f1598db9c16cf59e7c5df744e3
data/README.md CHANGED
@@ -3,9 +3,8 @@
3
3
  [![Gem Version](https://badge.fury.io/rb/money-openexchangerates-bank.svg)](https://rubygems.org/gems/money-openexchangerates-bank)
4
4
  [![Gem](https://img.shields.io/gem/dt/money-openexchangerates-bank.svg?maxAge=2592000)](https://rubygems.org/gems/money-openexchangerates-bank)
5
5
  [![Build Status](https://secure.travis-ci.org/phlegx/money-openexchangerates-bank.svg?branch=master)](https://travis-ci.org/phlegx/money-openexchangerates-bank)
6
- [![Code Climate](http://img.shields.io/codeclimate/github/phlegx/money-openexchangerates-bank.svg)](https://codeclimate.com/github/phlegx/money-openexchangerates-bank)
7
- [![Inline Docs](http://inch-ci.org/github/phlegx/money-openexchangerates-bank.svg?branch=master)](http://inch-ci.org/github/phlegx/money-openexchangerates-bank)
8
- [![Dependency Status](https://gemnasium.com/phlegx/money-openexchangerates-bank.svg)](https://gemnasium.com/phlegx/money-openexchangerates-bank)
6
+ [![Code Climate](https://codeclimate.com/github/phlegx/money-openexchangerates-bank.svg)](https://codeclimate.com/github/phlegx/money-openexchangerates-bank)
7
+ [![Inline Docs](https://inch-ci.org/github/phlegx/money-openexchangerates-bank.svg?branch=master)](http://inch-ci.org/github/phlegx/money-openexchangerates-bank)
9
8
  [![License](https://img.shields.io/github/license/phlegx/money-openexchangerates-bank.svg)](http://opensource.org/licenses/MIT)
10
9
 
11
10
  A gem that calculates the exchange rate using published rates from
@@ -33,7 +32,7 @@ See more about Openexchangerates product plans on https://openexchangerates.org/
33
32
 
34
33
  ## Features
35
34
 
36
- * supports 190 currencies
35
+ * supports over 200 currencies
37
36
  * includes cryptocurrencies
38
37
  * precision of rates up to 6 digits after point
39
38
  * uses fast and reliable json api
@@ -61,36 +60,41 @@ Or install it yourself as:
61
60
  ## Usage
62
61
 
63
62
  ~~~ ruby
64
- # Minimal requirements
63
+ # Minimal requirements.
65
64
  require 'money/bank/openexchangerates_bank'
66
65
  moxb = Money::Bank::OpenexchangeratesBank.new
67
66
  moxb.access_key = 'your access_key from https://openexchangerates.com/signup'
68
67
 
69
- # Update rates (get new rates from remote if expired or access rates from cache)
70
- moxb.update_rates
71
-
72
- # Force update rates from remote and store in cache
73
- # moxb.update_rates(true)
74
-
75
68
  # (optional)
76
69
  # Set the base currency for all rates. By default, USD is used.
77
70
  # OpenexchangeratesBank only allows USD as base currency for the free plan users.
78
71
  moxb.source = 'EUR'
79
72
 
80
73
  # (optional)
81
- # Set the seconds after than the current rates are automatically expired
82
- # by default, they never expire, in this example 1 day.
74
+ # Set the seconds after than the current rates are automatically expired.
75
+ # By default, they never expire, in this example 1 day.
83
76
  moxb.ttl_in_seconds = 86400
84
77
 
85
78
  # (optional)
86
- # Use https to fetch rates from OpenexchangeratesBank
79
+ # Use https to fetch rates from OpenexchangeratesBank.
87
80
  # OpenexchangeratesBank only allows http as connection for the free plan users.
88
81
  moxb.secure_connection = true
89
82
 
90
- # Define cache (string or pathname)
83
+ # Define cache (string or pathname).
91
84
  moxb.cache = 'path/to/file/cache'
92
85
 
93
- # Set money default bank to Openexchangerates bank
86
+ # Update rates (get new rates from remote if expired or access rates from cache).
87
+ # Be sure to define the cache first before updating the rates.
88
+ moxb.update_rates
89
+
90
+ # Force update rates from remote and store in cache.
91
+ # Be sure to define the cache first before updating the rates.
92
+ # moxb.update_rates(true)
93
+
94
+ # Set money rounding mode.
95
+ Money.rounding_mode = BigDecimal::ROUND_HALF_EVEN
96
+
97
+ # Set money default bank to Openexchangerates bank.
94
98
  Money.default_bank = moxb
95
99
  ~~~
96
100
 
@@ -222,4 +226,4 @@ bundle exec rake
222
226
 
223
227
  The MIT License
224
228
 
225
- Copyright (c) 2017 Phlegx Systems OG
229
+ Copyright (c) 2022 Phlegx Systems OG
@@ -294,11 +294,18 @@ class Money
294
294
  # @param straight [Boolean] true for straight, default is careful
295
295
  # @return [Hash] key is country code (ISO 3166-1 alpha-3) value Float
296
296
  def exchange_rates(straight = false)
297
- @rates = if straight
298
- raw_rates_straight['rates']
299
- else
300
- raw_rates_careful['rates']
301
- end
297
+ rates = if straight
298
+ raw_rates_straight
299
+ else
300
+ raw_rates_careful
301
+ end
302
+ if rates.key?('rates')
303
+ @rates = rates['rates']
304
+ elsif rates.key?('error')
305
+ raise Error, rates['description']
306
+ else
307
+ raise Error, 'Unknown rates situation!'
308
+ end
302
309
  end
303
310
 
304
311
  # Get raw exchange rates from cache and then from url
@@ -4,6 +4,7 @@
4
4
  require File.expand_path(File.join(File.dirname(__FILE__), 'test_helper'))
5
5
 
6
6
  describe Money::Bank::OpenexchangeratesBank do
7
+ Money.rounding_mode = BigDecimal::ROUND_HALF_EVEN
7
8
  subject { Money::Bank::OpenexchangeratesBank.new }
8
9
  let(:url) { Money::Bank::OpenexchangeratesBank::CL_URL }
9
10
  let(:secure_url) { Money::Bank::OpenexchangeratesBank::CL_SECURE_URL }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: money-openexchangerates-bank
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Egon Zemmer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-06 00:00:00.000000000 Z
11
+ date: 2022-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: money
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  - !ruby/object:Gem::Version
186
186
  version: '0'
187
187
  requirements: []
188
- rubygems_version: 3.2.0
188
+ rubygems_version: 3.2.24
189
189
  signing_key:
190
190
  specification_version: 4
191
191
  summary: A gem that calculates the exchange rate using published rates from openexchangerates.org.