aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/generators
diff options
context:
space:
mode:
authorclaudiob <claudiob@gmail.com>2016-03-09 07:29:17 -0800
committerclaudiob <claudiob@gmail.com>2016-03-09 07:29:17 -0800
commit5c99a4b93e99cac2bc00fa79da6d79aa37582890 (patch)
tree4047cf5cb578b288bc335f0de3f5897647c4bd24 /railties/lib/rails/generators
parentb165d73f2ccd421c9f3518ce9bf5bcb322440cb7 (diff)
downloadrails-5c99a4b93e99cac2bc00fa79da6d79aa37582890.tar.gz
rails-5c99a4b93e99cac2bc00fa79da6d79aa37582890.tar.bz2
rails-5c99a4b93e99cac2bc00fa79da6d79aa37582890.zip
AppGenerator: allow both 'rake' and 'rails'
This commit comes from the comments made by @matthewd at https://github.com/rails/rails/pull/23795/files#r54469637 and by @rafaelfranca at https://github.com/rails/rails/pull/23795/files#r54609364 The idea is that if you type (for example) "rake db:migrate" in an AppGenerator, then this should actually invoke `rake db:migrate` on the command line, whereas if you type "rails_command db:migrate", this should invoke `rails db:migrate`.
Diffstat (limited to 'railties/lib/rails/generators')
-rw-r--r--railties/lib/rails/generators/actions.rb27
1 files changed, 21 insertions, 6 deletions
diff --git a/railties/lib/rails/generators/actions.rb b/railties/lib/rails/generators/actions.rb
index 5fa487b78e..57309112b5 100644
--- a/railties/lib/rails/generators/actions.rb
+++ b/railties/lib/rails/generators/actions.rb
@@ -207,18 +207,23 @@ module Rails
in_root { run_ruby_script("bin/rails generate #{what} #{argument}", verbose: false) }
end
- # Runs the supplied rake task
+ # Runs the supplied rake task (invoked with 'rake ...')
#
# rake("db:migrate")
# rake("db:migrate", env: "production")
# rake("gems:install", sudo: true)
def rake(command, options={})
- log :rake, command
- env = options[:env] || ENV["RAILS_ENV"] || 'development'
- sudo = options[:sudo] && RbConfig::CONFIG['host_os'] !~ /mswin|mingw/ ? 'sudo ' : ''
- in_root { run("#{sudo}#{extify(:rails)} #{command} RAILS_ENV=#{env}", verbose: false) }
+ execute_command :rake, command, options
+ end
+
+ # Runs the supplied rake task (invoked with 'rails ...')
+ #
+ # rails("db:migrate")
+ # rails("db:migrate", env: "production")
+ # rails("gems:install", sudo: true)
+ def rails_command(command, options={})
+ execute_command :rails, command, options
end
- alias :rails_command :rake
# Just run the capify command in root
#
@@ -271,6 +276,16 @@ module Rails
end
end
+
+ # Runs the supplied command using either "rake ..." or "rails ..."
+ # based on the executor parameter provided.
+ def execute_command(executor, command, options={})
+ log executor, command
+ env = options[:env] || ENV["RAILS_ENV"] || 'development'
+ sudo = options[:sudo] && RbConfig::CONFIG['host_os'] !~ /mswin|mingw/ ? 'sudo ' : ''
+ in_root { run("#{sudo}#{extify(executor)} #{command} RAILS_ENV=#{env}", verbose: false) }
+ end
+
# Add an extension to the given name based on the platform.
def extify(name)
if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/