no_nonsense_currency_converter 0.0.3 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f6b73476f75808f770e533a9b4c6cc1c37424147
4
+ data.tar.gz: 98cbeffaad4f7dfd906671230aa8f1541fc1e908
5
+ SHA512:
6
+ metadata.gz: 054980e962cfc1d14338e78453899bad2f71e05fb5c349ad42d4e8d2bb1b7df90d400b5a3fc5e7adb6efb3de7efa187260caf9c2f66aef4dfd61afb4c6e2337f
7
+ data.tar.gz: 4f52ce497e0e93ba27561b83d48ccb31ad8dee9e468d950dbd8fe0a0bade5e83048ccd1e744f7b8fd7428c8fa5390c7ae05cf3baed09e8a2a50a6b348d7d8be9
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- no_nonsense_currency_converter (0.0.3)
4
+ no_nonsense_currency_converter (0.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -15,3 +15,6 @@ DEPENDENCIES
15
15
  bundler (~> 1.3)
16
16
  no_nonsense_currency_converter!
17
17
  rake
18
+
19
+ BUNDLED WITH
20
+ 1.10.5
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  No Nonsense Currency Converter
2
- ==============================
2
+ ===============================
3
3
  A crude currency converter based on the Google Finance API - WIP, no tests. Still very Alpha
4
4
 
5
5
  Usage
@@ -12,5 +12,3 @@ Example:
12
12
  > NoNonsenseCurrencyConverter.get_converted_currency_value('USD', 'GBP', 10)
13
13
  => 5.93
14
14
  ```
15
-
16
- Please report any issues and I will fix them as soon as possible.
@@ -2,27 +2,35 @@ require "no_nonsense_currency_converter/version"
2
2
 
3
3
  module NoNonsenseCurrencyConverter
4
4
 
5
- BASE_URL = 'https://www.google.com/'
6
- CONVERTER_URL = 'finance/converter'
5
+ # BASE_URL = 'https://www.google.com/'
6
+ BASE_URL = 'https://api.fixer.io/'
7
+ CONVERTER_URL = 'latest'
8
+ # CONVERTER_URL = 'finance/converter'
7
9
 
8
- @@rate_hash = {}
10
+ @@rate_hash = {}
9
11
 
10
12
  def self.get_converted_currency_value(from_currency, to_currency, amount)
11
- unless @@rate_hash[from_currency].try(:[], to_currency).try(:[], amount).present?
12
- data = get_raw_data(amount, from_currency, to_currency)
13
- converted_amount = get_final_parsed_amount(data).to_f.round(2)
14
- @@rate_hash.merge!(from_currency => { to_currency => { amount => converted_amount } })
15
- end
16
- @@rate_hash[from_currency][to_currency][amount]
13
+ rate =
14
+ if @@rate_hash[from_currency].try(:[], to_currency).present?
15
+ @@rate_hash[from_currency][to_currency]
16
+ else
17
+ conversion_rate = get_raw_data(from_currency, to_currency)
18
+ @@rate_hash.merge!(from_currency => { to_currency => conversion_rate })
19
+ conversion_rate
20
+ end
21
+ (rate * amount.to_f).to_f.round(2)
17
22
  end
18
23
 
19
24
  private
20
-
21
- def self.get_raw_data(amount, from, to)
22
- open("#{BASE_URL}#{CONVERTER_URL}?a=#{amount}&from=#{from.upcase}&to=#{to.upcase}")
25
+ def self.get_raw_data(from, to)
26
+ # open("#{BASE_URL}#{CONVERTER_URL}?a=#{amount}&from=#{from.upcase}&to=#{to.upcase}")
27
+ uri = URI("#{BASE_URL}#{CONVERTER_URL}?symbols=#{to.upcase}&base=#{from.upcase}")
28
+ data = Net::HTTP.get(uri)
29
+ JSON.parse(data)['rates'][to.upcase]
23
30
  end
24
31
 
25
32
  def self.get_final_parsed_amount(data)
26
- data.read.scan(/<span class=bld>(\d+\.?\d*) [A-Z]{3}<\/span>/).flatten.first
33
+ # data.read.scan(/<span class=bld>(\d+\.?\d*) [A-Z]{3}<\/span>/).flatten.first
34
+ JSON.parse(data)['rate']['']
27
35
  end
28
36
  end
@@ -1,3 +1,3 @@
1
1
  module NoNonsenseCurrencyConverter
2
- VERSION = '0.0.3'
2
+ VERSION = '0.1.0'
3
3
  end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: no_nonsense_currency_converter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Anshul mengi
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-05-03 00:00:00.000000000 Z
11
+ date: 2015-07-26 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,17 +27,15 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: A very simple currency converter based on the Google Finance Converter
@@ -62,32 +57,25 @@ files:
62
57
  homepage: https://github.com/anshulm/no_nonsense_currency_converter
63
58
  licenses:
64
59
  - MIT
60
+ metadata: {}
65
61
  post_install_message:
66
62
  rdoc_options: []
67
63
  require_paths:
68
64
  - lib
69
65
  required_ruby_version: !ruby/object:Gem::Requirement
70
- none: false
71
66
  requirements:
72
- - - ! '>='
67
+ - - '>='
73
68
  - !ruby/object:Gem::Version
74
69
  version: '0'
75
- segments:
76
- - 0
77
- hash: 2932767722201697778
78
70
  required_rubygems_version: !ruby/object:Gem::Requirement
79
- none: false
80
71
  requirements:
81
- - - ! '>='
72
+ - - '>='
82
73
  - !ruby/object:Gem::Version
83
74
  version: '0'
84
- segments:
85
- - 0
86
- hash: 2932767722201697778
87
75
  requirements: []
88
76
  rubyforge_project:
89
- rubygems_version: 1.8.23
77
+ rubygems_version: 2.4.8
90
78
  signing_key:
91
- specification_version: 3
79
+ specification_version: 4
92
80
  summary: WIP
93
81
  test_files: []