alphavantagerb 1.3.3 → 1.4.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 +4 -4
- data/AlphavantageRB.gemspec +1 -1
- data/README.md +4 -3
- data/lib/Client.rb +1 -0
- data/lib/Crypto.rb +5 -0
- data/lib/Exchange.rb +2 -0
- data/lib/Exchange_Timeseries.rb +8 -8
- data/lib/Indicator.rb +8 -8
- data/lib/Sector.rb +11 -11
- data/lib/Timeseries.rb +8 -8
- data/spec/lib/1.0.0/crypto.rb +7 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 457cc006c17e9c74cce1898e6529dc87da99c5c7408b0c0aa45a03247794929a
|
4
|
+
data.tar.gz: 5da6c0030e6d6cf8bef44ee87e57b6401ab6ac865844e1015ae8498a70c7d8fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbf720a046243b6cdb4ead24d2ea07c6a21e88e5d41e5b1fa34f9f5f1b644c7e4cd7a27d2a2e8b76978d4539a5a083a7467d57bbc72496847868a6a0d5eb9eb1
|
7
|
+
data.tar.gz: 8db97aaf3e00136d3252a4077958375b569b679ffde9b7aaee69d6c75547760e006bc2bda2261d170bb3a4cb7f4cebc1c9c6794f2e0cc7e839fa562328cfb199
|
data/AlphavantageRB.gemspec
CHANGED
data/README.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
AlphavantageRB [](https://badge.fury.io/rb/alphavantagerb)
|
2
2
|
=========================================================
|
3
3
|
|
4
|
-
Last update:
|
4
|
+
Last update: 8/4/2020
|
5
5
|
|
6
6
|
[Alpha Vantage](https://www.alphavantage.co/) is a great API for retrieving Stock
|
7
7
|
market data in JSON or CSV format.
|
@@ -736,6 +736,7 @@ These two creation commands are equivalent:
|
|
736
736
|
``` ruby
|
737
737
|
crypto = client.crypto symbol: "BTC", market: "DKK"
|
738
738
|
crypto = Alphavantage::Crypto.new symbol: "BTC", market: "DKK", key: "YOURKEY"
|
739
|
+
crypto.rating # Retrieve crypto ratings instance
|
739
740
|
```
|
740
741
|
|
741
742
|
Note that the initialization owns different entry:
|
@@ -832,8 +833,8 @@ exchange = Alphavantage::Exchange.new from: "USD", to: "DKK", key: "YOURKEY"
|
|
832
833
|
|
833
834
|
Note that the initialization owns different entry:
|
834
835
|
|
835
|
-
* from: input currency you want to check the value
|
836
|
-
* to: output currency you want to see the value
|
836
|
+
* from: input currency you want to check the value (can be a crypto currency)
|
837
|
+
* to: output currency you want to see the value (can be a crypto currency)
|
837
838
|
* symbol: it is a string that denote the stock you want to retrieve.
|
838
839
|
* key: authentication key. This value cannot be setup if you are initializing a Stock class from a client
|
839
840
|
* verbose: used to see the request to Alpha Vantage (default false). This value cannot be setup if you are initializing a timeseries from a stock
|
data/lib/Client.rb
CHANGED
data/lib/Crypto.rb
CHANGED
@@ -18,6 +18,11 @@ module Alphavantage
|
|
18
18
|
@datatype = datatype
|
19
19
|
end
|
20
20
|
|
21
|
+
def rating
|
22
|
+
url = "function=CRYPTO_RATING&symbol=#{@symbol}"
|
23
|
+
return open_struct(url, "Crypto Rating (FCAS)")
|
24
|
+
end
|
25
|
+
|
21
26
|
def timeseries type: "daily", market: @market, file: nil, datatype: @datatype
|
22
27
|
Alphavantage::Crypto_Timeseries.new type: type, market: market,
|
23
28
|
symbol: @symbol, datatype: datatype, file: file, key: @client
|
data/lib/Exchange.rb
CHANGED
@@ -6,6 +6,8 @@ module Alphavantage
|
|
6
6
|
datatype: "json"
|
7
7
|
check_argument([true, false], verbose, "verbose")
|
8
8
|
@client = return_client(key, verbose)
|
9
|
+
from = from.symbol if from.is_a?(Alphavantage::Crypto)
|
10
|
+
to = to.symbol if to.is_a?(Alphavantage::Crypto)
|
9
11
|
@from = from
|
10
12
|
@to = to
|
11
13
|
check_argument(["json", "csv"], datatype, "datatype")
|
data/lib/Exchange_Timeseries.rb
CHANGED
@@ -23,8 +23,8 @@ module Alphavantage
|
|
23
23
|
return @client.download(url, file) if datatype == "csv"
|
24
24
|
@output = @client.request(url)
|
25
25
|
metadata = @output.dig("Meta Data") || {}
|
26
|
-
metadata.each do |
|
27
|
-
key_sym =
|
26
|
+
metadata.each do |k, val|
|
27
|
+
key_sym = k.downcase.gsub(/[0-9.]/, "").lstrip.gsub(" ", "_").to_sym
|
28
28
|
define_singleton_method(key_sym) do
|
29
29
|
return val
|
30
30
|
end
|
@@ -32,7 +32,7 @@ module Alphavantage
|
|
32
32
|
@open = []; @high = []; @low = []; @close = [];
|
33
33
|
|
34
34
|
begin
|
35
|
-
time_series = @output.find{|
|
35
|
+
time_series = @output.find{|k, val| k.include?("Time Series")}[1]
|
36
36
|
rescue StandardError => e
|
37
37
|
raise Alphavantage::Error.new message: "No Time Series found: #{e.message}",
|
38
38
|
data: @output
|
@@ -40,14 +40,14 @@ module Alphavantage
|
|
40
40
|
|
41
41
|
series = {}
|
42
42
|
convert_key = {}
|
43
|
-
time_series.values[0].keys.each do |
|
44
|
-
key_sym = recreate_metadata_key(
|
43
|
+
time_series.values[0].keys.each do |k|
|
44
|
+
key_sym = recreate_metadata_key(k)
|
45
45
|
series[key_sym] = []
|
46
|
-
convert_key[
|
46
|
+
convert_key[k] = key_sym
|
47
47
|
end
|
48
48
|
time_series.each do |time, ts_hash|
|
49
|
-
ts_hash.each do |
|
50
|
-
series[convert_key[
|
49
|
+
ts_hash.each do |k, value|
|
50
|
+
series[convert_key[k]] << [time, value]
|
51
51
|
end
|
52
52
|
end
|
53
53
|
series.keys.each do |key_sym|
|
data/lib/Indicator.rb
CHANGED
@@ -96,15 +96,15 @@ module Alphavantage
|
|
96
96
|
|
97
97
|
@output = @client.request(url)
|
98
98
|
metadata = @output.dig("Meta Data") || {}
|
99
|
-
metadata.each do |
|
100
|
-
key_sym = recreate_metadata_key(
|
99
|
+
metadata.each do |k, val|
|
100
|
+
key_sym = recreate_metadata_key(k)
|
101
101
|
define_singleton_method(key_sym) do
|
102
102
|
return val
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
106
|
begin
|
107
|
-
time_series = @output.find{|
|
107
|
+
time_series = @output.find{|k, val| k.include?("Technical Analysis")}[1]
|
108
108
|
rescue StandardError => e
|
109
109
|
raise Alphavantage::Error.new message: "No Time Series found: #{e.message}",
|
110
110
|
data: @output
|
@@ -112,14 +112,14 @@ module Alphavantage
|
|
112
112
|
|
113
113
|
series = {}
|
114
114
|
convert_key = {}
|
115
|
-
time_series.values[0].keys.each do |
|
116
|
-
key_sym =
|
115
|
+
time_series.values[0].keys.each do |k|
|
116
|
+
key_sym = k.downcase.gsub(/[.\/]/, "").lstrip.gsub(" ", "_").to_sym
|
117
117
|
series[key_sym] = []
|
118
|
-
convert_key[
|
118
|
+
convert_key[k] = key_sym
|
119
119
|
end
|
120
120
|
time_series.each do |time, ts_hash|
|
121
|
-
ts_hash.each do |
|
122
|
-
series[convert_key[
|
121
|
+
ts_hash.each do |k, value|
|
122
|
+
series[convert_key[k]] << [time, value]
|
123
123
|
end
|
124
124
|
end
|
125
125
|
series.keys.each do |key_sym|
|
data/lib/Sector.rb
CHANGED
@@ -7,22 +7,22 @@ module Alphavantage
|
|
7
7
|
@client = return_client(key, verbose)
|
8
8
|
@output = @client.request("function=SECTOR")
|
9
9
|
metadata = @output.dig("Meta Data") || {}
|
10
|
-
metadata.each do |
|
11
|
-
key_sym =
|
10
|
+
metadata.each do |k, val|
|
11
|
+
key_sym = k.downcase.gsub(/[0-9.]/, "").lstrip.gsub(" ", "_").to_sym
|
12
12
|
define_singleton_method(key_sym) do
|
13
13
|
return val
|
14
14
|
end
|
15
15
|
end
|
16
|
-
@output.each do |
|
17
|
-
next if
|
18
|
-
|
19
|
-
|
20
|
-
if
|
21
|
-
|
16
|
+
@output.each do |k, val|
|
17
|
+
next if k == "Meta Data"
|
18
|
+
k = k.split(":")[1].lstrip
|
19
|
+
k = k.split(" ")
|
20
|
+
if k[0].to_i != 0
|
21
|
+
k[0] = k[0].to_i.humanize
|
22
22
|
end
|
23
|
-
|
24
|
-
|
25
|
-
key_sym =
|
23
|
+
k.delete_if{|ka| ka.include?("(")}
|
24
|
+
k = k.join("_")
|
25
|
+
key_sym = k.downcase.gsub("-", "_").to_sym
|
26
26
|
define_singleton_method(key_sym) do
|
27
27
|
return val
|
28
28
|
end
|
data/lib/Timeseries.rb
CHANGED
@@ -26,15 +26,15 @@ module Alphavantage
|
|
26
26
|
return @client.download(url, file) if datatype == "csv"
|
27
27
|
@output = @client.request(url)
|
28
28
|
metadata = @output.dig("Meta Data") || {}
|
29
|
-
metadata.each do |
|
30
|
-
key_sym = recreate_metadata_key(
|
29
|
+
metadata.each do |k, val|
|
30
|
+
key_sym = recreate_metadata_key(k)
|
31
31
|
define_singleton_method(key_sym) do
|
32
32
|
return val
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
36
|
begin
|
37
|
-
time_series = @output.find{|
|
37
|
+
time_series = @output.find{|k, val| k.include?("Time Series")}[1]
|
38
38
|
rescue StandardError => e
|
39
39
|
raise Alphavantage::Error.new message: "No Time Series found: #{e.message}",
|
40
40
|
data: @output
|
@@ -42,14 +42,14 @@ module Alphavantage
|
|
42
42
|
|
43
43
|
series = {}
|
44
44
|
convert_key = {}
|
45
|
-
time_series.values[0].keys.each do |
|
46
|
-
key_sym =
|
45
|
+
time_series.values[0].keys.each do |k|
|
46
|
+
key_sym = k.downcase.gsub(/[0-9.]/, "").lstrip.gsub(" ", "_").to_sym
|
47
47
|
series[key_sym] = []
|
48
|
-
convert_key[
|
48
|
+
convert_key[k] = key_sym
|
49
49
|
end
|
50
50
|
time_series.each do |time, ts_hash|
|
51
|
-
ts_hash.each do |
|
52
|
-
series[convert_key[
|
51
|
+
ts_hash.each do |k, value|
|
52
|
+
series[convert_key[k]] << [time, value]
|
53
53
|
end
|
54
54
|
end
|
55
55
|
series.keys.each do |key_sym|
|
data/spec/lib/1.0.0/crypto.rb
CHANGED
@@ -22,7 +22,7 @@ describe Alphavantage::Crypto do
|
|
22
22
|
bool << "error"
|
23
23
|
end
|
24
24
|
stock.datatype = "csv"
|
25
|
-
bool <<stock.datatype
|
25
|
+
bool << stock.datatype
|
26
26
|
stock.datatype = "json"
|
27
27
|
expect(bool).to eq ["json", "error", "csv"]
|
28
28
|
end
|
@@ -32,5 +32,11 @@ describe Alphavantage::Crypto do
|
|
32
32
|
timeseries = stock.timeseries
|
33
33
|
expect(timeseries.class).to eq Alphavantage::Crypto_Timeseries
|
34
34
|
end
|
35
|
+
|
36
|
+
it "can check its rating" do
|
37
|
+
stock = @client.crypto symbol: "BTC", market: "DKK"
|
38
|
+
rating = stock.rating
|
39
|
+
expect(rating.symbol).to eq "BTC"
|
40
|
+
end
|
35
41
|
end
|
36
42
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alphavantagerb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Martin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|