Skip to content
Browse files

Install binstubs by default

  • Loading branch information...
1 parent cba0588 commit f34c27a452418d8aa17f92bb0fd7ae97b5f7e252 @wycats wycats committed Dec 22, 2012
Showing with 4 additions and 4 deletions.
  1. +1 −1 railties/lib/rails/generators/app_base.rb
  2. +3 −3 railties/test/generators/shared_generator_tests.rb
View
2 railties/lib/rails/generators/app_base.rb
@@ -261,7 +261,7 @@ def bundle_command(command)
end
def run_bundle
- bundle_command('install') unless options[:skip_gemfile] || options[:skip_bundle] || options[:pretend]
+ bundle_command('install --binstubs') unless options[:skip_gemfile] || options[:skip_bundle] || options[:pretend]
end
def empty_directory_with_keep_file(destination, config = {})
View
6 railties/test/generators/shared_generator_tests.rb
@@ -27,7 +27,7 @@ def test_skeleton_is_created
end
def test_generation_runs_bundle_install
- generator([destination_root]).expects(:bundle_command).with('install').once
+ generator([destination_root]).expects(:bundle_command).with('install --binstubs').once
quietly { generator.invoke_all }
end
@@ -101,14 +101,14 @@ def test_template_is_executed_when_supplied_an_https_path
end
def test_dev_option
- generator([destination_root], dev: true).expects(:bundle_command).with('install').once
+ generator([destination_root], dev: true).expects(:bundle_command).with('install --binstubs').once
quietly { generator.invoke_all }
rails_path = File.expand_path('../../..', Rails.root)
assert_file 'Gemfile', /^gem\s+["']rails["'],\s+path:\s+["']#{Regexp.escape(rails_path)}["']$/
end
def test_edge_option
- generator([destination_root], edge: true).expects(:bundle_command).with('install').once
+ generator([destination_root], edge: true).expects(:bundle_command).with('install --binstubs').once
quietly { generator.invoke_all }
assert_file 'Gemfile', %r{^gem\s+["']rails["'],\s+github:\s+["']#{Regexp.escape("rails/rails")}["']$}
end

11 comments on commit f34c27a

@steveklabnik
Ruby on Rails member

👍

@bensie
bensie commented on f34c27a Dec 22, 2012

Have you considered making this the default in Bundler instead of the initial Rails app generator? This may cause unexpected behavior for those new to Rails - where they have binstubs initially but subsequent calls to bundle install/update doesn't refresh them or add new ones.

@indirect
Ruby on Rails member

@bensie that's not how bundler works. The flag passed to install will be remembered, and later calls to install or update will update the binstubs.

@wycats
Ruby on Rails member
wycats commented on f34c27a Dec 22, 2012

@bensie we can't make it the default in bundler because some project (especially gems) have their own bin directories, which would be clobbered.

@bensie
bensie commented on f34c27a Dec 22, 2012

@indirect @wycats Makes sense. Remembering the flag passed to install sounds great. Is that part a Rails or Bundler thing?

@guilleiguaran
Ruby on Rails member

@bensie is part of Bundler.

Also we can update docs to tell to developers that they may want to use bundle install --binstubs instead of bundle install the first time they checkout a Rails project from VCS.

@dhh
Ruby on Rails member
dhh commented on f34c27a Dec 22, 2012

Most projects should just checkin the bin stubs.

@bensie
bensie commented on f34c27a Dec 22, 2012

@dhh Commit 35c554f encourages the opposite.

@wycats
Ruby on Rails member
wycats commented on f34c27a Dec 22, 2012

The problem with checking in binstubs in general is that the shebang line is system specific (special for windows, rbenv) so your team would need to have a very consistent setup to avoid problems.

@dhh
Ruby on Rails member
dhh commented on f34c27a Dec 23, 2012
@dhh
Ruby on Rails member
dhh commented on f34c27a Dec 26, 2012
Please sign in to comment.
Something went wrong with that request. Please try again.