Permalink
Browse files

Merge pull request #9843 from indirect/rails_bin

Rails 4 prints help for "rails new" when running "rails console"
  • Loading branch information...
2 parents 5654b0a + ffd899f commit ee889510f82d34b1f911ef886bd63d47c079b6f0 @rafaelfranca rafaelfranca committed Apr 9, 2013
Showing with 20 additions and 10 deletions.
  1. +20 −10 railties/lib/rails/app_rails_loader.rb
@@ -12,25 +12,35 @@ def self.exec_app_rails
exe ||= find_executable_in_parent_path
return unless exe
- exec RUBY, exe, *ARGV if find_executable
- Dir.chdir("..") do
- # Recurse in a chdir block: if the search fails we want to be sure
- # the application is generated in the original working directory.
- exec_app_rails unless cwd == Dir.pwd
+ if File.read(exe) =~ /(APP|ENGINE)_PATH/
+ # This is a Rails-generated binstub, let's use it
+ exec RUBY, exe, *ARGV if find_executable
+ Dir.chdir("..") do
+ # Recurse in a chdir block: if the search fails we want to be sure
+ # the application is generated in the original working directory.
+ exec_app_rails unless cwd == Dir.pwd
+ end
+ elsif exe.match(%r(bin/rails$))
+ # this is a Bundler binstub, so we load the app ourselves
+ Object.const_set(:APP_PATH, File.expand_path('config/application', Dir.pwd))
+ require File.expand_path('../boot', APP_PATH)
+ puts "Rails 4 no longer supports Bundler's --binstubs option. You " \
+ "will need to disable it and update your bin/rails file.\n" \
+ "Please run: `bundle config --delete bin && rm -rf bin`, then " \
+ "`rake rails:update:bin` and add the resulting bin/ to git."
+ require 'rails/commands'
end
rescue SystemCallError
# could not chdir, no problem just return
end
def self.find_executable
- EXECUTABLES.find do |exe|
- File.exists?(exe) && File.read(exe) =~ /(APP|ENGINE)_PATH/
- end
+ EXECUTABLES.find { |exe| File.exists?(exe) }
end
- def self.find_executable_in_parent_path(path = Pathname.new(Dir.pwd))
+ def self.find_executable_in_parent_path(path = Pathname.new(Dir.pwd).parent)
EXECUTABLES.find do |exe|
- File.exists?(File.join(path, exe)) || !path.root? && find_executable_in_parent_path(path.parent)
+ File.exists?(exe) || !path.root? && find_executable_in_parent_path(path.parent)
end
end
end

1 comment on commit ee88951

Owner

pixeltrix commented on ee88951 Apr 10, 2013

@rafaelfranca looks like this broke the railties tests: https://travis-ci.org/rails/rails/builds/6190788

Please sign in to comment.