提交 6fb31638 编写于 作者: K Kasper Timm Hansen

Merge pull request #23439 from ryohashimoto/160203_rake_rails

Use app namespace for framework tasks
...@@ -550,7 +550,7 @@ There are a few configuration options available in Active Support: ...@@ -550,7 +550,7 @@ There are a few configuration options available in Active Support:
* `config.active_support.time_precision` sets the precision of JSON encoded time values. Defaults to `3`. * `config.active_support.time_precision` sets the precision of JSON encoded time values. Defaults to `3`.
* `ActiveSupport.halt_callback_chains_on_return_false` specifies whether Active Record and Active Model callback chains can be halted by returning `false` in a 'before' callback. When set to `false`, callback chains are halted only when explicitly done so with `throw(:abort)`. When set to `true`, callback chains are halted when a callback returns false (the previous behavior before Rails 5) and a deprecation warning is given. Defaults to `true` during the deprecation period. New Rails 5 apps generate an initializer file called `callback_terminator.rb` which sets the value to `false`. This file is *not* added when running `rake rails:update`, so returning `false` will still work on older apps ported to Rails 5 and display a deprecation warning to prompt users to update their code. * `ActiveSupport.halt_callback_chains_on_return_false` specifies whether Active Record and Active Model callback chains can be halted by returning `false` in a 'before' callback. When set to `false`, callback chains are halted only when explicitly done so with `throw(:abort)`. When set to `true`, callback chains are halted when a callback returns false (the previous behavior before Rails 5) and a deprecation warning is given. Defaults to `true` during the deprecation period. New Rails 5 apps generate an initializer file called `callback_terminator.rb` which sets the value to `false`. This file is *not* added when running `rails app:update`, so returning `false` will still work on older apps ported to Rails 5 and display a deprecation warning to prompt users to update their code.
* `ActiveSupport::Logger.silencer` is set to `false` to disable the ability to silence logging in a block. The default is `true`. * `ActiveSupport::Logger.silencer` is set to `false` to disable the ability to silence logging in a block. The default is `true`.
......
...@@ -22,11 +22,11 @@ $ rails new blog -m ~/template.rb ...@@ -22,11 +22,11 @@ $ rails new blog -m ~/template.rb
$ rails new blog -m http://example.com/template.rb $ rails new blog -m http://example.com/template.rb
``` ```
You can use the task `rails:template` to apply templates to an existing Rails application. The location of the template needs to be passed in to an environment variable named LOCATION. Again, this can either be path to a file or a URL. You can use the task `app:template` to apply templates to an existing Rails application. The location of the template needs to be passed in to an environment variable named LOCATION. Again, this can either be path to a file or a URL.
```bash ```bash
$ bin/rails rails:template LOCATION=~/template.rb $ bin/rails app:template LOCATION=~/template.rb
$ bin/rails rails:template LOCATION=http://example.com/template.rb $ bin/rails app:template LOCATION=http://example.com/template.rb
``` ```
Template API Template API
......
...@@ -44,13 +44,13 @@ TIP: Ruby 1.8.7 p248 and p249 have marshaling bugs that crash Rails. Ruby Enterp ...@@ -44,13 +44,13 @@ TIP: Ruby 1.8.7 p248 and p249 have marshaling bugs that crash Rails. Ruby Enterp
### The Rake Task ### The Rake Task
Rails provides the `rails:update` rake task. After updating the Rails version Rails provides the `app:update` rake task. After updating the Rails version
in the Gemfile, run this rake task. in the Gemfile, run this rake task.
This will help you with the creation of new files and changes of old files in an This will help you with the creation of new files and changes of old files in an
interactive session. interactive session.
```bash ```bash
$ rake rails:update $ rails app:update
identical config/boot.rb identical config/boot.rb
exist config exist config
conflict config/routes.rb conflict config/routes.rb
......
* The tasks in the rails task namespace is deprecated in favor of app namespace.
(e.g. `rails:update` and `rails:template` tasks is renamed to `app:update` and `app:template`.)
*Ryo Hashimoto*
* Enable HSTS with IncludeSudomains header for new applications. * Enable HSTS with IncludeSudomains header for new applications.
*Egor Homakov*, *Prathamesh Sonpatki* *Egor Homakov*, *Prathamesh Sonpatki*
......
...@@ -16,7 +16,7 @@ module AppLoader # :nodoc: ...@@ -16,7 +16,7 @@ module AppLoader # :nodoc:
Here's how to upgrade: Here's how to upgrade:
bundle config --delete bin # Turn off Bundler's stub generator bundle config --delete bin # Turn off Bundler's stub generator
rake rails:update:bin # Use the new Rails 4 executables rails app:update:bin # Use the new Rails 5 executables
git add bin # Add bin/ to source control git add bin # Add bin/ to source control
You may need to remove bin/ from your .gitignore as well. You may need to remove bin/ from your .gitignore as well.
......
namespace :rails do require 'active_support/deprecation'
namespace :app do
desc "Update configs and some other initially generated files (or use just update:configs or update:bin)" desc "Update configs and some other initially generated files (or use just update:configs or update:bin)"
task update: [ "update:configs", "update:bin" ] task update: [ "update:configs", "update:bin" ]
...@@ -66,3 +68,15 @@ namespace :rails do ...@@ -66,3 +68,15 @@ namespace :rails do
end end
end end
end end
namespace :rails do
%i(update template templates:copy update:configs update:bin).each do |task_name|
task "#{task_name}" do
ActiveSupport::Deprecation.warn(<<-MSG.squish)
Running #{task_name} with the rails: namespace is deprecated in favor of app.
Run e.g. bin/rails app:#{task_name} instead."
MSG
Rake.application.invoke_task("app:#{task_name}")
end
end
end
...@@ -369,7 +369,7 @@ def test_rake_clear_schema_cache ...@@ -369,7 +369,7 @@ def test_rake_clear_schema_cache
def test_copy_templates def test_copy_templates
Dir.chdir(app_path) do Dir.chdir(app_path) do
`bin/rails rails:templates:copy` `bin/rails app:templates:copy`
%w(controller mailer scaffold).each do |dir| %w(controller mailer scaffold).each do |dir|
assert File.exist?(File.join(app_path, 'lib', 'templates', 'erb', dir)) assert File.exist?(File.join(app_path, 'lib', 'templates', 'erb', dir))
end end
...@@ -384,7 +384,7 @@ def test_template_load_initializers ...@@ -384,7 +384,7 @@ def test_template_load_initializers
app_file "template.rb", "" app_file "template.rb", ""
output = Dir.chdir(app_path) do output = Dir.chdir(app_path) do
`bin/rails rails:template LOCATION=template.rb` `bin/rails app:template LOCATION=template.rb`
end end
assert_match(/Hello, World!/, output) assert_match(/Hello, World!/, output)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册