railties 5.0.0.beta3 → 5.0.0.beta4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +50 -19
- data/lib/rails/all.rb +2 -2
- data/lib/rails/app_loader.rb +1 -1
- data/lib/rails/application.rb +8 -6
- data/lib/rails/application/bootstrap.rb +4 -3
- data/lib/rails/application/configuration.rb +5 -5
- data/lib/rails/application/default_middleware_stack.rb +3 -19
- data/lib/rails/application/finisher.rb +73 -13
- data/lib/rails/code_statistics.rb +1 -0
- data/lib/rails/commands.rb +2 -2
- data/lib/rails/commands/runner.rb +4 -3
- data/lib/rails/commands/server.rb +10 -18
- data/lib/rails/console/app.rb +1 -2
- data/lib/rails/dev_caching.rb +43 -0
- data/lib/rails/gem_version.rb +1 -1
- data/lib/rails/generators/actions.rb +21 -8
- data/lib/rails/generators/actions/create_migration.rb +1 -0
- data/lib/rails/generators/app_base.rb +2 -1
- data/lib/rails/generators/erb/mailer/mailer_generator.rb +1 -1
- data/lib/rails/generators/rails/app/app_generator.rb +20 -2
- data/lib/rails/generators/rails/app/templates/Gemfile +3 -3
- data/lib/rails/generators/rails/app/templates/README.md +1 -1
- data/lib/rails/generators/rails/app/templates/Rakefile +1 -1
- data/lib/rails/generators/rails/app/templates/app/assets/javascripts/cable.js +13 -0
- data/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.tt +2 -5
- data/lib/rails/generators/rails/app/templates/bin/rails +1 -1
- data/lib/rails/generators/rails/app/templates/bin/setup +1 -1
- data/lib/rails/generators/rails/app/templates/bin/update +1 -1
- data/lib/rails/generators/rails/app/templates/config.ru +5 -0
- data/lib/rails/generators/rails/app/templates/config/application.rb +1 -1
- data/lib/rails/generators/rails/app/templates/config/boot.rb +1 -1
- data/lib/rails/generators/rails/app/templates/config/environment.rb +1 -1
- data/lib/rails/generators/rails/app/templates/config/environments/development.rb.tt +2 -17
- data/lib/rails/generators/rails/app/templates/config/environments/production.rb.tt +13 -12
- data/lib/rails/generators/rails/app/templates/config/initializers/ssl_options.rb +4 -0
- data/lib/rails/generators/rails/app/templates/config/initializers/to_time_preserves_timezone.rb +10 -0
- data/lib/rails/generators/rails/app/templates/config/routes.rb +0 -3
- data/lib/rails/generators/rails/app/templates/config/spring.rb +6 -0
- data/lib/rails/generators/rails/plugin/templates/Rakefile +1 -1
- data/lib/rails/generators/rails/plugin/templates/bin/rails.tt +2 -1
- data/lib/rails/generators/rails/plugin/templates/rails/application.rb +5 -3
- data/lib/rails/generators/rails/plugin/templates/rails/boot.rb +2 -2
- data/lib/rails/generators/test_unit/mailer/mailer_generator.rb +1 -1
- data/lib/rails/railtie.rb +37 -38
- data/lib/rails/tasks/dev.rake +3 -9
- data/lib/rails/tasks/framework.rake +20 -5
- data/lib/rails/tasks/misc.rake +23 -6
- data/lib/rails/tasks/restart.rake +6 -3
- data/lib/rails/tasks/routes.rake +3 -0
- data/lib/rails/tasks/statistics.rake +1 -0
- data/lib/rails/tasks/tmp.rake +4 -6
- data/lib/rails/test_unit/minitest_plugin.rb +10 -9
- metadata +16 -13
- data/lib/rails/command.rb +0 -70
- data/lib/rails/generators/rails/app/templates/app/assets/javascripts/cable.coffee +0 -11
- data/lib/rails/generators/rails/app/templates/config.ru.tt +0 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 849b9b39dee2cd29bc2506bcdb4810e271cb8503
|
4
|
+
data.tar.gz: 2218346e1e9603f0401f7fb0b0bff4d7bcd664eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e3cca869fce3881223643ae25a0eaa8db48d917235f89293969256a6b8fcbd29020ac7cbec44e9435f39cf6cd861815625f4e8222cf89cf4fb1a75eab7880d8
|
7
|
+
data.tar.gz: 4579abdacba1336783561695db94b0bdc13b4b3b309c526cb1beedadb985a19da58f9c4d75a9ec0051d741cd677e9811926890f39869f6333328414a28791a43
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,32 @@
|
|
1
|
+
## Rails 5.0.0.beta4 (April 27, 2016) ##
|
2
|
+
|
3
|
+
* Add `config/initializers/to_time_preserves_timezone.rb`, which tells
|
4
|
+
Active Support to preserve the receiver's timezone when calling `to_time`.
|
5
|
+
This matches the new behavior that will be part of Ruby 2.4.
|
6
|
+
|
7
|
+
Fixes #24617.
|
8
|
+
|
9
|
+
*Andrew White*
|
10
|
+
|
11
|
+
* Make `rails restart` command work with Puma by passing the restart command
|
12
|
+
which Puma can use to restart rails server.
|
13
|
+
|
14
|
+
*Prathamesh Sonpatki*
|
15
|
+
|
16
|
+
* The application generator writes a new file `config/spring.rb`, which tells
|
17
|
+
Spring to watch additional common files.
|
18
|
+
|
19
|
+
*Xavier Noria*
|
20
|
+
|
21
|
+
* The tasks in the rails task namespace is deprecated in favor of app namespace.
|
22
|
+
(e.g. `rails:update` and `rails:template` tasks is renamed to `app:update` and `app:template`.)
|
23
|
+
|
24
|
+
*Ryo Hashimoto*
|
25
|
+
|
26
|
+
* Enable HSTS with IncludeSudomains header for new applications.
|
27
|
+
|
28
|
+
*Egor Homakov*, *Prathamesh Sonpatki*
|
29
|
+
|
1
30
|
## Rails 5.0.0.beta3 (February 24, 2016) ##
|
2
31
|
|
3
32
|
* Alias `rake` with `rails_command` in the Rails Application Templates API
|
@@ -19,7 +48,7 @@
|
|
19
48
|
system monitor and the async plugin for spring.
|
20
49
|
|
21
50
|
* The Gemfiles of new applications include spring-watcher-listen on Linux and
|
22
|
-
Mac OS X (unless
|
51
|
+
Mac OS X (unless `--skip-spring`).
|
23
52
|
|
24
53
|
*Xavier Noria*
|
25
54
|
|
@@ -28,7 +57,9 @@
|
|
28
57
|
|
29
58
|
*Xavier Noria*
|
30
59
|
|
31
|
-
* Add dummy files for apple-touch-icon.png and apple-touch-icon.png.
|
60
|
+
* Add dummy files for apple-touch-icon.png and apple-touch-icon.png.
|
61
|
+
|
62
|
+
See #23427.
|
32
63
|
|
33
64
|
*Alexey Zabelin*
|
34
65
|
|
@@ -92,7 +123,7 @@
|
|
92
123
|
|
93
124
|
*Chuck Callebs*
|
94
125
|
|
95
|
-
* Allow use of minitest-rails gem with Rails test runner.
|
126
|
+
* Allow use of `minitest-rails` gem with Rails test runner.
|
96
127
|
|
97
128
|
Fixes #22455.
|
98
129
|
|
@@ -105,13 +136,13 @@
|
|
105
136
|
*Yuji Yaginuma*
|
106
137
|
|
107
138
|
* Make `static_index` part of the `config.public_file_server` config and
|
108
|
-
call it `public_file_server.index_name`.
|
139
|
+
call it `config.public_file_server.index_name`.
|
109
140
|
|
110
141
|
*Yuki Nishijima*
|
111
142
|
|
112
|
-
* Deprecate `serve_static_files` in favor of `public_file_server.enabled`.
|
143
|
+
* Deprecate `config.serve_static_files` in favor of `config.public_file_server.enabled`.
|
113
144
|
|
114
|
-
Unifies the static asset options under `public_file_server`.
|
145
|
+
Unifies the static asset options under `config.public_file_server`.
|
115
146
|
|
116
147
|
To upgrade, replace occurrences of:
|
117
148
|
|
@@ -149,8 +180,8 @@
|
|
149
180
|
|
150
181
|
*Yuki Nishijima*
|
151
182
|
|
152
|
-
* Route
|
153
|
-
|
183
|
+
* Route generators are now idempotent.
|
184
|
+
Running generators several times no longer require you to cleanup routes.rb.
|
154
185
|
|
155
186
|
*Thiago Pinto*
|
156
187
|
|
@@ -158,7 +189,7 @@
|
|
158
189
|
|
159
190
|
*Simon Eskildsen*
|
160
191
|
|
161
|
-
* Allow rake
|
192
|
+
* Allow `rake stats` to account for rake tasks in lib/tasks.
|
162
193
|
|
163
194
|
*Kevin Deisz*
|
164
195
|
|
@@ -168,7 +199,7 @@
|
|
168
199
|
|
169
200
|
*James Kerr*
|
170
201
|
|
171
|
-
* Add fail fast to `bin/rails test
|
202
|
+
* Add fail fast to `bin/rails test`.
|
172
203
|
|
173
204
|
Adding `--fail-fast` or `-f` when running tests will interrupt the run on
|
174
205
|
the first failure:
|
@@ -200,7 +231,7 @@
|
|
200
231
|
|
201
232
|
*Kasper Timm Hansen*
|
202
233
|
|
203
|
-
* Add inline output to `bin/rails test
|
234
|
+
* Add inline output to `bin/rails test`.
|
204
235
|
|
205
236
|
Any failures or errors (and skips if running in verbose mode) are output
|
206
237
|
during a test run:
|
@@ -231,7 +262,7 @@
|
|
231
262
|
*Kasper Timm Hansen*
|
232
263
|
|
233
264
|
* Fix displaying mailer previews on non local requests when config
|
234
|
-
`action_mailer.show_previews` is set
|
265
|
+
`config.action_mailer.show_previews` is set.
|
235
266
|
|
236
267
|
*Wojciech Wnętrzak*
|
237
268
|
|
@@ -262,14 +293,14 @@
|
|
262
293
|
*Ersin Akinci*
|
263
294
|
|
264
295
|
* Make enabling or disabling caching in development mode possible with
|
265
|
-
rake dev:cache
|
296
|
+
`rake dev:cache`.
|
266
297
|
|
267
|
-
Running rake dev:cache will create or remove tmp/caching-dev.txt. When this
|
268
|
-
file exists config.action_controller.perform_caching will be set to true in
|
298
|
+
Running `rake dev:cache` will create or remove tmp/caching-dev.txt. When this
|
299
|
+
file exists `config.action_controller.perform_caching` will be set to true in
|
269
300
|
config/environments/development.rb.
|
270
301
|
|
271
|
-
Additionally, a server can be started with either
|
272
|
-
|
302
|
+
Additionally, a server can be started with either `--dev-caching` or
|
303
|
+
`--no-dev-caching` included to toggle caching on startup.
|
273
304
|
|
274
305
|
*Jussi Mertanen*, *Chuck Callebs*
|
275
306
|
|
@@ -282,11 +313,11 @@
|
|
282
313
|
|
283
314
|
*Yuji Yaginuma*
|
284
315
|
|
285
|
-
* Adding support for passing a block to the `add_source` action of a custom generator
|
316
|
+
* Adding support for passing a block to the `add_source` action of a custom generator.
|
286
317
|
|
287
318
|
*Mike Dalton*, *Hirofumi Wakasugi*
|
288
319
|
|
289
|
-
* `assert_file` understands paths with special characters
|
320
|
+
* `assert_file` now understands paths with special characters
|
290
321
|
(eg. `v0.1.4~alpha+nightly`).
|
291
322
|
|
292
323
|
*Diego Carrion*
|
data/lib/rails/all.rb
CHANGED
data/lib/rails/app_loader.rb
CHANGED
@@ -16,7 +16,7 @@ like any other source code, rather than stubs that are generated on demand.
|
|
16
16
|
Here's how to upgrade:
|
17
17
|
|
18
18
|
bundle config --delete bin # Turn off Bundler's stub generator
|
19
|
-
|
19
|
+
rails app:update:bin # Use the new Rails 5 executables
|
20
20
|
git add bin # Add bin/ to source control
|
21
21
|
|
22
22
|
You may need to remove bin/ from your .gitignore as well.
|
data/lib/rails/application.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'fileutils'
|
2
1
|
require 'yaml'
|
3
2
|
require 'active_support/core_ext/hash/keys'
|
4
3
|
require 'active_support/core_ext/object/blank'
|
@@ -74,8 +73,7 @@ module Rails
|
|
74
73
|
# the configuration.
|
75
74
|
#
|
76
75
|
# If you decide to define rake tasks, runners, or initializers in an
|
77
|
-
# application other than +Rails.application+, then you must run
|
78
|
-
# these manually.
|
76
|
+
# application other than +Rails.application+, then you must run them manually.
|
79
77
|
class Application < Engine
|
80
78
|
autoload :Bootstrap, 'rails/application/bootstrap'
|
81
79
|
autoload :Configuration, 'rails/application/configuration'
|
@@ -113,7 +111,7 @@ module Rails
|
|
113
111
|
|
114
112
|
attr_accessor :assets, :sandbox
|
115
113
|
alias_method :sandbox?, :sandbox
|
116
|
-
attr_reader :reloaders
|
114
|
+
attr_reader :reloaders, :reloader, :executor
|
117
115
|
|
118
116
|
delegate :default_url_options, :default_url_options=, to: :routes
|
119
117
|
|
@@ -131,6 +129,10 @@ module Rails
|
|
131
129
|
@message_verifiers = {}
|
132
130
|
@ran_load_hooks = false
|
133
131
|
|
132
|
+
@executor = Class.new(ActiveSupport::Executor)
|
133
|
+
@reloader = Class.new(ActiveSupport::Reloader)
|
134
|
+
@reloader.executor = @executor
|
135
|
+
|
134
136
|
# are these actually used?
|
135
137
|
@initial_variable_values = initial_variable_values
|
136
138
|
@block = block
|
@@ -243,7 +245,7 @@ module Rails
|
|
243
245
|
@app_env_config ||= begin
|
244
246
|
validate_secret_key_config!
|
245
247
|
|
246
|
-
super.merge(
|
248
|
+
super.merge(
|
247
249
|
"action_dispatch.parameter_filter" => config.filter_parameters,
|
248
250
|
"action_dispatch.redirect_filter" => config.filter_redirect,
|
249
251
|
"action_dispatch.secret_token" => secrets.secret_token,
|
@@ -259,7 +261,7 @@ module Rails
|
|
259
261
|
"action_dispatch.encrypted_signed_cookie_salt" => config.action_dispatch.encrypted_signed_cookie_salt,
|
260
262
|
"action_dispatch.cookies_serializer" => config.action_dispatch.cookies_serializer,
|
261
263
|
"action_dispatch.cookies_digest" => config.action_dispatch.cookies_digest
|
262
|
-
|
264
|
+
)
|
263
265
|
end
|
264
266
|
end
|
265
267
|
|
@@ -1,6 +1,7 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require 'fileutils'
|
2
|
+
require 'active_support/notifications'
|
3
|
+
require 'active_support/dependencies'
|
4
|
+
require 'active_support/descendants_tracker'
|
4
5
|
|
5
6
|
module Rails
|
6
7
|
class Application
|
@@ -58,7 +58,7 @@ module Rails
|
|
58
58
|
|
59
59
|
def static_cache_control=(value)
|
60
60
|
ActiveSupport::Deprecation.warn <<-eow.strip_heredoc
|
61
|
-
`static_cache_control` is deprecated and will be removed in Rails 5.1.
|
61
|
+
`config.static_cache_control` is deprecated and will be removed in Rails 5.1.
|
62
62
|
Please use
|
63
63
|
`config.public_file_server.headers = { 'Cache-Control' => '#{value}' }`
|
64
64
|
instead.
|
@@ -69,8 +69,8 @@ module Rails
|
|
69
69
|
|
70
70
|
def serve_static_files
|
71
71
|
ActiveSupport::Deprecation.warn <<-eow.strip_heredoc
|
72
|
-
`serve_static_files` is deprecated and will be removed in Rails 5.1.
|
73
|
-
Please use `public_file_server.enabled` instead.
|
72
|
+
`config.serve_static_files` is deprecated and will be removed in Rails 5.1.
|
73
|
+
Please use `config.public_file_server.enabled` instead.
|
74
74
|
eow
|
75
75
|
|
76
76
|
@public_file_server.enabled
|
@@ -78,8 +78,8 @@ module Rails
|
|
78
78
|
|
79
79
|
def serve_static_files=(value)
|
80
80
|
ActiveSupport::Deprecation.warn <<-eow.strip_heredoc
|
81
|
-
`serve_static_files` is deprecated and will be removed in Rails 5.1.
|
82
|
-
Please use `public_file_server.enabled = #{value}` instead.
|
81
|
+
`config.serve_static_files` is deprecated and will be removed in Rails 5.1.
|
82
|
+
Please use `config.public_file_server.enabled = #{value}` instead.
|
83
83
|
eow
|
84
84
|
|
85
85
|
@public_file_server.enabled = value
|
@@ -34,22 +34,10 @@ module Rails
|
|
34
34
|
# handling: presumably their code is not threadsafe
|
35
35
|
|
36
36
|
middleware.use ::Rack::Lock
|
37
|
-
|
38
|
-
elsif config.allow_concurrency == :unsafe
|
39
|
-
# Do nothing, even if we know this is dangerous. This is the
|
40
|
-
# historical behaviour for true.
|
41
|
-
|
42
|
-
else
|
43
|
-
# Default concurrency setting: enabled, but safe
|
44
|
-
|
45
|
-
unless config.cache_classes && config.eager_load
|
46
|
-
# Without cache_classes + eager_load, the load interlock
|
47
|
-
# is required for proper operation
|
48
|
-
|
49
|
-
middleware.use ::ActionDispatch::LoadInterlock
|
50
|
-
end
|
51
37
|
end
|
52
38
|
|
39
|
+
middleware.use ::ActionDispatch::Executor, app.executor
|
40
|
+
|
53
41
|
middleware.use ::Rack::Runtime
|
54
42
|
middleware.use ::Rack::MethodOverride unless config.api_only
|
55
43
|
middleware.use ::ActionDispatch::RequestId
|
@@ -61,7 +49,7 @@ module Rails
|
|
61
49
|
middleware.use ::ActionDispatch::RemoteIp, config.action_dispatch.ip_spoofing_check, config.action_dispatch.trusted_proxies
|
62
50
|
|
63
51
|
unless config.cache_classes
|
64
|
-
middleware.use ::ActionDispatch::Reloader,
|
52
|
+
middleware.use ::ActionDispatch::Reloader, app.reloader
|
65
53
|
end
|
66
54
|
|
67
55
|
middleware.use ::ActionDispatch::Callbacks
|
@@ -83,10 +71,6 @@ module Rails
|
|
83
71
|
|
84
72
|
private
|
85
73
|
|
86
|
-
def reload_dependencies?
|
87
|
-
config.reload_classes_only_on_change != true || app.reloaders.map(&:updated?).any?
|
88
|
-
end
|
89
|
-
|
90
74
|
def load_rack_cache
|
91
75
|
rack_cache = config.action_dispatch.rack_cache
|
92
76
|
return unless rack_cache
|
@@ -38,16 +38,16 @@ module Rails
|
|
38
38
|
app.routes.define_mounted_helper(:main_app)
|
39
39
|
end
|
40
40
|
|
41
|
-
initializer :add_to_prepare_blocks do
|
41
|
+
initializer :add_to_prepare_blocks do |app|
|
42
42
|
config.to_prepare_blocks.each do |block|
|
43
|
-
|
43
|
+
app.reloader.to_prepare(&block)
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
47
|
# This needs to happen before eager load so it happens
|
48
48
|
# in exactly the same point regardless of config.cache_classes
|
49
|
-
initializer :run_prepare_callbacks do
|
50
|
-
|
49
|
+
initializer :run_prepare_callbacks do |app|
|
50
|
+
app.reloader.prepare!
|
51
51
|
end
|
52
52
|
|
53
53
|
initializer :eager_load! do
|
@@ -62,13 +62,60 @@ module Rails
|
|
62
62
|
ActiveSupport.run_load_hooks(:after_initialize, self)
|
63
63
|
end
|
64
64
|
|
65
|
+
class MutexHook
|
66
|
+
def initialize(mutex = Mutex.new)
|
67
|
+
@mutex = mutex
|
68
|
+
end
|
69
|
+
|
70
|
+
def run
|
71
|
+
@mutex.lock
|
72
|
+
end
|
73
|
+
|
74
|
+
def complete(_state)
|
75
|
+
@mutex.unlock
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
module InterlockHook
|
80
|
+
def self.run
|
81
|
+
ActiveSupport::Dependencies.interlock.start_running
|
82
|
+
end
|
83
|
+
|
84
|
+
def self.complete(_state)
|
85
|
+
ActiveSupport::Dependencies.interlock.done_running
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
initializer :configure_executor_for_concurrency do |app|
|
90
|
+
if config.allow_concurrency == false
|
91
|
+
# User has explicitly opted out of concurrent request
|
92
|
+
# handling: presumably their code is not threadsafe
|
93
|
+
|
94
|
+
app.executor.register_hook(MutexHook.new, outer: true)
|
95
|
+
|
96
|
+
elsif config.allow_concurrency == :unsafe
|
97
|
+
# Do nothing, even if we know this is dangerous. This is the
|
98
|
+
# historical behaviour for true.
|
99
|
+
|
100
|
+
else
|
101
|
+
# Default concurrency setting: enabled, but safe
|
102
|
+
|
103
|
+
unless config.cache_classes && config.eager_load
|
104
|
+
# Without cache_classes + eager_load, the load interlock
|
105
|
+
# is required for proper operation
|
106
|
+
|
107
|
+
app.executor.register_hook(InterlockHook, outer: true)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
65
112
|
# Set routes reload after the finisher hook to ensure routes added in
|
66
113
|
# the hook are taken into account.
|
67
|
-
initializer :set_routes_reloader_hook do
|
114
|
+
initializer :set_routes_reloader_hook do |app|
|
68
115
|
reloader = routes_reloader
|
69
116
|
reloader.execute_if_updated
|
70
117
|
self.reloaders << reloader
|
71
|
-
|
118
|
+
app.reloader.to_run do
|
72
119
|
# We configure #execute rather than #execute_if_updated because if
|
73
120
|
# autoloaded constants are cleared we need to reload routes also in
|
74
121
|
# case any was used there, as in
|
@@ -78,18 +125,27 @@ module Rails
|
|
78
125
|
# This means routes are also reloaded if i18n is updated, which
|
79
126
|
# might not be necessary, but in order to be more precise we need
|
80
127
|
# some sort of reloaders dependency support, to be added.
|
128
|
+
require_unload_lock!
|
81
129
|
reloader.execute
|
82
130
|
end
|
83
131
|
end
|
84
132
|
|
85
133
|
# Set clearing dependencies after the finisher hook to ensure paths
|
86
134
|
# added in the hook are taken into account.
|
87
|
-
initializer :set_clear_dependencies_hook, group: :all do
|
135
|
+
initializer :set_clear_dependencies_hook, group: :all do |app|
|
88
136
|
callback = lambda do
|
89
|
-
ActiveSupport::
|
90
|
-
|
91
|
-
|
137
|
+
ActiveSupport::DescendantsTracker.clear
|
138
|
+
ActiveSupport::Dependencies.clear
|
139
|
+
end
|
140
|
+
|
141
|
+
if config.cache_classes
|
142
|
+
app.reloader.check = lambda { false }
|
143
|
+
elsif config.reload_classes_only_on_change
|
144
|
+
app.reloader.check = lambda do
|
145
|
+
app.reloaders.map(&:updated?).any?
|
92
146
|
end
|
147
|
+
else
|
148
|
+
app.reloader.check = lambda { true }
|
93
149
|
end
|
94
150
|
|
95
151
|
if config.reload_classes_only_on_change
|
@@ -99,15 +155,19 @@ module Rails
|
|
99
155
|
# Prepend this callback to have autoloaded constants cleared before
|
100
156
|
# any other possible reloading, in case they need to autoload fresh
|
101
157
|
# constants.
|
102
|
-
|
158
|
+
app.reloader.to_run(prepend: true) do
|
103
159
|
# In addition to changes detected by the file watcher, if routes
|
104
160
|
# or i18n have been updated we also need to clear constants,
|
105
161
|
# that's why we run #execute rather than #execute_if_updated, this
|
106
162
|
# callback has to clear autoloaded constants after any update.
|
107
|
-
|
163
|
+
class_unload! do
|
164
|
+
reloader.execute
|
165
|
+
end
|
108
166
|
end
|
109
167
|
else
|
110
|
-
|
168
|
+
app.reloader.to_complete do
|
169
|
+
class_unload!(&callback)
|
170
|
+
end
|
111
171
|
end
|
112
172
|
end
|
113
173
|
|