hg-finance 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/hg/finance/crypto_currency.rb +63 -0
- data/lib/hg/finance/data.rb +20 -1
- data/lib/hg/finance/locale.rb +2 -0
- data/lib/hg/finance/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f8ffbd0d3bfd32653d773159cfd50288426c47d
|
4
|
+
data.tar.gz: c336027e36d2347e03736e956b021b122be4e4cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 751156c1915288f8bf1be63c5e24d7b551dff9fefcaa5a9a0ea6e122c15325d70c4cfb58400aa5fc257cb21a59ecc75d3b81047473dc3a46d1c8ecc12046daac
|
7
|
+
data.tar.gz: ab3c7651daa47b85e1af34adf9cfd680fa4e06a0480c5e2bd9cefc6c2c92a9f6c03449b56ed917253e57e51099cdcb1cb7e491978cc17921d8348bd25ff8a2b4
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'hg/finance/locale'
|
2
|
+
|
3
|
+
module HG
|
4
|
+
module Finance
|
5
|
+
|
6
|
+
class CryptoCurrency
|
7
|
+
# Public: Exchange
|
8
|
+
attr_accessor :exchange
|
9
|
+
|
10
|
+
# Public: Name
|
11
|
+
attr_accessor :name
|
12
|
+
|
13
|
+
# Public: ISO code
|
14
|
+
attr_accessor :iso_code
|
15
|
+
|
16
|
+
# Public: To currency
|
17
|
+
attr_accessor :to_currency
|
18
|
+
|
19
|
+
# Public: Price to buy
|
20
|
+
attr_accessor :buy
|
21
|
+
|
22
|
+
# Public: Price to seel
|
23
|
+
attr_accessor :sell
|
24
|
+
|
25
|
+
# Public: Last ticker
|
26
|
+
attr_accessor :last
|
27
|
+
|
28
|
+
# Public: Last day variation
|
29
|
+
attr_accessor :variation
|
30
|
+
|
31
|
+
def initialize(options = {})
|
32
|
+
if options.count != 0
|
33
|
+
@exchange = options[:exchange] if options[:exchange]
|
34
|
+
@name = options[:name] if options[:name]
|
35
|
+
@iso_code = options[:iso_code] if options[:iso_code]
|
36
|
+
@to_currency = options[:to_currency] if options[:to_currency]
|
37
|
+
@buy = options[:buy].to_f if options[:buy]
|
38
|
+
@sell = options[:sell].to_f if options[:sell]
|
39
|
+
@last = options[:last].to_f if options[:last]
|
40
|
+
@variation = options[:variation].to_f if options[:variation]
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def to_s separator = ' - '
|
45
|
+
to_return = []
|
46
|
+
|
47
|
+
to_return << self.exchange.to_s + ' (' + self.iso_code.to_s + ' to ' + self.to_currency + ')'
|
48
|
+
|
49
|
+
to_return << "#{Locale.get_format(:last).to_s.capitalize}: " + "#{self.to_currency} #{self.last}" if self.last
|
50
|
+
to_return << "#{Locale.get_format(:buy).to_s.capitalize}: " + "#{self.to_currency} #{self.buy}" if self.buy
|
51
|
+
to_return << "#{Locale.get_format(:sell).to_s.capitalize}: " + "#{self.to_currency} #{self.sell}" if self.sell
|
52
|
+
to_return << "#{Locale.get_format(:variation).to_s.capitalize}: " + self.variation.to_s if self.variation
|
53
|
+
|
54
|
+
return to_return.join(separator)
|
55
|
+
end
|
56
|
+
|
57
|
+
def inspect
|
58
|
+
self.to_s
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
data/lib/hg/finance/data.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'hg/finance/crypto_currency'
|
1
2
|
require 'hg/finance/currency'
|
2
3
|
require 'hg/finance/taxes'
|
3
4
|
require 'hg/finance/stock'
|
@@ -8,7 +9,7 @@ module HG
|
|
8
9
|
class Data
|
9
10
|
|
10
11
|
attr_accessor :request, :requested_at, :key_status
|
11
|
-
attr_accessor :taxes, :currencies, :stocks
|
12
|
+
attr_accessor :taxes, :currencies, :cryptocurrencies, :stocks
|
12
13
|
|
13
14
|
def initialize params, host_name, use_ssl = true
|
14
15
|
query_params = params.map{|k,v| "#{k.to_s}=#{v.to_s}"}.join('&')
|
@@ -30,6 +31,11 @@ module HG
|
|
30
31
|
@currencies[iso] = Currency.new(to_currency(currency, iso, results['currencies']['source']))
|
31
32
|
end
|
32
33
|
|
34
|
+
@cryptocurrencies = {}
|
35
|
+
results['bitcoin'].each do |exchange, c|
|
36
|
+
@cryptocurrencies[exchange.to_sym] = { "btc#{c['format'][0]}".downcase.to_sym => CryptoCurrency.new(to_cryptocurrency(c, 'Bitcoin', 'BTC')) }
|
37
|
+
end
|
38
|
+
|
33
39
|
@stocks = {}
|
34
40
|
results['stocks'].each do |code, stock|
|
35
41
|
@stocks[code] = Stock.new(to_stock(stock))
|
@@ -59,6 +65,19 @@ module HG
|
|
59
65
|
}
|
60
66
|
end
|
61
67
|
|
68
|
+
def to_cryptocurrency r, name = 'Bitcoin', iso_code = 'BTC'
|
69
|
+
{
|
70
|
+
to_currency: r['format'][0],
|
71
|
+
exchange: r['name'],
|
72
|
+
name: name,
|
73
|
+
iso_code: iso_code,
|
74
|
+
last: r['last'],
|
75
|
+
buy: r['buy'],
|
76
|
+
sell: r['sell'],
|
77
|
+
variation: r['variation']
|
78
|
+
}
|
79
|
+
end
|
80
|
+
|
62
81
|
def to_stock r
|
63
82
|
{
|
64
83
|
name: r['name'],
|
data/lib/hg/finance/locale.rb
CHANGED
@@ -11,6 +11,7 @@ module HG
|
|
11
11
|
buy: :buy,
|
12
12
|
sell: :sell,
|
13
13
|
variation: :variation,
|
14
|
+
last: :last,
|
14
15
|
daily_factor: 'daily factor'
|
15
16
|
},
|
16
17
|
:'pt-br' => {
|
@@ -20,6 +21,7 @@ module HG
|
|
20
21
|
buy: :compra,
|
21
22
|
sell: :venda,
|
22
23
|
variation: 'variação',
|
24
|
+
last: 'último',
|
23
25
|
daily_factor: 'fator diário'
|
24
26
|
}
|
25
27
|
}
|
data/lib/hg/finance/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hg-finance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hugo Demiglio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-07-20 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Get brazilian finance data using HG Finance API.
|
14
14
|
email:
|
@@ -18,6 +18,7 @@ extensions: []
|
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
20
|
- lib/hg/finance.rb
|
21
|
+
- lib/hg/finance/crypto_currency.rb
|
21
22
|
- lib/hg/finance/currency.rb
|
22
23
|
- lib/hg/finance/data.rb
|
23
24
|
- lib/hg/finance/locale.rb
|
@@ -44,7 +45,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
44
45
|
version: '0'
|
45
46
|
requirements: []
|
46
47
|
rubyforge_project:
|
47
|
-
rubygems_version: 2.
|
48
|
+
rubygems_version: 2.6.14.1
|
48
49
|
signing_key:
|
49
50
|
specification_version: 4
|
50
51
|
summary: Simple gem to get finance data from HG Finance.
|