stockcruncher 1.1.0 → 1.1.1
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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1beb20ef59441b6227bd56d52cb1db85970c50be5cb909d3f631a97539897602
|
4
|
+
data.tar.gz: 96722ce534f031f40435958d4068a6212b0d4dd583840077423132d7b7349654
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45ff2b03c7d1233717dd60a4030d376a56ac5eb59d01c89dd6600b77b886cabc79a250686c013ed74463bd4c357a056b75684395bf3bb66b89d2b3c49aeb04f7
|
7
|
+
data.tar.gz: c7945f2f156aae5f7140165bbeda8794ea9b8f72b56bd810e110ce93ebe0ce21f80cab80b516bcd9c73c4dcbeca6d6bd023581b57a01deff682b922c56a4aa55
|
data/lib/stockcruncher.rb
CHANGED
data/lib/stockcruncher/cli.rb
CHANGED
@@ -60,8 +60,8 @@ module StockCruncher
|
|
60
60
|
config = YAML.load_file(opts['config'])
|
61
61
|
cruncher = StockCruncher::AlphaVantage.new(config, opts['insecure'])
|
62
62
|
raw_data = cruncher.crunch_quote(symbol)
|
63
|
-
puts raw_data unless opts['quiet']
|
64
63
|
StockCruncher::InfluxDB.new(config).export_last_day(raw_data)
|
64
|
+
puts raw_data unless opts['quiet']
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/bin/ruby
|
2
2
|
# frozen_string_literal: true
|
3
3
|
|
4
|
+
require 'date'
|
4
5
|
require 'net/http'
|
5
6
|
|
6
7
|
module StockCruncher
|
@@ -12,10 +13,16 @@ module StockCruncher
|
|
12
13
|
@insecure = insecure
|
13
14
|
end
|
14
15
|
|
16
|
+
# Method to create a new hash from two arrays of keys and values
|
17
|
+
def create_hash(descriptions, values)
|
18
|
+
descriptions.split(',').zip(values.split(',')).to_h
|
19
|
+
end
|
20
|
+
|
15
21
|
# Method to export latest data to database
|
16
22
|
def export_last_day(raw)
|
17
|
-
|
18
|
-
|
23
|
+
raise StandardError, 'No data to export' if raw.match?(/{}/)
|
24
|
+
|
25
|
+
values = create_hash(*raw.split("\r\n"))
|
19
26
|
values['close'] = values.delete('price')
|
20
27
|
values['changePercent'] = values['changePercent'].delete('%')
|
21
28
|
tags = { 'symbol' => values.delete('symbol') }
|
@@ -6,7 +6,7 @@ quote = 'symbol,open,high,low,price,volume,latestDay,previousClose,change,ch' \
|
|
6
6
|
"angePercent\r\nSYM,100.0000,100.1000,99.9000,100.0000,4,2020-07-30," \
|
7
7
|
"100.0000,0.0000,0.0000%\r\n"
|
8
8
|
|
9
|
-
describe StockCruncher::CLI do
|
9
|
+
describe StockCruncher::CLI do # rubocop:disable Metrics/BlockLength
|
10
10
|
context 'version' do
|
11
11
|
it 'prints the version.' do
|
12
12
|
out = "StockCruncher version #{StockCruncher::VERSION}\n"
|
@@ -20,6 +20,12 @@ describe StockCruncher::CLI do
|
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
+
context 'quote NODATA -c spec/files/stockcruncher.yml' do
|
24
|
+
it 'Should not get any data and should fail.' do
|
25
|
+
expect { start(self) }.to raise_error(SystemExit)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
23
29
|
context 'quote SYM -c spec/files/stockcruncher.yml' do
|
24
30
|
it 'Get the quote for SYM.' do
|
25
31
|
expect { start(self) }.to output(quote).to_stdout
|
@@ -9,6 +9,9 @@ quote = 'symbol,open,high,low,price,volume,latestDay,previousClose,change,ch' \
|
|
9
9
|
RSpec.configure do |config|
|
10
10
|
config.before(:each) do
|
11
11
|
# requests an API without extra arguments
|
12
|
+
stub_request(:get, 'https://www.alphavantage.co/query?' \
|
13
|
+
'function=GLOBAL_QUOTE&symbol=NODATA&apikey=demo&datatype=csv')
|
14
|
+
.to_return('status' => 200, 'body' => '{}', 'headers' => {})
|
12
15
|
stub_request(:get, 'https://www.alphavantage.co/query?' \
|
13
16
|
'function=GLOBAL_QUOTE&symbol=SYM&apikey=demo&datatype=csv')
|
14
17
|
.to_return('status' => 200, 'body' => quote, 'headers' => {})
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stockcruncher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Delaplace
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|