multi_currency 0.1.4 → 0.1.5
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 +4 -4
- data/README.md +17 -0
- data/lib/converter/openexchange.rb +30 -0
- data/lib/multi_currency.rb +1 -0
- data/lib/multi_currency/configuration.rb +1 -1
- data/lib/multi_currency/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c5500f28f8cf4b925937e44e9978e2462091741
|
4
|
+
data.tar.gz: d816d377e396002ac906ef8e9e1557fa71f19bfd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f93be9b8caec6d85e07ed2e530fd7df9b79678c087678d2e94c8ada02263f2b0a9d9f22a3ae1dcafa08eb43c5f490b72eedde09570713ea11e735bef71035b74
|
7
|
+
data.tar.gz: f1cadd620b420583652ac3edad243ac0a5c02e73b4ccb319a55831d0246e42e896977e1e291ad6719d68184ad172f599a6df7af56559bd2b07f5eabdfaae06ce
|
data/README.md
CHANGED
@@ -77,6 +77,23 @@ MultiCurrency.configure do |config|
|
|
77
77
|
end
|
78
78
|
```
|
79
79
|
|
80
|
+
## Open Exchange Rates Converter
|
81
|
+
|
82
|
+
Set default_converter = 'Openexchange' on config/initializers/multi_currency.rb
|
83
|
+
|
84
|
+
```ruby
|
85
|
+
MultiCurrency.configure do |config|
|
86
|
+
config.default_converter = 'Openexchange'
|
87
|
+
end
|
88
|
+
```
|
89
|
+
|
90
|
+
You will need APP ID to use OpenExchangeRate, you can get from https://openexchangerates.org for free.
|
91
|
+
Set OPEN_EXCHANGE_RATES_APP_ID environment variable.
|
92
|
+
|
93
|
+
```ruby
|
94
|
+
OPEN_EXCHANGE_RATES_APP_ID = 'APP_ID'
|
95
|
+
```
|
96
|
+
|
80
97
|
## Contributing
|
81
98
|
|
82
99
|
1. Fork it ( http://github.com/xsoulsyndicate/multi_currency/fork )
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module MultiCurrency
|
2
|
+
module Converter
|
3
|
+
module Openexchange
|
4
|
+
|
5
|
+
def self.get_rate_and_cache(source_currency, to_currency, date)
|
6
|
+
app_id = ENV['OPEN_EXCHANGE_RATES_APP_ID'] || '6ecb58dda5bb46a2b4fc6bcfbffc8c91'
|
7
|
+
if source_currency.downcase == to_currency.downcase
|
8
|
+
rate = 1.0
|
9
|
+
else
|
10
|
+
exchange_rate = ExchangeRate.find_by_from_code_and_to_code_and_date(source_currency.downcase, to_currency.downcase, date)
|
11
|
+
rate = if exchange_rate.present?
|
12
|
+
exchange_rate.rate
|
13
|
+
else
|
14
|
+
response = Net::HTTP.get_response(URI("https://openexchangerates.org/api/historical/#{(date - 1).strftime("%Y-%m-%d")}.json?app_id=#{app_id}&base=#{source_currency.upcase}"))
|
15
|
+
if response.is_a? Net::HTTPOK
|
16
|
+
data = JSON.parse(response.body)
|
17
|
+
rate_to = data["rates"]["#{to_currency.upcase}"]
|
18
|
+
ExchangeRate.create!(from_code: source_currency, to_code: to_currency, date: date, rate: rate_to.to_f)
|
19
|
+
rate_to.to_f
|
20
|
+
else
|
21
|
+
raise "#{response.code}: #{response.body}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
rate
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/multi_currency.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multi_currency
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rijaludin Muhsin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -51,6 +51,7 @@ files:
|
|
51
51
|
- README.md
|
52
52
|
- Rakefile
|
53
53
|
- lib/converter/grand_trunk.rb
|
54
|
+
- lib/converter/openexchange.rb
|
54
55
|
- lib/multi_currency.rb
|
55
56
|
- lib/multi_currency/configuration.rb
|
56
57
|
- lib/multi_currency/converter.rb
|