aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2010-11-15 13:09:05 -0600
committerJosé Valim <jose.valim@gmail.com>2010-11-16 00:04:35 +0100
commitb0665345f85e4b7f3b3367ee36fa205e7ff78d12 (patch)
treedb237874e758668e689d805f6b08a04173d480e1 /railties
parent4da6d956043337c3c14d4f74cbbf05c3a50b4e9b (diff)
downloadrails-b0665345f85e4b7f3b3367ee36fa205e7ff78d12.tar.gz
rails-b0665345f85e4b7f3b3367ee36fa205e7ff78d12.tar.bz2
rails-b0665345f85e4b7f3b3367ee36fa205e7ff78d12.zip
Allow running `rails plugin new` command inside rails application
Diffstat (limited to 'railties')
-rw-r--r--railties/lib/rails/commands.rb17
-rw-r--r--railties/test/application/generators_test.rb6
2 files changed, 17 insertions, 6 deletions
diff --git a/railties/lib/rails/commands.rb b/railties/lib/rails/commands.rb
index e3aa6d7c3e..c8a33c1266 100644
--- a/railties/lib/rails/commands.rb
+++ b/railties/lib/rails/commands.rb
@@ -12,14 +12,19 @@ command = aliases[command] || command
case command
when 'generate', 'destroy', 'plugin'
- require APP_PATH
- Rails.application.require_environment!
+ if command == "plugin" && ARGV.first == "new"
+ require "rails/commands/plugin_new"
+ else
+ require APP_PATH
+ Rails.application.require_environment!
- if defined?(ENGINE_PATH)
- engine = Rails.application.railties.engines.find { |r| r.root.to_s == ENGINE_PATH }
- Rails.application = engine
+ if defined?(ENGINE_PATH)
+ engine = Rails.application.railties.engines.find { |r| r.root.to_s == ENGINE_PATH }
+ Rails.application = engine
+ end
+
+ require "rails/commands/#{command}"
end
- require "rails/commands/#{command}"
when 'benchmarker', 'profiler'
require APP_PATH
diff --git a/railties/test/application/generators_test.rb b/railties/test/application/generators_test.rb
index 551e966c85..581cc71f89 100644
--- a/railties/test/application/generators_test.rb
+++ b/railties/test/application/generators_test.rb
@@ -25,6 +25,12 @@ module ApplicationTests
yield app_const.config
end
+ test "allow running plugin new generator inside Rails app directory" do
+ FileUtils.cd rails_root
+ `./script/rails plugin new vendor/plugins/bukkits`
+ assert File.exist?(File.join(rails_root, "vendor/plugins/bukkits/test/dummy/config/application.rb"))
+ end
+
test "generators default values" do
with_bare_config do |c|
assert_equal(true, c.generators.colorize_logging)