aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2010-11-02 16:34:07 +0100
committerPiotr Sarnacki <drogus@gmail.com>2010-11-02 17:14:53 +0100
commitcbe391b517f55caad8cbefa6f864289d76fab653 (patch)
tree00aa22f5f49b73aa28dc0168f95e137db97d9e36 /railties/lib
parentc159b501b0743928bda6a9d0609c263e50691676 (diff)
downloadrails-cbe391b517f55caad8cbefa6f864289d76fab653.tar.gz
rails-cbe391b517f55caad8cbefa6f864289d76fab653.tar.bz2
rails-cbe391b517f55caad8cbefa6f864289d76fab653.zip
Add --mountable option to 'plugin new' generator which generates full mountable application (engine)
Diffstat (limited to 'railties/lib')
-rw-r--r--railties/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb28
-rw-r--r--railties/lib/rails/generators/rails/plugin_new/templates/app/controllers/%name%/application_controller.rb.tt4
-rw-r--r--railties/lib/rails/generators/rails/plugin_new/templates/app/helpers/%name%/application_helper.rb.tt4
-rw-r--r--railties/lib/rails/generators/rails/plugin_new/templates/config/routes.rb3
-rw-r--r--railties/lib/rails/generators/rails/plugin_new/templates/lib/%name%/engine.rb3
-rw-r--r--railties/lib/rails/generators/rails/plugin_new/templates/rails/routes.rb4
6 files changed, 43 insertions, 3 deletions
diff --git a/railties/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb b/railties/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb
index b8408a0f9b..d4706063f3 100644
--- a/railties/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb
+++ b/railties/lib/rails/generators/rails/plugin_new/plugin_new_generator.rb
@@ -7,6 +7,10 @@ module Rails
template "Rakefile"
end
+ def app
+ directory "app" if options[:mountable]
+ end
+
def readme
copy_file "README.rdoc"
end
@@ -35,6 +39,10 @@ module Rails
end
end
+ def config
+ template "config/routes.rb" if mountable?
+ end
+
def test
template "test/test_helper.rb"
template "test/%name%_test.rb"
@@ -59,6 +67,9 @@ task :default => :test
def test_dummy_config
template "rails/boot.rb", "#{dummy_path}/config/boot.rb", :force => true
template "rails/application.rb", "#{dummy_path}/config/application.rb", :force => true
+ if mountable?
+ template "rails/routes.rb", "#{dummy_path}/config/routes.rb", :force => true
+ end
end
def test_dummy_clean
@@ -91,8 +102,11 @@ task :default => :test
alias_method :plugin_path, :app_path
- class_option :full, :type => :boolean, :default => false,
- :desc => "Generate rails engine with integration tests"
+ class_option :full, :type => :boolean, :default => false,
+ :desc => "Generate rails engine with integration tests"
+
+ class_option :mountable, :type => :boolean, :default => false,
+ :desc => "Generate mountable isolated application"
def initialize(*args)
raise Error, "Options should be given after the plugin name. For details run: rails plugin --help" if args[0].blank?
@@ -111,6 +125,10 @@ task :default => :test
build(:gemfile) unless options[:skip_gemfile]
end
+ def create_app_files
+ build(:app)
+ end
+
def create_config_files
build(:config)
end
@@ -154,7 +172,11 @@ task :default => :test
end
def full?
- options[:full]
+ options[:full] || options[:mountable]
+ end
+
+ def mountable?
+ options[:mountable]
end
def self.banner
diff --git a/railties/lib/rails/generators/rails/plugin_new/templates/app/controllers/%name%/application_controller.rb.tt b/railties/lib/rails/generators/rails/plugin_new/templates/app/controllers/%name%/application_controller.rb.tt
new file mode 100644
index 0000000000..f225bc9f7f
--- /dev/null
+++ b/railties/lib/rails/generators/rails/plugin_new/templates/app/controllers/%name%/application_controller.rb.tt
@@ -0,0 +1,4 @@
+module <%= camelized %>
+ class ApplicationController < ActiveController::Base
+ end
+end
diff --git a/railties/lib/rails/generators/rails/plugin_new/templates/app/helpers/%name%/application_helper.rb.tt b/railties/lib/rails/generators/rails/plugin_new/templates/app/helpers/%name%/application_helper.rb.tt
new file mode 100644
index 0000000000..40ae9f52c2
--- /dev/null
+++ b/railties/lib/rails/generators/rails/plugin_new/templates/app/helpers/%name%/application_helper.rb.tt
@@ -0,0 +1,4 @@
+module <%= camelized %>
+ module ApplicationHelper
+ end
+end
diff --git a/railties/lib/rails/generators/rails/plugin_new/templates/config/routes.rb b/railties/lib/rails/generators/rails/plugin_new/templates/config/routes.rb
new file mode 100644
index 0000000000..42ddf380d8
--- /dev/null
+++ b/railties/lib/rails/generators/rails/plugin_new/templates/config/routes.rb
@@ -0,0 +1,3 @@
+<%= camelized %>::Engine.routes.draw do
+
+end
diff --git a/railties/lib/rails/generators/rails/plugin_new/templates/lib/%name%/engine.rb b/railties/lib/rails/generators/rails/plugin_new/templates/lib/%name%/engine.rb
index 779bd1cfd3..9600ee0c3f 100644
--- a/railties/lib/rails/generators/rails/plugin_new/templates/lib/%name%/engine.rb
+++ b/railties/lib/rails/generators/rails/plugin_new/templates/lib/%name%/engine.rb
@@ -1,4 +1,7 @@
module <%= camelized %>
class Engine < Rails::Engine
+<% if mountable? -%>
+ isolate_namespace <%= camelized %>
+<% end -%>
end
end
diff --git a/railties/lib/rails/generators/rails/plugin_new/templates/rails/routes.rb b/railties/lib/rails/generators/rails/plugin_new/templates/rails/routes.rb
new file mode 100644
index 0000000000..730ee31c3d
--- /dev/null
+++ b/railties/lib/rails/generators/rails/plugin_new/templates/rails/routes.rb
@@ -0,0 +1,4 @@
+Rails.application.routes.draw do
+
+ mount <%= camelized %>::Engine => "/<%= name %>"
+end