diff --git a/lib/spring/application.rb b/lib/spring/application.rb index 6d23d8fa..42ef54d8 100644 --- a/lib/spring/application.rb +++ b/lib/spring/application.rb @@ -117,7 +117,7 @@ def preload raise e unless initialized? ensure watcher.add loaded_application_features - watcher.add Spring.gemfile, "#{Spring.gemfile}.lock" + watcher.add Spring.gemfile, Spring.gemfile_lock if defined?(Rails) && Rails.application watcher.add Rails.application.paths["config/initializers"] diff --git a/lib/spring/configuration.rb b/lib/spring/configuration.rb index eba8e9a7..e7d4defb 100644 --- a/lib/spring/configuration.rb +++ b/lib/spring/configuration.rb @@ -6,12 +6,21 @@ class << self def gemfile if /\s1.9.[0-9]/ === Bundler.ruby_scope.gsub(/[\/\s]+/,'') - ENV["BUNDLE_GEMFILE"] || "Gemfile" + Pathname.new(ENV["BUNDLE_GEMFILE"] || "Gemfile").expand_path else Bundler.default_gemfile end end + def gemfile_lock + case gemfile.to_s + when /\bgems\.rb\z/ + gemfile.sub_ext('.locked') + else + gemfile.sub_ext('.lock') + end + end + def after_fork_callbacks @after_fork_callbacks ||= [] end