diff options
author | José Valim <jose.valim@gmail.com> | 2011-12-13 11:23:21 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-12-13 11:23:21 +0100 |
commit | 80256abb39332dd49996b909d6f0413a15291a90 (patch) | |
tree | fb0492e9ba488746a31d7fcc26873daf5099fb32 /railties/lib/rails | |
parent | 1f5b9bbdb377c1b0e29650a103bf53526ceefdd5 (diff) | |
download | rails-80256abb39332dd49996b909d6f0413a15291a90.tar.gz rails-80256abb39332dd49996b909d6f0413a15291a90.tar.bz2 rails-80256abb39332dd49996b909d6f0413a15291a90.zip |
FileUpdateChecker should be able to handle deleted files.
Diffstat (limited to 'railties/lib/rails')
-rw-r--r-- | railties/lib/rails/application.rb | 2 | ||||
-rw-r--r-- | railties/lib/rails/application/finisher.rb | 7 | ||||
-rw-r--r-- | railties/lib/rails/application/routes_reloader.rb | 15 |
3 files changed, 15 insertions, 9 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index 75f2b9a3bd..22689cc278 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -124,7 +124,7 @@ module Rails dirs[path.to_s] = [:rb] end - files << dirs + [files, dirs] end # Initialize the application passing the given group. By default, the diff --git a/railties/lib/rails/application/finisher.rb b/railties/lib/rails/application/finisher.rb index 064723c1e0..2ce2980b97 100644 --- a/railties/lib/rails/application/finisher.rb +++ b/railties/lib/rails/application/finisher.rb @@ -64,10 +64,9 @@ module Rails # routes added in the hook are still loaded. initializer :set_routes_reloader_hook do reloader = routes_reloader - hook = lambda { reloader.execute_if_updated } - hook.call + reloader.execute_if_updated self.reloaders << reloader - ActionDispatch::Reloader.to_prepare(&hook) + ActionDispatch::Reloader.to_prepare { reloader.execute_if_updated } end # Set app reload just after the finisher hook to ensure @@ -79,7 +78,7 @@ module Rails end if config.reload_classes_only_on_change - reloader = config.file_watcher.new(watchable_args, true, &callback) + reloader = config.file_watcher.new(*watchable_args, &callback) self.reloaders << reloader # We need to set a to_prepare callback regardless of the reloader result, i.e. # models should be reloaded if any of the reloaders (i18n, routes) were updated. diff --git a/railties/lib/rails/application/routes_reloader.rb b/railties/lib/rails/application/routes_reloader.rb index e080481976..ef7e733ce4 100644 --- a/railties/lib/rails/application/routes_reloader.rb +++ b/railties/lib/rails/application/routes_reloader.rb @@ -4,11 +4,10 @@ module Rails class Application class RoutesReloader attr_reader :route_sets, :paths - delegate :execute_if_updated, :updated?, :to => :@updater + delegate :execute_if_updated, :execute, :updated?, :to => :updater - def initialize(updater=ActiveSupport::FileUpdateChecker) + def initialize @paths = [] - @updater = updater.new(paths) { reload! } @route_sets = [] end @@ -20,7 +19,15 @@ module Rails revert end - protected + private + + def updater + @updater ||= begin + updater = ActiveSupport::FileUpdateChecker.new(paths) { reload! } + updater.execute + updater + end + end def clear! route_sets.each do |routes| |