euro_currency_conversion_rate 0.1.1 → 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
  SHA1:
3
- metadata.gz: d655c4f73bf0d7ea9b09599778b4d1c8b9277317
4
- data.tar.gz: 05433f2fd68b5e5dfa7db3e243af91508a347969
3
+ metadata.gz: 2b881c81453eeefc333cc062603be099bd578c03
4
+ data.tar.gz: 6b66aea9101682f554c7ada279f96bbd580452e1
5
5
  SHA512:
6
- metadata.gz: 0c04066889cde9dc38aff3d2a4d124793784c417b61cc76f574594de443415ba4ec9dbed38a465adc9a98d66119b538a4cac69b426d1eec1b205588df5e1cb48
7
- data.tar.gz: 879883644010880c03cf143468137b99ccbc44cbc0de621db7ae719d885060c501ec287450f1c66de5992b2728e8f1e3878787c1bef827ec2c0bde81bf796b6c
6
+ metadata.gz: b8defaf494d49e316d5a89f414059d62d87a35ce1014f43a6a7e95694aa4f035e839411e56ea9c0e9a2324ab02f58db84eea8714ac379a41eb94d09b65038ea4
7
+ data.tar.gz: 2836dbfb2dd97a334eac1f9cb3f20784aeed08cb245e86ba07c0b2529dd05e751a63fe701ea394e6ed605eb25d0cf21984308c1c60f5cda0e2affedbfcfc5d3e
@@ -1,17 +1,17 @@
1
1
  require 'httparty'
2
2
 
3
3
  class EuroCurrencyConversionRate
4
-
4
+
5
5
  API_URL = 'http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'
6
6
 
7
7
  class << self
8
8
 
9
- # gets the latest exchange rate in float for a currency w.r.t. EUR
9
+ # returns the latest exchange rate in float for a currency w.r.t. EUR
10
10
  #
11
11
  # Example:
12
12
  # >> EuroCurrencyConversionRate.rate('USD')
13
13
  # => 1.21
14
- #
14
+ #
15
15
  #
16
16
  # Arguments:
17
17
  # currency: (String)
@@ -21,6 +21,31 @@ class EuroCurrencyConversionRate
21
21
  currency_exchange_rate['rate'].to_f unless currency_exchange_rate.nil?
22
22
  end
23
23
 
24
+ # returns a hash containing the latest exchange rates for a list of currencies w.r.t EUR
25
+ #
26
+ #
27
+ # Example:
28
+ # >> EuroCurrencyConversionRate.rates([:usd, :chf, :inr])
29
+ # => {:usd=>1.0978, :chf=>1.0349, :inr=>69.7761}
30
+ # >> EuroCurrencyConversionRate.rates
31
+ # => {:usd=>1.0978, :jpy=>133.39, :bgn=>1.9558, :czk=>27.372, :dkk=>7.4552, :gbp=>0.71, :huf=>307.71, :pln=>4.1075, :ron=>4.4539, :sek=>9.2425, :chf=>1.0349, :nok=>8.39, :hrk=>7.5383, :rub=>54.881, :try=>2.8665, :aud=>1.4023, :brl=>3.425, :cad=>1.3496, :cny=>6.8098, :hkd=>8.51, :idr=>14471.4, :ils=>4.269, :inr=>69.7761, :krw=>1204.41, :mxn=>16.7662, :myr=>3.9668, :nzd=>1.5025, :php=>48.958, :sgd=>1.4728, :thb=>36.882, :zar=>13.1034}
32
+ #
33
+ #
34
+ # Arguments:
35
+ # currencies: (Array)
36
+ def rates(currencies = [])
37
+ currencies = currencies.map{ |c| c.to_s.upcase }
38
+ if currencies.empty?
39
+ result_arr = currency_exchange_array
40
+ else
41
+ result_arr = currency_exchange_array.select{ |ca| currencies.include?(ca['currency']) }
42
+ end
43
+ result_hash = {}
44
+ result_arr.map{ |ra| result_hash[ra['currency'].downcase.to_sym] = ra['rate'].to_f }
45
+ result_hash[:eur] = 1.0 if currencies.include?('EUR')
46
+ result_hash
47
+ end
48
+
24
49
  private
25
50
 
26
51
  def currency_exchange_array
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: euro_currency_conversion_rate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gaurav Singha Roy