sc_analytics 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sc_analytics/query.rb +8 -16
- data/lib/sc_analytics/version.rb +1 -1
- data/lib/sc_analytics.rb +3 -2
- metadata +2 -3
- data/bin/run_report.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad7b46ef538fe53b0f49427d9a463c01974219a6
|
4
|
+
data.tar.gz: f04a324d58419b59e5e71d6476cba83db1c12ee6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ee4936d4feb370c7a9787b6a4634ad94e1b791cd4d3e43c253d526ee8ab820f76e167bbdf9098b3e72d7310d6cb72f7e109343ff2796e6d35606ea9fd2a49e35
|
7
|
+
data.tar.gz: fc16d994afc77015de624ccd7b01989b207d5ffcf660ea8d2c9105c51c580b2e9d5d216a4ec648fd7b784c97ca19cca7ef1e8ad16ba05e515c6391134275978e
|
data/lib/sc_analytics/query.rb
CHANGED
@@ -3,7 +3,7 @@ module SCAnalytics
|
|
3
3
|
class Query
|
4
4
|
require 'erb'
|
5
5
|
|
6
|
-
attr_reader :connection, :results, :query_name, :bind_variables, :csv_file, :combined_csv_file, :csv_dir, :csv_combined_dir, :cursor, :columns_to_cast, :start_time, :end_time
|
6
|
+
attr_reader :connection, :threads, :results, :query_name, :bind_variables, :csv_file, :combined_csv_file, :csv_dir, :csv_combined_dir, :cursor, :columns_to_cast, :start_time, :end_time
|
7
7
|
attr_accessor :sql, :database, :auto_cast, :concurrent
|
8
8
|
alias_method :result, :results
|
9
9
|
alias_method :name, :query_name
|
@@ -233,7 +233,7 @@ module SCAnalytics
|
|
233
233
|
end
|
234
234
|
|
235
235
|
def suggest_dir(file_name, dir)
|
236
|
-
return file_name unless File.dirname(file_name) == "."
|
236
|
+
return file_name unless File.dirname(file_name) == "." && dir != "."
|
237
237
|
|
238
238
|
FileUtils.mkdir_p(dir.to_s)
|
239
239
|
"#{dir}/" + file_name
|
@@ -255,23 +255,15 @@ module SCAnalytics
|
|
255
255
|
@start_time = Time.now
|
256
256
|
|
257
257
|
results = {}
|
258
|
-
threads =
|
259
|
-
@tines.
|
260
|
-
threads
|
261
|
-
|
262
|
-
|
263
|
-
results[query.database.first] = query.results
|
258
|
+
@threads = {}
|
259
|
+
@tines.each_pair do |db, query|
|
260
|
+
@threads[db] = Thread.new(query) do |qry|
|
261
|
+
qry.run
|
262
|
+
results[qry.database.first] = qry.results
|
264
263
|
end
|
265
264
|
end
|
266
265
|
|
267
|
-
threads.
|
268
|
-
|
269
|
-
threads.each do |thread|
|
270
|
-
thread.run
|
271
|
-
thread.join if @concurrent == false
|
272
|
-
end
|
273
|
-
|
274
|
-
threads.each{|thread| thread.join }
|
266
|
+
@threads.each_value{|thread| thread.join }
|
275
267
|
|
276
268
|
@end_time = Time.now
|
277
269
|
return results
|
data/lib/sc_analytics/version.rb
CHANGED
data/lib/sc_analytics.rb
CHANGED
@@ -8,6 +8,7 @@ require 'fileutils'
|
|
8
8
|
require 'csv'
|
9
9
|
require 'win32ole'
|
10
10
|
require 'thread'
|
11
|
+
Thread.abort_on_exception = true
|
11
12
|
|
12
13
|
begin
|
13
14
|
# for development environment
|
@@ -27,8 +28,8 @@ module SCAnalytics
|
|
27
28
|
|
28
29
|
threads = []
|
29
30
|
queries.each do |query|
|
30
|
-
threads << Thread.new do
|
31
|
-
|
31
|
+
threads << Thread.new(query) do |qry|
|
32
|
+
qry.run
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sc_analytics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Rowan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -91,7 +91,6 @@ files:
|
|
91
91
|
- README.md
|
92
92
|
- Rakefile
|
93
93
|
- bin/console
|
94
|
-
- bin/run_report.rb
|
95
94
|
- bin/setup
|
96
95
|
- example/db_configs_sample.yml
|
97
96
|
- lib/sc_analytics.rb
|
data/bin/run_report.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'sc_analytics'
|
2
|
-
include SCAnalytics
|
3
|
-
|
4
|
-
report = ARGV[0]
|
5
|
-
unless report
|
6
|
-
puts "Please enter the name of the report you wish to run"
|
7
|
-
report = STDIN.gets.strip
|
8
|
-
raise unless report
|
9
|
-
end
|
10
|
-
|
11
|
-
*report_path, report_name = report.split("/")
|
12
|
-
report_name = report_name.sub(/(\.rb)*$/, ".rb")
|
13
|
-
|
14
|
-
puts
|
15
|
-
job_start = alert("BEGINNING JOB #{report_name.gsub(/\.rb$/,'')}")
|
16
|
-
|
17
|
-
Dir.chdir(report_path.join("/")) unless report_path.empty?
|
18
|
-
|
19
|
-
instructions = File.read(report_name)
|
20
|
-
SCAnalytics.instance_eval(instructions, report_name)
|
21
|
-
|
22
|
-
alert("COMPLETED JOB #{report_name} in #{(Time.now - job_start)/60} minutes")
|