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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3f79b0032d845e680d834438cc76a15b572eb773
4
- data.tar.gz: a3047ad8629c81c14e5684462851c3b32d9558b5
3
+ metadata.gz: 8c5500f28f8cf4b925937e44e9978e2462091741
4
+ data.tar.gz: d816d377e396002ac906ef8e9e1557fa71f19bfd
5
5
  SHA512:
6
- metadata.gz: 61fc63dc0d5ed282857372bcbeb5361603754d67b898374876ca80582456966781e7ef985e53d0558a11fef57c69b88b6b83b5254e53059c732ce199c004afd9
7
- data.tar.gz: e538430a532def0b8631a3a929cf6053a8d3b716853fd75e29ab891464cd93a0745278009cce1ae623b4f49f1a197b3bbf636cf0bba74a42ad257482a9f314ec
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
@@ -1,6 +1,7 @@
1
1
  require "multi_currency/version"
2
2
  require "multi_currency/configuration"
3
3
  require "converter/grand_trunk"
4
+ require "converter/openexchange"
4
5
  require "multi_currency/converter"
5
6
 
6
7
  module MultiCurrency
@@ -8,7 +8,7 @@ module MultiCurrency
8
8
  end
9
9
 
10
10
  def default_converter=(converter)
11
- if ['GrandTrunk'].include? converter
11
+ if ['GrandTrunk', 'Openexchange'].include? converter
12
12
  @default_converter = converter
13
13
  else
14
14
  raise "Undefined converter"
@@ -1,3 +1,3 @@
1
1
  module MultiCurrency
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
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
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: 2014-09-16 00:00:00.000000000 Z
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