old_sql 1.4.0 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
- Rails.logger.info "PARSING DESIGN DOCUMENT #{design}.csv"
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.4.0
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: -2148067506136069246
185
+ hash: -2087005065096148738
184
186
  segments:
185
187
  - 0
186
188
  version: "0"