aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2009-10-28 18:32:53 -0200
committerYehuda Katz <wycats@gmail.com>2009-10-28 16:54:38 -0400
commita288b74f1c75c6f100de7611a5093a421f1ad6d1 (patch)
treec8947be8dd25b00db3d260aef20b6c8a53ed9c19 /railties/lib/rails
parent8dcf91ca113579646e95b0fd7a864dfb6512a53b (diff)
downloadrails-a288b74f1c75c6f100de7611a5093a421f1ad6d1.tar.gz
rails-a288b74f1c75c6f100de7611a5093a421f1ad6d1.tar.bz2
rails-a288b74f1c75c6f100de7611a5093a421f1ad6d1.zip
Generators should use Rails.root instead of Dir.pwd [#3408 status:resolved]
Signed-off-by: Yehuda Katz <wycats@gmail.com>
Diffstat (limited to 'railties/lib/rails')
-rw-r--r--railties/lib/rails/generators/base.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/railties/lib/rails/generators/base.rb b/railties/lib/rails/generators/base.rb
index 7af99797ea..e6baf2fc79 100644
--- a/railties/lib/rails/generators/base.rb
+++ b/railties/lib/rails/generators/base.rb
@@ -12,6 +12,16 @@ module Rails
add_runtime_options!
+ # Always move to rails source root.
+ #
+ def initialize(*args) #:nodoc:
+ if !invoked?(args) && defined?(Rails.root) && Rails.root
+ self.destination_root = Rails.root
+ FileUtils.cd(destination_root)
+ end
+ super
+ end
+
# Automatically sets the source root based on the class name.
#
def self.source_root
@@ -247,6 +257,13 @@ module Rails
end
end
+ # Check if this generator was invoked from another one by inspecting
+ # parameters.
+ #
+ def invoked?(args)
+ args.last.is_a?(Hash) && args.last.key?(:invocations)
+ end
+
# Use Rails default banner.
#
def self.banner