ytterb 0.2.155.223257 → 0.2.156.224221
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/Rakefile +3 -1
- data/lib/ytterb/stock_symbol/market_loader.rb +8 -1
- data/lib/ytterb/stock_symbol/report.rb +16 -0
- data/lib/ytterb/stock_symbol/report_filters/freshness.rb +19 -1
- data/lib/ytterb/stock_symbol/report_filters/report_base.rb +21 -0
- data/lib/ytterb/stock_symbol/stock.rb +12 -8
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7ddfec0f363a0299e160e9ba19aadeafe8c78815
|
|
4
|
+
data.tar.gz: 7e7f2e4317f2bd060a5a0f1df8a5fbf833996d4d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9685d129dda69a06efeaadb3fbc136a53eeb7880db1b181b77b6e589891787fecb9edc90874b5bc16ab87220778c5d02244e24736584c0da0b276d810c7a9d4c
|
|
7
|
+
data.tar.gz: bd7448be6c64d5964f392fd54ecfd2507689c42f29a20efe9cae38d809147e07d29563517e1d2d677a0be5ed4be497239f87bd616ba66c7ec863f472df4cac83
|
data/Rakefile
CHANGED
|
@@ -35,12 +35,14 @@ RSpec::Core::RakeTask.new
|
|
|
35
35
|
task :test => :spec
|
|
36
36
|
task :default => :spec
|
|
37
37
|
|
|
38
|
+
desc "builds the stock cache"
|
|
38
39
|
task :build_stock_cache do
|
|
39
40
|
require_relative 'lib/ytterb'
|
|
40
41
|
Ytterb::StockSymbol::CacheBuilder.new
|
|
41
42
|
end
|
|
42
43
|
|
|
44
|
+
desc "generate stock data freshness report"
|
|
43
45
|
task :generate_freshness_report do
|
|
44
46
|
require_relative 'lib/ytterb'
|
|
45
|
-
|
|
47
|
+
Ytterb::StockSymbol::Report.new(:type => :freshness).generate
|
|
46
48
|
end
|
|
@@ -4,15 +4,22 @@ require_relative 'stock'
|
|
|
4
4
|
module Ytterb
|
|
5
5
|
module StockSymbol
|
|
6
6
|
class MarketLoader
|
|
7
|
-
def initialize
|
|
7
|
+
def initialize(options={})
|
|
8
8
|
@stock_symbols = []
|
|
9
9
|
path = Util::Settings.new.get_raw_symbol_list_data_dir
|
|
10
|
+
i=1
|
|
10
11
|
Dir.entries(path).select {|f| !File.directory?(f) and /companylist_[a-zA-Z]+\.csv/ =~ f }.each do |file_to_process|
|
|
11
12
|
market = /companylist_(?<market>[a-zA-Z]+)\.csv/.match(file_to_process)[:market]
|
|
12
13
|
Stock.builder_from_csv(File.join(path,file_to_process),market) do |stock_symbol|
|
|
14
|
+
if options[:with_feedback]
|
|
15
|
+
print "."
|
|
16
|
+
print "#{i}\n" if (i%80==0)
|
|
17
|
+
i+=1
|
|
18
|
+
end
|
|
13
19
|
@stock_symbols << stock_symbol
|
|
14
20
|
end
|
|
15
21
|
end
|
|
22
|
+
print "\n" if options[:with_feedback]
|
|
16
23
|
end
|
|
17
24
|
|
|
18
25
|
def industries
|
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
require_relative '../util'
|
|
2
2
|
require_relative '../yql'
|
|
3
|
+
require_relative '_req'
|
|
3
4
|
|
|
4
5
|
module Ytterb
|
|
5
6
|
module StockSymbol
|
|
6
7
|
class Report
|
|
8
|
+
|
|
9
|
+
def initialize(options={})
|
|
10
|
+
if options[:type]
|
|
11
|
+
case options[:type]
|
|
12
|
+
when :freshness
|
|
13
|
+
@report = Freshness.new
|
|
14
|
+
else
|
|
15
|
+
raise "unknown report type #{options[:type]}"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
7
19
|
|
|
20
|
+
def generate
|
|
21
|
+
@report.process
|
|
22
|
+
puts @report.output
|
|
23
|
+
end
|
|
8
24
|
end
|
|
9
25
|
end
|
|
10
26
|
end
|
|
@@ -1,10 +1,28 @@
|
|
|
1
|
+
require 'date'
|
|
2
|
+
|
|
1
3
|
require_relative '../../util'
|
|
2
4
|
require_relative '../../yql'
|
|
5
|
+
require_relative 'report_base'
|
|
6
|
+
|
|
3
7
|
|
|
4
8
|
module Ytterb
|
|
5
9
|
module StockSymbol
|
|
6
|
-
class Freshness
|
|
10
|
+
class Freshness < ReportBase
|
|
11
|
+
def process
|
|
12
|
+
@freshness = {}
|
|
13
|
+
@sml.stock_symbols.each do |smbl|
|
|
14
|
+
latest = smbl.history.keys.collect {|x| Date.parse(x)}.sort.last.to_s
|
|
15
|
+
@freshness[latest] ||= []
|
|
16
|
+
@freshness[latest] << smbl
|
|
17
|
+
end
|
|
18
|
+
end
|
|
7
19
|
|
|
20
|
+
def output
|
|
21
|
+
output = "Freshness report\n" <<
|
|
22
|
+
"----------------\n"
|
|
23
|
+
@freshness.keys.sort.reverse.each {|k| output += "'#{k}' => #{@freshness[k].size} \n" }
|
|
24
|
+
output
|
|
25
|
+
end
|
|
8
26
|
end
|
|
9
27
|
end
|
|
10
28
|
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
require_relative '../../util'
|
|
2
|
+
require_relative '../../yql'
|
|
3
|
+
|
|
4
|
+
module Ytterb
|
|
5
|
+
module StockSymbol
|
|
6
|
+
class ReportBase
|
|
7
|
+
def initialize
|
|
8
|
+
@sml = MarketLoader.new(:with_feedback => true)
|
|
9
|
+
@settings = Util::Settings.new
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def process
|
|
13
|
+
raise "not implemented"
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def output
|
|
17
|
+
raise "not implemented"
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -46,7 +46,7 @@ module Ytterb
|
|
|
46
46
|
|
|
47
47
|
def load
|
|
48
48
|
symbol_history_file = self.class.get_settings.get_symbol_store_file(self.symbol)
|
|
49
|
-
@history = Util::DataPersistHelper.load(
|
|
49
|
+
@history = Util::DataPersistHelper.load(symbol_history_file) rescue nil
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
def save
|
|
@@ -61,18 +61,22 @@ module Ytterb
|
|
|
61
61
|
end
|
|
62
62
|
|
|
63
63
|
def fetch_history(start_date = nil, end_date = nil)
|
|
64
|
-
start_date ||= self.class.get_settings[:sync_from]
|
|
65
64
|
@history||={}
|
|
66
|
-
@history
|
|
67
|
-
start_date =
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
start_date = @history.keys.collect {|x| Date.parse(x)}.sort.last
|
|
66
|
+
start_date = start_date.to_s if start_date
|
|
67
|
+
start_date ||= self.class.get_settings[:sync_from]
|
|
68
|
+
|
|
70
69
|
self.class.get_yql_client.get_symbol_historical(@options[:symbol], start_date, end_date).each do |line|
|
|
71
|
-
@history[
|
|
72
|
-
@history[:max_sync_date] = line["Date"] if Date.parse(line["Date"]) > Date.parse(@history[:max_sync_date])
|
|
70
|
+
@history[line["Date"]] = line
|
|
73
71
|
end
|
|
74
72
|
save
|
|
75
73
|
end
|
|
74
|
+
|
|
75
|
+
def history
|
|
76
|
+
return {} unless @history
|
|
77
|
+
@history
|
|
78
|
+
end
|
|
79
|
+
|
|
76
80
|
end
|
|
77
81
|
end
|
|
78
82
|
end # Ytterb
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ytterb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.156.224221
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- thext
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-06-
|
|
11
|
+
date: 2014-06-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -107,6 +107,7 @@ files:
|
|
|
107
107
|
- lib/ytterb/stock_symbol/market_loader.rb
|
|
108
108
|
- lib/ytterb/stock_symbol/report.rb
|
|
109
109
|
- lib/ytterb/stock_symbol/report_filters/freshness.rb
|
|
110
|
+
- lib/ytterb/stock_symbol/report_filters/report_base.rb
|
|
110
111
|
- lib/ytterb/stock_symbol/stock.rb
|
|
111
112
|
- lib/ytterb/util.rb
|
|
112
113
|
- lib/ytterb/util/_req.rb
|