alphavantagerb 1.1.0 → 1.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: 2846dc690fd548267b1fd3657beae0c5be91451c
4
- data.tar.gz: 5b6cdcb1492ba342f1cf8e02a5284fd89dd0290b
3
+ metadata.gz: 45b9bfaa0883fbcebabc5b26972fd66f736df2c4
4
+ data.tar.gz: 9407ed9a0c3761d8ba70bf79a19678bc7b614ac8
5
5
  SHA512:
6
- metadata.gz: 6e62c435f993111a6c95e2b2522eea583f80c9dfb5b6b3efb9e74bddf5a7d45ca2d47c98b9ad7daf8d11003a84f6a9fbdf1447b6d297c228fc6dc3dcf759c08d
7
- data.tar.gz: e0141b848e4b8512ebf1f2f7d618d109adbcec3a62217752d6a8ec6ac964ec0c50704161d074525514104e9407ac42aa05b2b6b1624f977df9824fbcf618a6b6
6
+ metadata.gz: d07776377781826d1778768bad668cf5125f3e8856b52828c27b0d3a45bfe18907023739cd0d4884af890ce9727f528c4775e02f502fac9970980e48dcdb0bf3
7
+ data.tar.gz: 60945c1de9ffc3d0c08dff5b65b87cf3cba61615f32d61107e17f3ffcf9db5afa8570f6abb978cc61069bcc31385ff4e46cc354418728ea0a455f768b31bda9f
@@ -4,7 +4,7 @@ require "rake"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "alphavantagerb"
7
- s.version = "1.1.0"
7
+ s.version = "1.2.0"
8
8
  s.authors = ["Stefano Martin"]
9
9
  s.email = ["stefano.martin87@gmail.com"]
10
10
  s.homepage = "https://github.com/StefanoMartin/AlphaVantageRB"
data/README.md CHANGED
@@ -665,8 +665,8 @@ To create a new Crypto_Timeseries class you can use a Crypto class or you can cr
665
665
  These two creation commands are equivalent:
666
666
 
667
667
  ``` ruby
668
- crypto_timeseries = crypto.timeseries
669
- crypto_timeseries = Alphavantage::Crypto_Timeseries.new symbol: "BTC", market: "DKK", key: "YOURKEY"
668
+ crypto_timeseries = crypto.timeseries type: "daily"
669
+ crypto_timeseries = Alphavantage::Crypto_Timeseries.new type: "daily", symbol: "BTC", market: "DKK", key: "YOURKEY"
670
670
  ```
671
671
 
672
672
  Note that the initialization owns different entries:
@@ -674,6 +674,7 @@ Note that the initialization owns different entries:
674
674
  * market: it is a string that denote the market you want to analyze. This value cannot be setup if you are initializing a timeseries from a stock
675
675
  * key: authentication key. This value cannot be setup if you are initializing a timeseries from a crypto class
676
676
  * 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
677
+ * type: it can be "intraday", "daily", "weekly", "monthly" (default "daily")
677
678
  * datatype: it can be "json" or "csv" (default "json")
678
679
  * file: path where a csv file should be saved (default "nil")
679
680
 
@@ -700,17 +701,23 @@ These methods will return an array of couples where the first entry is a timesta
700
701
  These timeseries return always the corrispective timeseries in relation of the USD market.
701
702
 
702
703
  ``` ruby
703
- crypto_timeseries.price
704
- crypto_timeseries.price_usd
704
+ crypto_timeseries.open
705
+ crypto_timeseries.close
706
+ crypto_timeseries.high
707
+ crypto_timeseries.low
705
708
  crypto_timeseries.volume
709
+ crypto_timeseries.open_usd
710
+ crypto_timeseries.close_usd
711
+ crypto_timeseries.high_usd
712
+ crypto_timeseries.low_usd
706
713
  crypto_timeseries.market_cap_usd
707
714
  ```
708
715
 
709
716
  You can order the data in ascending or descending order.
710
717
 
711
718
  ``` ruby
712
- crypto_timeseries.price("desc") # Default
713
- crypto_timeseries.price("asc")
719
+ crypto_timeseries.open("desc") # Default
720
+ crypto_timeseries.open("asc")
714
721
  ```
715
722
  <a name="Exchange"></a>
716
723
  ## Alphavantage::Exchange
@@ -18,8 +18,8 @@ module Alphavantage
18
18
  @datatype = datatype
19
19
  end
20
20
 
21
- def timeseries market: @market, file: nil, datatype: @datatype
22
- Alphavantage::Crypto_Timeseries.new market: market,
21
+ def timeseries type: "intraday", market: @market, file: nil, datatype: @datatype
22
+ Alphavantage::Crypto_Timeseries.new type: type, market: market,
23
23
  symbol: @symbol, datatype: datatype, file: file, key: @client
24
24
  end
25
25
  end
@@ -2,7 +2,7 @@ module Alphavantage
2
2
  class Crypto_Timeseries
3
3
  include HelperFunctions
4
4
 
5
- def initialize market:, symbol:, datatype: "json", file: nil,
5
+ def initialize type: "intraday", market:, symbol:, datatype: "json", file: nil,
6
6
  key:, verbose: false
7
7
  check_argument([true, false], verbose, "verbose")
8
8
  @client = return_client(key, verbose)
@@ -13,8 +13,8 @@ module Alphavantage
13
13
  raise Alphavantage::Error.new message: "Hash error: No file necessary"
14
14
  end
15
15
 
16
- # @selected_time_series = which_series(type)
17
- url = "function=DIGITAL_CURRENCY_INTRADAY&symbol=#{symbol}&market=#{market}"
16
+ @selected_time_series = which_series(type)
17
+ url = "function=#{@selected_time_series}&symbol=#{symbol}&market=#{market}"
18
18
  return @client.download(url, file) if datatype == "csv"
19
19
  @hash = @client.request(url)
20
20
  metadata = @hash.dig("Meta Data") || {}
@@ -57,11 +57,11 @@ module Alphavantage
57
57
 
58
58
  attr_reader :hash
59
59
 
60
- # def which_series(type)
61
- # check_argument(["intraday", "daily", "weekly", "monthly"], type, "type")
62
- # series = "DIGITAL_CURRENCY_"
63
- # series += type.upcase
64
- # return series
65
- # end
60
+ def which_series(type)
61
+ check_argument(["intraday", "daily", "weekly", "monthly"], type, "type")
62
+ series = "DIGITAL_CURRENCY_"
63
+ series += type.upcase
64
+ return series
65
+ end
66
66
  end
67
67
  end
@@ -3,17 +3,17 @@ require_relative './../../spec_helper'
3
3
  describe Alphavantage::Crypto_Timeseries do
4
4
  context "#new" do
5
5
  it "create a new timeseries without stock" do
6
- sleep(1); stock = Alphavantage::Crypto_Timeseries.new symbol: "BTC", key: @config["key"], verbose: false, market: "DKK"
6
+ sleep(1); stock = Alphavantage::Crypto_Timeseries.new symbol: "BTC", key: @config["key"], verbose: false, market: "DKK", type: "daily"
7
7
  expect(stock.class).to eq Alphavantage::Crypto_Timeseries
8
8
  end
9
9
 
10
10
  it "create a new stock from stock" do
11
- sleep(1); timeseries = @client.crypto(symbol: "BTC", market: "DKK").timeseries
11
+ sleep(1); timeseries = @client.crypto(symbol: "BTC", market: "DKK").timeseries(type: "monthly")
12
12
  expect(timeseries.class).to eq Alphavantage::Crypto_Timeseries
13
13
  end
14
14
 
15
15
  it "own multiple data" do
16
- sleep(1); timeseries = @client.crypto(symbol: "BTC", market: "DKK").timeseries
16
+ sleep(1); timeseries = @client.crypto(symbol: "BTC", market: "DKK").timeseries(type: "monthly")
17
17
  bool = []
18
18
  bool << timeseries.information.is_a?(String)
19
19
  bool << (timeseries.digital_currency_code == "BTC")
@@ -23,9 +23,15 @@ describe Alphavantage::Crypto_Timeseries do
23
23
  bool << timeseries.last_refreshed.is_a?(String)
24
24
  bool << timeseries.time_zone.is_a?(String)
25
25
  bool << timeseries.hash.is_a?(Hash)
26
+ bool << timeseries.open.is_a?(Array)
27
+ bool << timeseries.high.is_a?(Array)
28
+ bool << timeseries.low.is_a?(Array)
29
+ bool << timeseries.close.is_a?(Array)
26
30
  bool << timeseries.volume("asc").is_a?(Array)
27
- bool << timeseries.price.is_a?(Array)
28
- bool << timeseries.price_usd.is_a?(Array)
31
+ bool << timeseries.open_usd.is_a?(Array)
32
+ bool << timeseries.high_usd.is_a?(Array)
33
+ bool << timeseries.low_usd.is_a?(Array)
34
+ bool << timeseries.close_usd.is_a?(Array)
29
35
  bool << timeseries.market_cap_usd.is_a?(Array)
30
36
  expect(bool.all?{|e| e}).to eq true
31
37
  end
@@ -43,7 +49,7 @@ describe Alphavantage::Crypto_Timeseries do
43
49
  it "cannot retrieve with wrong symbol" do
44
50
  error = false
45
51
  begin
46
- sleep(1); stock = Alphavantage::Crypto_Timeseries.new symbol: "wrong_symbol", key: @config["key"], market: "DKK"
52
+ sleep(1); stock = Alphavantage::Crypto_Timeseries.new symbol: "wrong_symbol", key: @config["key"], market: "DKK", type: "daily"
47
53
  rescue Alphavantage::Error => e
48
54
  error = true
49
55
  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.1.0
4
+ version: 1.2.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: 2018-01-07 00:00:00.000000000 Z
11
+ date: 2018-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty