old_sql 1.4.0 → 1.5.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.
data/lib/old_sql/engine.rb
CHANGED
@@ -7,5 +7,10 @@ module OldSql
|
|
7
7
|
initializer "static assets" do |app|
|
8
8
|
app.middleware.use ::ActionDispatch::Static, "#{root}/public"
|
9
9
|
end
|
10
|
+
|
11
|
+
rake_tasks do
|
12
|
+
Dir[File.join(File.dirname(__FILE__),'tasks/*.rake')].each { |f| load f }
|
13
|
+
#load "rails_admin/railties/tasks.rake"
|
14
|
+
end
|
10
15
|
end
|
11
16
|
end
|
@@ -20,8 +20,6 @@ module OldSql
|
|
20
20
|
template = File.read("#{Rails.root}/config/old_sql/report_sql/#{report_sql}.erb")
|
21
21
|
sql = Erubis::Eruby.new(template).result(vars)
|
22
22
|
|
23
|
-
Rails.logger.debug sql
|
24
|
-
|
25
23
|
begin
|
26
24
|
#todo change to a reporting db
|
27
25
|
db = ActiveRecord::Base.connection();
|
@@ -48,10 +46,6 @@ module OldSql
|
|
48
46
|
end
|
49
47
|
end
|
50
48
|
|
51
|
-
if Rails.env == "development"
|
52
|
-
Rails.logger.debug "PARSED DATA:\n@data"
|
53
|
-
end
|
54
|
-
|
55
49
|
@data
|
56
50
|
end
|
57
51
|
|
@@ -75,7 +69,8 @@ module OldSql
|
|
75
69
|
end
|
76
70
|
|
77
71
|
def parse_design(design, resultset)
|
78
|
-
|
72
|
+
return nil if @rec.nil?
|
73
|
+
|
79
74
|
model = OldSql::ReportDesign::Parser.read_file("#{design}.csv")
|
80
75
|
|
81
76
|
init(resultset)
|
@@ -114,12 +109,9 @@ module OldSql
|
|
114
109
|
def eval_expression expression
|
115
110
|
result = 0.0
|
116
111
|
begin
|
117
|
-
Rails.logger.debug "Evalutating Expression: #{expression}"
|
118
112
|
result = eval(expression)
|
119
113
|
rescue ZeroDivisionError => e
|
120
|
-
Rails.logger.error e
|
121
114
|
rescue Exception => e
|
122
|
-
Rails.logger.error e
|
123
115
|
end
|
124
116
|
|
125
117
|
if result.class == Float || result.class == Fixnum
|
@@ -132,8 +124,6 @@ module OldSql
|
|
132
124
|
result = round(result.to_f, OldSql.rounding_precision)
|
133
125
|
end
|
134
126
|
|
135
|
-
Rails.logger.debug "Expression result: #{result}"
|
136
|
-
|
137
127
|
result
|
138
128
|
end
|
139
129
|
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module OldSql
|
2
|
+
class ShellReportFacade
|
3
|
+
def self.run_report(report, env, start_date, end_date, clean)
|
4
|
+
template = File.read("#{OldSql::ReportDesign::Parser.report_design_path}/../reports.yml")
|
5
|
+
report_config = YAML.load(Erubis::Eruby.new(template).result)[report]
|
6
|
+
|
7
|
+
set_logger
|
8
|
+
set_connection(env)
|
9
|
+
|
10
|
+
base_parser = OldSql::ReportProcessor::Base.new
|
11
|
+
data = base_parser.execute_query(report_config['report_sql'],start_date,end_date,nil,
|
12
|
+
report_config['report_design'],report_config['report_processor'])
|
13
|
+
|
14
|
+
print_header(report, start_date, end_date, clean)
|
15
|
+
print_data(data, report_config['fields'], clean)
|
16
|
+
print_footer(clean)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def self.print_header(report, start_date, end_date, clean)
|
22
|
+
puts "#######################################################################" unless clean
|
23
|
+
puts "#{report.upcase} REPORT START_DATE:#{start_date} END_DATE:#{end_date}" unless clean
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.print_data(data, fields, clean)
|
27
|
+
puts "-----------------------------------------------------------------------" unless clean
|
28
|
+
|
29
|
+
print_fields(fields, clean)
|
30
|
+
|
31
|
+
if data.nil?
|
32
|
+
puts "NO DATA"
|
33
|
+
return
|
34
|
+
end
|
35
|
+
|
36
|
+
data[:rows].each do |row|
|
37
|
+
line = ""
|
38
|
+
first = true
|
39
|
+
row[:cell].each do |cell|
|
40
|
+
line << ", " if !first
|
41
|
+
line << cell.to_s
|
42
|
+
first = false
|
43
|
+
end
|
44
|
+
puts line
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.print_fields(fields, clean)
|
49
|
+
first = true
|
50
|
+
fields.each do |f|
|
51
|
+
print ", " if !first
|
52
|
+
print "#{f.upcase}"
|
53
|
+
first = false
|
54
|
+
end
|
55
|
+
print "\n\n"
|
56
|
+
end
|
57
|
+
|
58
|
+
def self.print_footer(clean)
|
59
|
+
puts "-----------------------------------------------------------------------" unless clean
|
60
|
+
puts "COMPLETED AT:#{Time.now}" unless clean
|
61
|
+
puts "#######################################################################" unless clean
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.set_logger
|
65
|
+
if defined?(Rails)
|
66
|
+
Rails.logger = Logger.new(STDOUT)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.set_connection(env)
|
71
|
+
dbconfig = YAML::load(File.open(Rails.root.join("config/database.yml")))
|
72
|
+
ActiveRecord::Base.establish_connection(dbconfig[env])
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'erubis'
|
2
|
+
require 'old_sql/shell_report_facade'
|
3
|
+
require 'old_sql/report_design/parser'
|
4
|
+
require 'old_sql/report_processor/base'
|
5
|
+
|
6
|
+
namespace :old_sql do
|
7
|
+
namespace :print do
|
8
|
+
desc 'Print report (see reports.yml) using a date range. Pass true for clean to just include data.'
|
9
|
+
task :range, :report, :env, :start, :end, :clean do |t, args|
|
10
|
+
report = args[:report]
|
11
|
+
env = args[:env]
|
12
|
+
start_date = args[:start]
|
13
|
+
end_date = args[:end]
|
14
|
+
clean = args[:clean].nil? ? false : true
|
15
|
+
|
16
|
+
OldSql::ShellReportFacade.run_report(report, env, start_date, end_date, clean)
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'Print report for today. Pass true for clean to just include data.'
|
20
|
+
task :today, :report, :env, :clean do |t, args|
|
21
|
+
report = args[:report]
|
22
|
+
env = args[:env]
|
23
|
+
clean = args[:clean].nil? ? false : true
|
24
|
+
|
25
|
+
now = Date.today
|
26
|
+
start_date = now
|
27
|
+
end_date = now + 1
|
28
|
+
|
29
|
+
OldSql::ShellReportFacade.run_report(report, env, start_date.to_s, end_date.to_s, clean)
|
30
|
+
end
|
31
|
+
|
32
|
+
desc 'Print report for the current week. Pass true for clean to just include data.'
|
33
|
+
task :week, :report, :env, :clean do |t, args|
|
34
|
+
report = args[:report]
|
35
|
+
env = args[:env]
|
36
|
+
clean = args[:clean].nil? ? false : true
|
37
|
+
|
38
|
+
now = Date.today
|
39
|
+
start_date = now - now.cwday + 1
|
40
|
+
end_date = now - now.cwday + 8
|
41
|
+
|
42
|
+
OldSql::ShellReportFacade.run_report(report, env, start_date.to_s, end_date.to_s, clean)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: old_sql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.
|
5
|
+
version: 1.5.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Eddie Gonzales
|
@@ -79,6 +79,8 @@ files:
|
|
79
79
|
- lib/old_sql/report_design/parser.rb
|
80
80
|
- lib/old_sql/report_design/row.rb
|
81
81
|
- lib/old_sql/report_processor/base.rb
|
82
|
+
- lib/old_sql/shell_report_facade.rb
|
83
|
+
- lib/old_sql/tasks/old_sql.rake
|
82
84
|
- public/javascripts/old_sql/date_format.js
|
83
85
|
- public/javascripts/old_sql/jqgrid/i18n/grid.locale-bg.js
|
84
86
|
- public/javascripts/old_sql/jqgrid/i18n/grid.locale-bg1251.js
|
@@ -180,7 +182,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
180
182
|
requirements:
|
181
183
|
- - ">="
|
182
184
|
- !ruby/object:Gem::Version
|
183
|
-
hash: -
|
185
|
+
hash: -2087005065096148738
|
184
186
|
segments:
|
185
187
|
- 0
|
186
188
|
version: "0"
|