amardaxini-enginator 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/Manifest +27 -0
- data/README +30 -0
- data/README.txt +48 -0
- data/Rakefile +15 -0
- data/Readme.rdoc +30 -0
- data/bin/Enginator.rb +3 -0
- data/enginator.gemspec +33 -0
- data/lib/enginator.rb +5 -0
- data/rails_generators/USAGE +31 -0
- data/rails_generators/engine_generator.rb +197 -0
- data/rails_generators/templates/MIT-LICENSE +20 -0
- data/rails_generators/templates/README +13 -0
- data/rails_generators/templates/Rakefile +23 -0
- data/rails_generators/templates/USAGE +8 -0
- data/rails_generators/templates/generator.rb +8 -0
- data/rails_generators/templates/init.rb +1 -0
- data/rails_generators/templates/install.rb +1 -0
- data/rails_generators/templates/just.html.erb +0 -0
- data/rails_generators/templates/load_config.rb +2 -0
- data/rails_generators/templates/my_db.yml +28 -0
- data/rails_generators/templates/plugin.rb +1 -0
- data/rails_generators/templates/tasks.rake +32 -0
- data/rails_generators/templates/test_helper.rb +3 -0
- data/rails_generators/templates/uninstall.rb +1 -0
- data/rails_generators/templates/unit_test.rb +8 -0
- data/test/test_enginator.rb +8 -0
- metadata +87 -0
data/History.txt
ADDED
data/Manifest
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
enginator.gemspec
|
2
|
+
History.txt
|
3
|
+
lib/enginator.rb
|
4
|
+
bin/Enginator.rb
|
5
|
+
Rakefile
|
6
|
+
Manifest
|
7
|
+
README
|
8
|
+
rails_generators/USAGE
|
9
|
+
rails_generators/templates/my_db.yml
|
10
|
+
rails_generators/templates/USAGE
|
11
|
+
rails_generators/templates/init.rb
|
12
|
+
rails_generators/templates/uninstall.rb
|
13
|
+
rails_generators/templates/unit_test.rb
|
14
|
+
rails_generators/templates/Rakefile
|
15
|
+
rails_generators/templates/generator.rb
|
16
|
+
rails_generators/templates/README
|
17
|
+
rails_generators/templates/test_helper.rb
|
18
|
+
rails_generators/templates/plugin.rb
|
19
|
+
rails_generators/templates/MIT-LICENSE
|
20
|
+
rails_generators/templates/install.rb
|
21
|
+
rails_generators/templates/load_config.rb
|
22
|
+
rails_generators/templates/just.html.erb
|
23
|
+
rails_generators/templates/tasks.rake
|
24
|
+
rails_generators/engine_generator.rb
|
25
|
+
README.txt
|
26
|
+
Readme.rdoc
|
27
|
+
test/test_enginator.rb
|
data/README
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
= engine_generator
|
2
|
+
|
3
|
+
* http://github.com/amardaxini/#{project_name}
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
Engine Generator is Used for generating a Rails Engine
|
8
|
+
In this engine has separate Database which Does not relate with Main application database
|
9
|
+
|
10
|
+
== FEATURES/PROBLEMS:
|
11
|
+
|
12
|
+
While installing application as engine we have to copy several files
|
13
|
+
After copy Engine has one single database but here engine has its own database
|
14
|
+
|
15
|
+
# sudo gem install amardaxini-engine_generator
|
16
|
+
# /script/generate engine engine_name sourcedir:pluggapleapplicationpath
|
17
|
+
# change user_name and password in database.yml
|
18
|
+
# rake db:create:all
|
19
|
+
# rake db:migrate
|
20
|
+
If database is other than mysql change database.yml
|
21
|
+
What it Does
|
22
|
+
# It copies sourcepath/app folder to engine name/app
|
23
|
+
# Add self.connection :#{engine name}_dev to all model
|
24
|
+
# Removing application controller and added engine controller which inherits from main app controller
|
25
|
+
# Remaining Application controller in heri from engine controller
|
26
|
+
# Copy routes.rb and paste into vendor/plugins/engine/config/routes.rb
|
27
|
+
# Copy migrate folder into vendor/plugins/engine/db/migrate
|
28
|
+
# Making Significant change in migration file thwn paste into mainapp/db/migrate folder
|
29
|
+
|
30
|
+
|
data/README.txt
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
= enginator
|
2
|
+
|
3
|
+
* FIX (url)
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
FIX (describe your package)
|
8
|
+
|
9
|
+
== FEATURES/PROBLEMS:
|
10
|
+
|
11
|
+
* FIX (list of features or problems)
|
12
|
+
|
13
|
+
== SYNOPSIS:
|
14
|
+
|
15
|
+
FIX (code sample of usage)
|
16
|
+
|
17
|
+
== REQUIREMENTS:
|
18
|
+
|
19
|
+
* FIX (list of requirements)
|
20
|
+
|
21
|
+
== INSTALL:
|
22
|
+
|
23
|
+
* FIX (sudo gem install, anything else)
|
24
|
+
|
25
|
+
== LICENSE:
|
26
|
+
|
27
|
+
(The MIT License)
|
28
|
+
|
29
|
+
Copyright (c) 2009 FIX
|
30
|
+
|
31
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
32
|
+
a copy of this software and associated documentation files (the
|
33
|
+
'Software'), to deal in the Software without restriction, including
|
34
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
35
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
36
|
+
permit persons to whom the Software is furnished to do so, subject to
|
37
|
+
the following conditions:
|
38
|
+
|
39
|
+
The above copyright notice and this permission notice shall be
|
40
|
+
included in all copies or substantial portions of the Software.
|
41
|
+
|
42
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
43
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
44
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
45
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
46
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
47
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
48
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'echoe'
|
4
|
+
|
5
|
+
Echoe.new('enginator', '0.1.0') do |p|
|
6
|
+
p.project = "enginator"
|
7
|
+
p.description = "A collection of useful generator scripts for Rails engine."
|
8
|
+
p.url = ""
|
9
|
+
p.author = 'Amar Daxini'
|
10
|
+
p.email = "amar.daxini (at) gmail (dot) com"
|
11
|
+
p.ignore_pattern = ["script/*"]
|
12
|
+
p.development_dependencies = []
|
13
|
+
end
|
14
|
+
|
15
|
+
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
data/Readme.rdoc
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
= engine_generator
|
2
|
+
|
3
|
+
* http://github.com/amardaxini/#{project_name}
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
Engine Generator is Used for generating a Rails Engine
|
8
|
+
In this engine has separate Database which Does not relate with Main application database
|
9
|
+
|
10
|
+
== FEATURES/PROBLEMS:
|
11
|
+
|
12
|
+
While installing application as engine we have to copy several files
|
13
|
+
After copy Engine has one single database but here engine has its own database
|
14
|
+
|
15
|
+
# sudo gem install amardaxini-engine_generator
|
16
|
+
# /script/generate engine engine_name sourcedir:pluggapleapplicationpath
|
17
|
+
# change user_name and password in database.yml
|
18
|
+
# rake db:create:all
|
19
|
+
# rake db:migrate
|
20
|
+
If database is other than mysql change database.yml
|
21
|
+
What it Does
|
22
|
+
# It copies sourcepath/app folder to engine name/app
|
23
|
+
# Add self.connection :#{engine name}_dev to all model
|
24
|
+
# Removing application controller and added engine controller which inherits from main app controller
|
25
|
+
# Remaining Application controller in heri from engine controller
|
26
|
+
# Copy routes.rb and paste into vendor/plugins/engine/config/routes.rb
|
27
|
+
# Copy migrate folder into vendor/plugins/engine/db/migrate
|
28
|
+
# Making Significant change in migration file thwn paste into mainapp/db/migrate folder
|
29
|
+
|
30
|
+
|
data/bin/Enginator.rb
ADDED
data/enginator.gemspec
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{enginator}
|
5
|
+
s.version = "0.1.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Amar Daxini"]
|
9
|
+
s.date = %q{2009-07-23}
|
10
|
+
s.default_executable = %q{Enginator.rb}
|
11
|
+
s.description = %q{A collection of useful generator scripts for Rails engine.}
|
12
|
+
s.email = %q{amar.daxini (at) gmail (dot) com}
|
13
|
+
s.executables = ["Enginator.rb"]
|
14
|
+
s.extra_rdoc_files = ["lib/enginator.rb", "bin/Enginator.rb", "README", "README.txt"]
|
15
|
+
s.files = ["enginator.gemspec", "History.txt", "lib/enginator.rb", "bin/Enginator.rb", "Rakefile", "Manifest", "README", "rails_generators/USAGE", "rails_generators/templates/my_db.yml", "rails_generators/templates/USAGE", "rails_generators/templates/init.rb", "rails_generators/templates/uninstall.rb", "rails_generators/templates/unit_test.rb", "rails_generators/templates/Rakefile", "rails_generators/templates/generator.rb", "rails_generators/templates/README", "rails_generators/templates/test_helper.rb", "rails_generators/templates/plugin.rb", "rails_generators/templates/MIT-LICENSE", "rails_generators/templates/install.rb", "rails_generators/templates/load_config.rb", "rails_generators/templates/just.html.erb", "rails_generators/templates/tasks.rake", "rails_generators/engine_generator.rb", "README.txt", "Readme.rdoc", "test/test_enginator.rb"]
|
16
|
+
s.homepage = %q{}
|
17
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Enginator", "--main", "README"]
|
18
|
+
s.require_paths = ["lib"]
|
19
|
+
s.rubyforge_project = %q{enginator}
|
20
|
+
s.rubygems_version = %q{1.3.4}
|
21
|
+
s.summary = %q{A collection of useful generator scripts for Rails engine.}
|
22
|
+
s.test_files = ["test/test_enginator.rb"]
|
23
|
+
|
24
|
+
if s.respond_to? :specification_version then
|
25
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
26
|
+
s.specification_version = 3
|
27
|
+
|
28
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
29
|
+
else
|
30
|
+
end
|
31
|
+
else
|
32
|
+
end
|
33
|
+
end
|
data/lib/enginator.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
Description:
|
2
|
+
Explain the generator
|
3
|
+
This generator behaves like as pluguin generator
|
4
|
+
but it copies your app folder of your application
|
5
|
+
to vendor/plugin/<%= file_name %>/app
|
6
|
+
|
7
|
+
if error A copy of ApplicationController has been removed from the module tree but is still active!
|
8
|
+
main_app/config/environments/development.rbmake it true if false config.cache_classes = true
|
9
|
+
|
10
|
+
Example:
|
11
|
+
1)./script/generate engine engine_name sourcedir:pluggapleapplicationpath
|
12
|
+
2)change user_name and password in database.yml
|
13
|
+
3)rake db:create:all
|
14
|
+
4)rake db:migrate
|
15
|
+
If database is other than mysql change database.yml
|
16
|
+
if source_dir is not given then copies own app folder
|
17
|
+
The above generator copy your source application app folder to vendor/app/#{engine_name}/app
|
18
|
+
Copy routes.rb
|
19
|
+
Check that route file any map.root or any map.{...} change as needed
|
20
|
+
It update database.yml file added another mysql adapter named with engine_name_dev with engine_name_dev database
|
21
|
+
Change username and password
|
22
|
+
Then rake db:create:all or create database manually
|
23
|
+
rake db:migrate
|
24
|
+
Some times it Giving an error
|
25
|
+
A copy of ApplicationController has been removed from the module tree but is still active!
|
26
|
+
Config/environment/your mode like development.rb
|
27
|
+
change config.cache_classes=false to true
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
|
@@ -0,0 +1,197 @@
|
|
1
|
+
class EngineGenerator < Rails::Generator::NamedBase
|
2
|
+
|
3
|
+
attr_accessor :plugin_path,:source_dir,:plugin_name,:db_name,:user_name,:password
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
def initialize(runtime_args, runtime_options = {})
|
7
|
+
super
|
8
|
+
@plugin_name = runtime_args.first
|
9
|
+
@db_name = ""
|
10
|
+
@user_name = ""
|
11
|
+
@password = ""
|
12
|
+
@attributes = []
|
13
|
+
@source_dir = ""
|
14
|
+
runtime_args[1..-1].each do |arg|
|
15
|
+
@attributes << arg
|
16
|
+
end
|
17
|
+
@attributes.flatten.uniq
|
18
|
+
#Dynamic Addding database and username and password
|
19
|
+
@attributes.each do |option|
|
20
|
+
option_parameter = option.split(":")
|
21
|
+
if option_parameter.first == "db"
|
22
|
+
@db_name = option_parameter[1]
|
23
|
+
elsif option_parameter.first == "sourcedir"
|
24
|
+
@source_dir = option_parameter.last
|
25
|
+
end
|
26
|
+
option_parameter = []
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
if !@source_dir.blank?
|
31
|
+
source_path = @source_dir+"/app"
|
32
|
+
if !File.directory?(source_path)
|
33
|
+
@source_dir = ""
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
@plugin_path = "vendor/plugins/#{plugin_name}"
|
38
|
+
FileUtils.mkdir(@plugin_path)
|
39
|
+
FileUtils.mkdir(@plugin_path+"/config")
|
40
|
+
FileUtils.cp_r(@source_dir+'/app',@plugin_path+"/app")
|
41
|
+
FileUtils.cp(@source_dir+'/config/routes.rb',@plugin_path+"/config")
|
42
|
+
FileUtils.cp_r(@source_dir+'/db',@plugin_path+"/db")
|
43
|
+
end
|
44
|
+
|
45
|
+
def manifest
|
46
|
+
record do |m|
|
47
|
+
m.directory @plugin_path+"/lib"
|
48
|
+
m.directory @plugin_path+"/tasks"
|
49
|
+
m.directory @plugin_path+"/test"
|
50
|
+
m.template 'README', "#{plugin_path}/README"
|
51
|
+
m.template 'MIT-LICENSE', "#{plugin_path}/MIT-LICENSE"
|
52
|
+
m.template 'Rakefile', "#{plugin_path}/Rakefile"
|
53
|
+
m.template 'init.rb', "#{plugin_path}/init.rb"
|
54
|
+
m.template 'install.rb', "#{plugin_path}/install.rb"
|
55
|
+
m.template 'uninstall.rb', "#{plugin_path}/uninstall.rb"
|
56
|
+
m.template 'plugin.rb', "#{plugin_path}/lib/#{plugin_name}.rb"
|
57
|
+
m.template 'tasks.rake', "#{plugin_path}/tasks/#{plugin_name}_tasks.rake"
|
58
|
+
m.template 'unit_test.rb', "#{plugin_path}/test/#{plugin_name}_test.rb"
|
59
|
+
m.template 'test_helper.rb', "#{plugin_path}/test/test_helper.rb"
|
60
|
+
m.template 'my_db.yml', "#{plugin_path}/config/my_db.yml"
|
61
|
+
# m.template "load_config.rb", "config/initializers/load_#{file_name}_config.rb"
|
62
|
+
# m.file "my_db.yml", "config/#{file_name}_config.yml"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def constant_name
|
67
|
+
file_name.underscore.upcase
|
68
|
+
end
|
69
|
+
def singular_name
|
70
|
+
file_name.underscore
|
71
|
+
end
|
72
|
+
|
73
|
+
def plural_name
|
74
|
+
file_name.underscore.pluralize
|
75
|
+
end
|
76
|
+
|
77
|
+
def class_name
|
78
|
+
file_name.camelize
|
79
|
+
end
|
80
|
+
|
81
|
+
def plural_class_name
|
82
|
+
plural_name.camelize
|
83
|
+
end
|
84
|
+
|
85
|
+
def after_generate
|
86
|
+
# `rake enginedb:create`
|
87
|
+
#add filename =amar then add amar_dev to an all model self.establish_connection :amar_dev
|
88
|
+
change_model_content
|
89
|
+
# add to database yml amar_dev with data base amar_dev
|
90
|
+
change_database_yml_content
|
91
|
+
|
92
|
+
#added self.connection modelname.connection end
|
93
|
+
change_migration_content
|
94
|
+
|
95
|
+
#replace "< ApplicationController" with " < plural_class_name"
|
96
|
+
change_controller_content
|
97
|
+
|
98
|
+
# now Change Plugin ApplicationController to #plural_class_name and inhrit from main ApplicationController
|
99
|
+
#prepend line require 'application_controller.rb'
|
100
|
+
change_application_controller_of_engine
|
101
|
+
|
102
|
+
#Added all migration to base migration
|
103
|
+
FileUtils.cp_r(@plugin_path+"/db/migrate/.",'db/migrate')
|
104
|
+
end
|
105
|
+
def change_model_content
|
106
|
+
Dir.glob("#{plugin_path}/app/models/*.rb").each do |f|
|
107
|
+
content = ""
|
108
|
+
file = File.open(f,"r")
|
109
|
+
file.each do |line|
|
110
|
+
content += "#{line} "
|
111
|
+
end
|
112
|
+
db_connection = "self.establish_connection :#{file_name}_dev"
|
113
|
+
content.sub!(/ActiveRecord::Base\s{1}/,"ActiveRecord::Base\n #{db_connection} \n")
|
114
|
+
|
115
|
+
#Find out ActiveRecord::Base and after this line place self.establish_connection :amar_dev
|
116
|
+
file = File.open(f,"w")
|
117
|
+
file.write(content)
|
118
|
+
file.close
|
119
|
+
end
|
120
|
+
end
|
121
|
+
# add to database yml #{file_name}_dev with data base #{file_name}_dev
|
122
|
+
def change_database_yml_content
|
123
|
+
dbconfig = YAML::load(File.open('config/database.yml'))
|
124
|
+
mydb = {"#{file_name}_dev"=>{"encoding"=>"utf8","reconnect"=>false,"adapter"=>"mysql","username"=>"root", "database"=>"#{file_name}_dev","pool"=>5, "password"=>"", "socket"=>"/var/run/mysqld/mysqld.sock"}}
|
125
|
+
dbconfig = dbconfig.merge(mydb)
|
126
|
+
File.open('config/database.yml','w'){ |f| YAML.dump(dbconfig, f) }
|
127
|
+
end
|
128
|
+
#added self.connection modelname.connection end
|
129
|
+
def change_migration_content
|
130
|
+
Dir.glob("#{plugin_path}/db/migrate/*.rb").each do |f|
|
131
|
+
content = ""
|
132
|
+
file = File.open(f,"r")
|
133
|
+
file.each do |line|
|
134
|
+
content += "#{line} "
|
135
|
+
end
|
136
|
+
mig_array = ["To", "From", "Create" ,"Remove"]
|
137
|
+
model_name = ""
|
138
|
+
mig_array.each do |m_a|
|
139
|
+
reg_exp = %r{#{m_a}(.+)\s+<}
|
140
|
+
model_name = reg_exp.match(content)[1] unless reg_exp.match(content).nil?
|
141
|
+
if !model_name.blank?
|
142
|
+
break
|
143
|
+
end
|
144
|
+
end
|
145
|
+
migrate_connection =""
|
146
|
+
if !model_name.blank?
|
147
|
+
migrate_connection = "def self.connection
|
148
|
+
#{model_name.singularize}.connection
|
149
|
+
end"
|
150
|
+
end
|
151
|
+
if !model_name.blank?
|
152
|
+
content.sub!(/ActiveRecord::Migration\s{1}/,"ActiveRecord::Migration\n #{migrate_connection} \n")
|
153
|
+
end
|
154
|
+
file = File.open(f,"w")
|
155
|
+
file.write(content)
|
156
|
+
file.close
|
157
|
+
end
|
158
|
+
|
159
|
+
end
|
160
|
+
#replace "< ApplicationController" with " < plural_class_nameController"
|
161
|
+
def change_controller_content
|
162
|
+
|
163
|
+
Dir.glob("#{plugin_path}/app/controllers/*.rb").each do |f|
|
164
|
+
content = ""
|
165
|
+
file = File.open(f,"r")
|
166
|
+
file.each do |line|
|
167
|
+
content += "#{line} "
|
168
|
+
end
|
169
|
+
content.sub!(/< ApplicationController{1}/,"< #{plural_class_name}Controller \n")
|
170
|
+
file = File.open(f,"w")
|
171
|
+
file.write(content)
|
172
|
+
file.close
|
173
|
+
end
|
174
|
+
end
|
175
|
+
# now Change Plugin ApplicationController to #plural_class_name and inhrit from main ApplicationController
|
176
|
+
#prepend line require 'application_controller.rb'
|
177
|
+
def change_application_controller_of_engine
|
178
|
+
|
179
|
+
application_content = ""
|
180
|
+
application_controller_file = File.open("#{plugin_path}/app/controllers/application_controller.rb","r")
|
181
|
+
application_controller_file .each do |line|
|
182
|
+
application_content += "#{line} "
|
183
|
+
end
|
184
|
+
app1 = "require"
|
185
|
+
app2 ="'application_controller.rb'"
|
186
|
+
app3 = "class #{plural_class_name}Controller < ApplicationController"
|
187
|
+
application_content.sub!(/class ApplicationController < ActionController::Base{1}/,"#{app1}\s#{app2} \n#{app3}")
|
188
|
+
application_controller_file = File.open("#{plugin_path}/app/controllers/application_controller.rb","w")
|
189
|
+
application_controller_file.write(application_content)
|
190
|
+
application_controller_file.close
|
191
|
+
File.rename("#{plugin_path}/app/controllers/application_controller.rb","#{plugin_path}/app/controllers/#{plural_name}_controller.rb")
|
192
|
+
end
|
193
|
+
|
194
|
+
|
195
|
+
|
196
|
+
end
|
197
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) <%= Date.today.year %> [name of plugin creator]
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'rake/rdoctask'
|
4
|
+
|
5
|
+
desc 'Default: run unit tests.'
|
6
|
+
task :default => :test
|
7
|
+
|
8
|
+
desc 'Test the <%= file_name %> plugin.'
|
9
|
+
Rake::TestTask.new(:test) do |t|
|
10
|
+
t.libs << 'lib'
|
11
|
+
t.libs << 'test'
|
12
|
+
t.pattern = 'test/**/*_test.rb'
|
13
|
+
t.verbose = true
|
14
|
+
end
|
15
|
+
|
16
|
+
desc 'Generate documentation for the <%= file_name %> plugin.'
|
17
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
18
|
+
rdoc.rdoc_dir = 'rdoc'
|
19
|
+
rdoc.title = '<%= class_name %>'
|
20
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
21
|
+
rdoc.rdoc_files.include('README')
|
22
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
23
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
# Include hook code here
|
@@ -0,0 +1 @@
|
|
1
|
+
# Install hook code here
|
File without changes
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# MySQL. Versions 4.1 and 5.0 are recommended.
|
2
|
+
#
|
3
|
+
# Install the MySQL driver:
|
4
|
+
# gem install mysql
|
5
|
+
# On Mac OS X:
|
6
|
+
# sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql
|
7
|
+
# On Mac OS X Leopard:
|
8
|
+
# sudo env ARCHFLAGS="-arch i386" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
|
9
|
+
# This sets the ARCHFLAGS environment variable to your native architecture
|
10
|
+
# On Windows:
|
11
|
+
# gem install mysql
|
12
|
+
# Choose the win32 build.
|
13
|
+
# Install MySQL and put its /bin directory on your path.
|
14
|
+
#
|
15
|
+
# And be sure to use new-style password hashing:
|
16
|
+
# http://dev.mysql.com/doc/refman/5.0/en/old-client.html
|
17
|
+
mydb:
|
18
|
+
adapter: mysql
|
19
|
+
encoding: utf8
|
20
|
+
reconnect: false
|
21
|
+
database:
|
22
|
+
pool: 5
|
23
|
+
username:
|
24
|
+
password:
|
25
|
+
socket: /var/run/mysqld/mysqld.sock
|
26
|
+
|
27
|
+
|
28
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
# <%= class_name %>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'activerecord'
|
2
|
+
require 'yaml'
|
3
|
+
require 'ruby-debug'
|
4
|
+
namespace :enginedb do
|
5
|
+
|
6
|
+
desc 'Creates the databases defined in your config/my_db.yml (unless they already exist)'
|
7
|
+
task :create do
|
8
|
+
YAML::load(File.open('vendor/plugins/amar/config/my_db.yml')).each_value do |config|
|
9
|
+
begin
|
10
|
+
ActiveRecord::Base.establish_connection(config)
|
11
|
+
ActiveRecord::Base.connection
|
12
|
+
rescue
|
13
|
+
case config['adapter']
|
14
|
+
when 'mysql'
|
15
|
+
@charset = 'utf8'
|
16
|
+
@collation = 'utf8_general_ci'
|
17
|
+
ActiveRecord::Base.establish_connection(config.merge({'database' => nil}))
|
18
|
+
ActiveRecord::Base.connection.create_database(config['database'], {:charset => @charset, :collation => @collation})
|
19
|
+
ActiveRecord::Base.establish_connection(config)
|
20
|
+
when 'postgresql'
|
21
|
+
`createdb "#{config['database']}" -E utf8`
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
desc "Migrate the database through scripts in db/migrate. Target specific version with VERSION=x"
|
28
|
+
task :migrate do
|
29
|
+
ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
|
30
|
+
# Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
# Uninstall hook code here
|
metadata
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: amardaxini-enginator
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Amar Daxini
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-07-23 00:00:00 -07:00
|
13
|
+
default_executable: Enginator.rb
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description: A collection of useful generator scripts for Rails engine.
|
17
|
+
email: amar.daxini (at) gmail (dot) com
|
18
|
+
executables:
|
19
|
+
- Enginator.rb
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- lib/enginator.rb
|
24
|
+
- bin/Enginator.rb
|
25
|
+
- README
|
26
|
+
- README.txt
|
27
|
+
files:
|
28
|
+
- enginator.gemspec
|
29
|
+
- History.txt
|
30
|
+
- lib/enginator.rb
|
31
|
+
- bin/Enginator.rb
|
32
|
+
- Rakefile
|
33
|
+
- Manifest
|
34
|
+
- README
|
35
|
+
- rails_generators/USAGE
|
36
|
+
- rails_generators/templates/my_db.yml
|
37
|
+
- rails_generators/templates/USAGE
|
38
|
+
- rails_generators/templates/init.rb
|
39
|
+
- rails_generators/templates/uninstall.rb
|
40
|
+
- rails_generators/templates/unit_test.rb
|
41
|
+
- rails_generators/templates/Rakefile
|
42
|
+
- rails_generators/templates/generator.rb
|
43
|
+
- rails_generators/templates/README
|
44
|
+
- rails_generators/templates/test_helper.rb
|
45
|
+
- rails_generators/templates/plugin.rb
|
46
|
+
- rails_generators/templates/MIT-LICENSE
|
47
|
+
- rails_generators/templates/install.rb
|
48
|
+
- rails_generators/templates/load_config.rb
|
49
|
+
- rails_generators/templates/just.html.erb
|
50
|
+
- rails_generators/templates/tasks.rake
|
51
|
+
- rails_generators/engine_generator.rb
|
52
|
+
- README.txt
|
53
|
+
- Readme.rdoc
|
54
|
+
- test/test_enginator.rb
|
55
|
+
has_rdoc: false
|
56
|
+
homepage: ""
|
57
|
+
post_install_message:
|
58
|
+
rdoc_options:
|
59
|
+
- --line-numbers
|
60
|
+
- --inline-source
|
61
|
+
- --title
|
62
|
+
- Enginator
|
63
|
+
- --main
|
64
|
+
- README
|
65
|
+
require_paths:
|
66
|
+
- lib
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: "0"
|
72
|
+
version:
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: "1.2"
|
78
|
+
version:
|
79
|
+
requirements: []
|
80
|
+
|
81
|
+
rubyforge_project: enginator
|
82
|
+
rubygems_version: 1.2.0
|
83
|
+
signing_key:
|
84
|
+
specification_version: 3
|
85
|
+
summary: A collection of useful generator scripts for Rails engine.
|
86
|
+
test_files:
|
87
|
+
- test/test_enginator.rb
|