old_sql 0.9.0 → 0.10.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/Gemfile +2 -0
- data/app/controllers/old_sql/report_controller.rb +7 -1
- data/config/old_sql/report_sql/user.erb.example +6 -0
- data/config/old_sql/reports.yml.example +15 -0
- data/lib/generators/old_sql/USAGE +15 -0
- data/lib/generators/old_sql/install_generator.rb +125 -0
- data/lib/generators/old_sql/install_migrations_generator.rb +24 -0
- data/lib/generators/old_sql/old_sql_generator.rb +23 -0
- data/lib/generators/old_sql/templates/add_old_sql_admin_to_users_migration.rb +9 -0
- data/lib/old_sql/engine.rb +0 -2
- data/lib/old_sql/report_processor/base.rb +1 -1
- data/lib/old_sql/report_processor/user_processor.rb.example +19 -0
- metadata +35 -5
data/Gemfile
CHANGED
@@ -2,6 +2,8 @@ require 'csv'
|
|
2
2
|
|
3
3
|
module OldSql
|
4
4
|
class ReportController < ApplicationController
|
5
|
+
before_filter :authenticate_user!
|
6
|
+
before_filter :ensure_old_sql_admin!
|
5
7
|
before_filter :_init
|
6
8
|
before_filter :_reports
|
7
9
|
|
@@ -99,6 +101,10 @@ module OldSql
|
|
99
101
|
|
100
102
|
|
101
103
|
private
|
104
|
+
def ensure_old_sql_admin!
|
105
|
+
raise CanCan::AccessDenied unless current_user.old_sql_admin?
|
106
|
+
end
|
107
|
+
|
102
108
|
def _init
|
103
109
|
#todo add Devise support
|
104
110
|
#@authorization_adapter.authorize(:index) if @authorization_adapter
|
@@ -108,7 +114,7 @@ module OldSql
|
|
108
114
|
end
|
109
115
|
|
110
116
|
def _reports
|
111
|
-
template = File.read("#{Rails.root}/config/reports.yml")
|
117
|
+
template = File.read("#{Rails.root}/config/old_sql/reports.yml")
|
112
118
|
@reports = YAML.load(Erubis::Eruby.new(template).result)
|
113
119
|
end
|
114
120
|
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Old SQL Reports YAML
|
2
|
+
# This is an example report. Replace it with your actual reports.
|
3
|
+
#
|
4
|
+
# 'processor:' is optional, and should point to a class in lib/old_sql.
|
5
|
+
# See lib/old_sql/user_processor.rb for an example.
|
6
|
+
|
7
|
+
user:
|
8
|
+
name: user
|
9
|
+
value: User
|
10
|
+
report_sql: user
|
11
|
+
virality: false
|
12
|
+
#processor: User_Processor
|
13
|
+
fields:
|
14
|
+
- 'id'
|
15
|
+
- 'name'
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Description:
|
2
|
+
Installs Old SQL.
|
3
|
+
|
4
|
+
Examples:
|
5
|
+
`rails generate old_sql:install`
|
6
|
+
|
7
|
+
Creates locale and migration files:
|
8
|
+
|
9
|
+
Locales: config/locales/old_sql.XX.yml
|
10
|
+
|
11
|
+
Creates SQL and Parser directories and examples:
|
12
|
+
|
13
|
+
Reports: config/old_sql/reports.yml
|
14
|
+
SQL: config/old_sql/report_sql/
|
15
|
+
Parsers: lib/old_sql/report_processor/
|
@@ -0,0 +1,125 @@
|
|
1
|
+
module OldSql
|
2
|
+
class InstallGenerator < Rails::Generators::Base
|
3
|
+
source_root File.expand_path('../templates', __FILE__)
|
4
|
+
argument :model_name, :type => :string, :default => 'user'
|
5
|
+
|
6
|
+
desc "Old SQL Install"
|
7
|
+
|
8
|
+
def check_for_devise
|
9
|
+
puts "Hello!0
|
10
|
+
Old SQL works with devise. Checking for a current installation of devise!
|
11
|
+
"
|
12
|
+
if defined?(Devise)
|
13
|
+
check_for_devise_models
|
14
|
+
else
|
15
|
+
puts "Please put gem 'devise' into your Gemfile"
|
16
|
+
end
|
17
|
+
|
18
|
+
copy_locales_files
|
19
|
+
create_old_sql_dirs
|
20
|
+
copy_old_sql_files
|
21
|
+
|
22
|
+
puts "Also you need a new migration. We'll generate it for you now."
|
23
|
+
invoke 'old_sql:install_migrations'
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def check_for_devise_models
|
29
|
+
# File.exists?
|
30
|
+
devise_path = FileUtils.pwd + "/config/initializers/devise.rb"
|
31
|
+
|
32
|
+
if File.exists?(devise_path)
|
33
|
+
parse_route_files
|
34
|
+
else
|
35
|
+
puts "Looks like you don't have devise install! We'll install it for you!"
|
36
|
+
invoke 'devise:install'
|
37
|
+
set_devise
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def parse_route_files
|
43
|
+
# check if migrations exist
|
44
|
+
app_path = Rails.public_path.split("/")
|
45
|
+
app_path.delete_at(-1)
|
46
|
+
app_path = app_path.join("/")
|
47
|
+
routes_path = app_path + "/config/routes.rb"
|
48
|
+
|
49
|
+
content = ""
|
50
|
+
|
51
|
+
File.readlines(routes_path).each{|line|
|
52
|
+
content += line
|
53
|
+
}
|
54
|
+
|
55
|
+
unless content.index("devise_for").nil?
|
56
|
+
# there is a devise_for in routes => Do nothing
|
57
|
+
puts "Great! You have devise installed and setup!"
|
58
|
+
else
|
59
|
+
puts "Great you have devise installed, but not set up!"
|
60
|
+
set_devise
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def set_devise
|
65
|
+
puts "Setting up devise for you!
|
66
|
+
======================================================"
|
67
|
+
invoke 'devise', [model_name]
|
68
|
+
end
|
69
|
+
|
70
|
+
def copy_locales_files
|
71
|
+
print "Now copying locales files! "
|
72
|
+
gem_path = __FILE__
|
73
|
+
gem_path = gem_path.split("/")
|
74
|
+
|
75
|
+
gem_path = gem_path[0..-5]
|
76
|
+
gem_path = gem_path.join("/")
|
77
|
+
###
|
78
|
+
locales_path = gem_path + "/config/locales/*.yml"
|
79
|
+
|
80
|
+
app_path = Rails.public_path.split("/")
|
81
|
+
app_path.delete_at(-1)
|
82
|
+
app_path = app_path.join("/")
|
83
|
+
|
84
|
+
app_path = app_path + "/config/locales"
|
85
|
+
|
86
|
+
unless File.directory?(app_path)
|
87
|
+
FileUtils.mkdir app_path
|
88
|
+
end
|
89
|
+
|
90
|
+
Dir.glob(locales_path).each do |file|
|
91
|
+
file_path = file.split("/")
|
92
|
+
file_path = file_path[-1]
|
93
|
+
FileUtils.copy_file(file, app_path + "/" + file_path)
|
94
|
+
print "."
|
95
|
+
end
|
96
|
+
print "\n"
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
def create_old_sql_dirs
|
101
|
+
app_path = Rails.public_path.split("/")
|
102
|
+
app_path.delete_at(-1)
|
103
|
+
app_path = app_path.join("/")
|
104
|
+
|
105
|
+
empty_directory(app_path + "/config/old_sql/")
|
106
|
+
empty_directory(app_path + "/config/old_sql/report_sql")
|
107
|
+
empty_directory(app_path + "/lib/old_sql/report_processor")
|
108
|
+
end
|
109
|
+
|
110
|
+
def copy_old_sql_files
|
111
|
+
app_path = Rails.public_path.split("/")
|
112
|
+
app_path.delete_at(-1)
|
113
|
+
app_path = app_path.join("/")
|
114
|
+
|
115
|
+
gem_path = __FILE__
|
116
|
+
gem_path = gem_path.split("/")
|
117
|
+
gem_path = gem_path[0..-5]
|
118
|
+
gem_path = gem_path.join("/")
|
119
|
+
|
120
|
+
copy_file gem_path + "/config/old_sql/reports.yml.example", app_path + "/config/old_sql/reports.yml"
|
121
|
+
copy_file gem_path + "/config/old_sql/report_sql/user.erb.example", app_path + "/config/old_sql/report_sql/user.erb"
|
122
|
+
copy_file gem_path + "/lib/old_sql/report_processor/user_processor.rb.example", app_path + "/lib/old_sql/report_processor/user_processor.rb"
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'rails/generators'
|
2
|
+
require 'rails/generators/migration'
|
3
|
+
|
4
|
+
module OldSql
|
5
|
+
class InstallMigrationsGenerator < Rails::Generators::Base
|
6
|
+
include Rails::Generators::Migration
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
8
|
+
|
9
|
+
def self.next_migration_number(dirname)
|
10
|
+
if ActiveRecord::Base.timestamped_migrations
|
11
|
+
migration_number = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i
|
12
|
+
migration_number += 1
|
13
|
+
migration_number.to_s
|
14
|
+
else
|
15
|
+
"%.3d" % (current_migration_number(dirname) + 1)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def create_migration_file
|
20
|
+
migration_template 'add_old_sql_admin_to_users_migration.rb', 'db/migrate/add_old_sql_admin_to_users.rb' rescue p $!.message
|
21
|
+
#sleep 1 # ensure scripts have different timestamps
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module OldSql
|
2
|
+
class OldSqlGenerator < Rails::Generators::Base
|
3
|
+
source_root File.expand_path('../templates', __FILE__)
|
4
|
+
namespace "old_sql"
|
5
|
+
|
6
|
+
def print_instructions
|
7
|
+
puts "OldSql!
|
8
|
+
|
9
|
+
Hello, to install old_sql into your app you need to run:
|
10
|
+
|
11
|
+
rails g old_sql:install
|
12
|
+
|
13
|
+
By default Old SQL works with Devise to provide authentication. If you use
|
14
|
+
Devise, but want use another model than the default 'user' you can provide the
|
15
|
+
custom model name as an argument:
|
16
|
+
|
17
|
+
rails g old_sql:install member
|
18
|
+
|
19
|
+
"
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
data/lib/old_sql/engine.rb
CHANGED
@@ -15,7 +15,7 @@ module OldSql
|
|
15
15
|
vars = vars.merge query_vars
|
16
16
|
end
|
17
17
|
|
18
|
-
template = File.read("#{Rails.root}/config/report_sql/#{report_sql}.erb")
|
18
|
+
template = File.read("#{Rails.root}/config/old_sql/report_sql/#{report_sql}.erb")
|
19
19
|
sql = Erubis::Eruby.new(template).result(vars)
|
20
20
|
|
21
21
|
Rails.logger.debug sql
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'old_sql/report_processor/base'
|
2
|
+
|
3
|
+
module OldSql
|
4
|
+
module ReportProcessor
|
5
|
+
class UserProcessor < OldSql::ReportProcessor::Base
|
6
|
+
|
7
|
+
def parse(resultset)
|
8
|
+
init(resultset)
|
9
|
+
|
10
|
+
Rails.logger.debug "REC: #{@rec}"
|
11
|
+
|
12
|
+
new_row(nil, [@rec['id'], @rec['name']])
|
13
|
+
new_row('Totals', ['...'])
|
14
|
+
|
15
|
+
@data
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: old_sql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.10.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Eddie Gonzales
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-06-
|
13
|
+
date: 2011-06-08 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: sanitize
|
@@ -24,16 +24,38 @@ dependencies:
|
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: *id001
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
|
-
name:
|
27
|
+
name: devise
|
28
28
|
requirement: &id002 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: "0"
|
34
|
-
type: :
|
34
|
+
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: cancan
|
39
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: "0"
|
45
|
+
type: :runtime
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: jeweler
|
50
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: "0"
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *id004
|
37
59
|
description: OldSQL is a Rails Engine database reporting gem that uses plain old SQL
|
38
60
|
email: egonzales@pureplay.com
|
39
61
|
executables: []
|
@@ -54,11 +76,19 @@ files:
|
|
54
76
|
- app/views/old_sql/report/index.html.erb
|
55
77
|
- app/views/old_sql/report/print.html.erb
|
56
78
|
- config/locales/old_sql.en.yml
|
79
|
+
- config/old_sql/report_sql/user.erb.example
|
80
|
+
- config/old_sql/reports.yml.example
|
57
81
|
- config/routes.rb
|
58
82
|
- lib/extensions/action_controller/base.rb
|
83
|
+
- lib/generators/old_sql/USAGE
|
84
|
+
- lib/generators/old_sql/install_generator.rb
|
85
|
+
- lib/generators/old_sql/install_migrations_generator.rb
|
86
|
+
- lib/generators/old_sql/old_sql_generator.rb
|
87
|
+
- lib/generators/old_sql/templates/add_old_sql_admin_to_users_migration.rb
|
59
88
|
- lib/old_sql.rb
|
60
89
|
- lib/old_sql/engine.rb
|
61
90
|
- lib/old_sql/report_processor/base.rb
|
91
|
+
- lib/old_sql/report_processor/user_processor.rb.example
|
62
92
|
- public/javascripts/old_sql/date_format.js
|
63
93
|
- public/javascripts/old_sql/jqgrid/i18n/grid.locale-bg.js
|
64
94
|
- public/javascripts/old_sql/jqgrid/i18n/grid.locale-bg1251.js
|
@@ -159,7 +189,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
159
189
|
requirements:
|
160
190
|
- - ">="
|
161
191
|
- !ruby/object:Gem::Version
|
162
|
-
hash: -
|
192
|
+
hash: -3491554766410394640
|
163
193
|
segments:
|
164
194
|
- 0
|
165
195
|
version: "0"
|