google_currency_convert 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +21 -5
- data/lib/google_currency_convert.rb +9 -8
- data/lib/http_method.rb +14 -0
- data/test/google_currency_convert_spec.rb +1 -0
- metadata +4 -3
data/README.md
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
#
|
1
|
+
# Google currency convert
|
2
2
|
currency convert by google finance [API](https://www.google.com/finance/converter)
|
3
3
|
|
4
|
-
###Install
|
4
|
+
### Install
|
5
5
|
|
6
6
|
```
|
7
7
|
gem install google_currency_convert
|
8
8
|
```
|
9
9
|
|
10
|
-
###
|
10
|
+
### Get currency code and country info
|
11
11
|
|
12
12
|
```
|
13
13
|
GoogleCurrencyConvert.currency_info
|
@@ -22,7 +22,7 @@ GoogleCurrencyConvert.currency_info.select { |i| i.include?("Jap")}
|
|
22
22
|
|
23
23
|
=> ["JPY Japanese Yen (¥)"]
|
24
24
|
```
|
25
|
-
###
|
25
|
+
### Only get currency codes
|
26
26
|
|
27
27
|
```
|
28
28
|
GoogleCurrencyConvert.currency_codes
|
@@ -30,7 +30,7 @@ GoogleCurrencyConvert.currency_codes
|
|
30
30
|
=> ["AED", "AFN", "ALL", "AMD", "ANG", "AOA", "ARS", "AUD", "AWG", "AZN", "BAM", "BBD", "BDT", "BGN", "BHD", "BIF", "BMD", "BND", "BOB", "BRL", "BSD", "BTC", "BTN", "BWP", "BYR", "BZD", "CAD", "CDF", "CHF", "CLF", "CLP", "CNH", "CNY", "COP", "CRC", "CUP", "CVE", "CZK", "DEM", "DJF", "DKK", "DOP", "DZD", "EGP", "ERN", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEL", "GHS", "GIP", "GMD", "GNF", "GTQ", "GYD", "HKD", "HNL", "HRK", "HTG", "HUF", "IDR", "IEP", "ILS", "INR", "IQD", "IRR", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LVL", "LYD", "MAD", "MDL", "MGA", "MKD", "MMK", "MNT", "MOP", "MRO", "MUR", "MVR", "MWK", "MXN", "MYR", "MZN", "NAD", "NGN", "NIO", "NOK", "NPR", "NZD", "OMR", "PAB", "PEN", "PGK", "PHP", "PKG", "PKR", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "RWF", "SAR", "SBD", "SCR", "SDG", "SEK", "SGD", "SHP", "SLL", "SOS", "SRD", "STD", "SVC", "SYP", "SZL", "THB", "TJS", "TMT", "TND", "TOP", "TRY", "TTD", "TWD", "TZS", "UAH", "UGX", "USD", "UYU", "UZS", "VEF", "VND", "VUV", "WST", "XAF", "XCD", "XDR", "XOF", "XPF", "YER", "ZAR", "ZMK", "ZMW", "ZWL"]
|
31
31
|
```
|
32
32
|
|
33
|
-
###
|
33
|
+
### Currency convert
|
34
34
|
|
35
35
|
The amount parameter has the default value, so if don't pass the amount, you will get the
|
36
36
|
currency rate.
|
@@ -44,4 +44,20 @@ Convert US Dollar to Chinese Yuan, for example:
|
|
44
44
|
```
|
45
45
|
GoogleCurrencyConvert.currency_convert("USD", "CNY")
|
46
46
|
=> 6.2092
|
47
|
+
```
|
48
|
+
|
49
|
+
### Run Test
|
50
|
+
|
51
|
+
```
|
52
|
+
Rspec test --format d
|
53
|
+
|
54
|
+
GoogleCurrencyConvert
|
55
|
+
currency info is a non-empty array
|
56
|
+
currency codes a non-empty array
|
57
|
+
return error if the currency code is invalid
|
58
|
+
return error if the currency amount is not a positive integer
|
59
|
+
get a float if the code and maount are right
|
60
|
+
|
61
|
+
Finished in 3.1 seconds (files took 0.32152 seconds to load)
|
62
|
+
5 examples, 0 failures
|
47
63
|
```
|
@@ -1,8 +1,12 @@
|
|
1
|
-
require 'net/http'
|
2
1
|
require 'nokogiri'
|
2
|
+
require_relative './http_method.rb'
|
3
3
|
|
4
4
|
class GoogleCurrencyConvert
|
5
5
|
|
6
|
+
extend HttpMethod
|
7
|
+
|
8
|
+
URL = "https://www.google.com/finance/converter"
|
9
|
+
|
6
10
|
def self.currency_info
|
7
11
|
unless @info
|
8
12
|
@info = []
|
@@ -13,21 +17,18 @@ class GoogleCurrencyConvert
|
|
13
17
|
end
|
14
18
|
|
15
19
|
def self.currency_codes
|
16
|
-
@info ||= currency_info
|
17
|
-
@info.map { |i| i.split(' ')[0] }
|
20
|
+
(@info ||= currency_info).map { |i| i.split(' ')[0] }
|
18
21
|
end
|
19
22
|
|
20
23
|
def self.currency_convert(from, to, amount = 1)
|
21
24
|
if not currency_codes.include?(from) or not currency_codes.include?(to)
|
22
25
|
return "Error: cannot support such currency code"
|
23
26
|
end
|
24
|
-
|
25
27
|
return "Error: amount must be a positive integer" if amount <= 0 or amount.class != Fixnum
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
response = http.get(url)
|
29
|
+
params = {from: from, to: to, a: amount}
|
30
|
+
response = https_get(URL, params)
|
31
|
+
return "connect google finance failed" unless response.code == '200'
|
31
32
|
|
32
33
|
doc = Nokogiri::HTML(response.body)
|
33
34
|
result = doc.css('div#currency_converter_result').first.text
|
data/lib/http_method.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
|
3
|
+
module HttpMethod
|
4
|
+
|
5
|
+
def https_get(url, params)
|
6
|
+
uri = URI(url)
|
7
|
+
uri.query = URI.encode_www_form(params)
|
8
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
9
|
+
http.use_ssl = true
|
10
|
+
request = Net::HTTP::Get.new(uri.request_uri)
|
11
|
+
response = http.request(request)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google_currency_convert
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-07-
|
12
|
+
date: 2015-07-16 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Google currency convert by google finance API (https://github.com/liuzxc/google_currency_convert)
|
15
15
|
email: lxq_102172@163.com
|
@@ -17,8 +17,9 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
-
- lib/google_currency_convert.rb
|
21
20
|
- lib/curr_code.csv
|
21
|
+
- lib/google_currency_convert.rb
|
22
|
+
- lib/http_method.rb
|
22
23
|
- test/google_currency_convert_spec.rb
|
23
24
|
- README.md
|
24
25
|
homepage: http://rubygems.org/gems/google_currency_convert
|