aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2010-12-19 15:11:51 +0100
committerPiotr Sarnacki <drogus@gmail.com>2010-12-19 15:12:13 +0100
commitb50024f2fff8a3da46135d4838fe1cda8cb95ceb (patch)
treebf257386c0cfcae19e84fe880842f0f8e7a57919 /railties/lib
parent6d80f3a1ba52248cb8837af5ad40a23dc4fea213 (diff)
downloadrails-b50024f2fff8a3da46135d4838fe1cda8cb95ceb.tar.gz
rails-b50024f2fff8a3da46135d4838fe1cda8cb95ceb.tar.bz2
rails-b50024f2fff8a3da46135d4838fe1cda8cb95ceb.zip
Do not load all application's task in generated engine
Diffstat (limited to 'railties/lib')
-rwxr-xr-xrailties/lib/rails/generators/rails/plugin_new/templates/Rakefile9
-rw-r--r--railties/lib/rails/tasks/engine.rake66
2 files changed, 69 insertions, 6 deletions
diff --git a/railties/lib/rails/generators/rails/plugin_new/templates/Rakefile b/railties/lib/rails/generators/rails/plugin_new/templates/Rakefile
index 25292f59ad..5704e75a29 100755
--- a/railties/lib/rails/generators/rails/plugin_new/templates/Rakefile
+++ b/railties/lib/rails/generators/rails/plugin_new/templates/Rakefile
@@ -16,9 +16,6 @@ Rake::RDocTask.new(:rdoc) do |rdoc|
end
<% if full? && !options[:skip_active_record] -%>
-namespace :app do
- ENGINE_PATH = File.expand_path("..", __FILE__)
- load File.expand_path("../<%= dummy_path -%>/Rakefile", __FILE__)
-end
-<% end -%>
-
+APP_RAKEFILE = File.expand_path("../<%= dummy_path -%>/Rakefile", __FILE__)
+load 'rails/tasks/engine.rake'
+<% end %>
diff --git a/railties/lib/rails/tasks/engine.rake b/railties/lib/rails/tasks/engine.rake
new file mode 100644
index 0000000000..593be93797
--- /dev/null
+++ b/railties/lib/rails/tasks/engine.rake
@@ -0,0 +1,66 @@
+task "load_app" do
+ namespace :app do
+ load APP_RAKEFILE
+ end
+
+ if !defined?(ENGINE_PATH) || !ENGINE_PATH
+ ENGINE_PATH = find_engine_path(APP_RAKEFILE)
+ end
+end
+
+namespace :db do
+ task :reset => [:load_app, :"app:db:reset"]
+
+ desc "Migrate the database (options: VERSION=x, VERBOSE=false)."
+ task :migrate => [:load_app, :"app:db:migrate"]
+ task :"migrate:up" => [:load_app, :"app:db:migrate:up"]
+ task :"migrate:down" => [:load_app, :"app:db:migrate:down"]
+ task :"migrate:redo" => [:load_app, :"app:db:migrate:redo"]
+ task :"migrate:reset" => [:load_app, :"app:db:migrate:reset"]
+
+ desc "Display status of migrations"
+ task :"migrate:status" => [:load_app, :"app:db:migrate:status"]
+
+ desc 'Create the database from config/database.yml for the current Rails.env (use db:create:all to create all dbs in the config)'
+ task :create => [:load_app, :"app:db:create"]
+ task :"create:all" => [:load_app, :"app:db:create:all"]
+
+ desc 'Drops the database for the current Rails.env (use db:drop:all to drop all databases)'
+ task :drop => [:load_app, :"app:db:drop"]
+ task :"drop:all" => [:load_app, :"app:db:drop:all"]
+
+ desc "Load fixtures into the current environment's database."
+ task :"fixtures:load" => [:load_app, :"app:db:fixtures:load"]
+
+ desc "Rolls the schema back to the previous version (specify steps w/ STEP=n)."
+ task :rollback => [:load_app, :"app:db:rollback"]
+
+ desc "Create a db/schema.rb file that can be portably used against any DB supported by AR"
+ task :"schema:dump" => [:load_app, :"app:db:schema:dump"]
+
+ desc "Load a schema.rb file into the database"
+ task :"schema:load" => [:load_app, :"app:db:schema:load"]
+
+ desc "Load the seed data from db/seeds.rb"
+ task :seed => [:load_app, :"app:db:seed"]
+
+ desc "Create the database, load the schema, and initialize with the seed data (use db:reset to also drop the db first)"
+ task :setup => [:load_app, :"app:db:setup"]
+
+ desc "Dump the database structure to an SQL file"
+ task :"structure:dump" => [:load_app, :"app:db:structure:dump"]
+
+ desc "Retrieves the current schema version number"
+ task :version => [:load_app, :"app:db:version"]
+end
+
+
+def find_engine_path(path)
+ return if path == "/"
+
+ if Rails::Engine.find(path)
+ path
+ else
+ find_engine_path(File.expand_path('..', path))
+ end
+end