Skip to content
Permalink
Browse files

Install binstubs by default

  • Loading branch information...
wycats committed Dec 22, 2012
1 parent cba0588 commit f34c27a452418d8aa17f92bb0fd7ae97b5f7e252
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
@@ -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 = {})
@@ -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

This comment has been minimized.

Copy link
Member

replied Dec 22, 2012

👍

@bensie

This comment has been minimized.

Copy link
Contributor

replied 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

This comment has been minimized.

Copy link
Member

replied Dec 22, 2012

@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

This comment has been minimized.

Copy link
Member Author

replied 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

This comment has been minimized.

Copy link
Contributor

replied Dec 22, 2012

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

@guilleiguaran

This comment has been minimized.

Copy link
Member

replied Dec 22, 2012

@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

This comment has been minimized.

Copy link
Member

replied Dec 22, 2012

Most projects should just checkin the bin stubs.

@bensie

This comment has been minimized.

Copy link
Contributor

replied Dec 22, 2012

@dhh Commit 35c554f encourages the opposite.

@wycats

This comment has been minimized.

Copy link
Member Author

replied 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

This comment has been minimized.

Copy link
Member

replied Dec 23, 2012

@dhh

This comment has been minimized.

Copy link
Member

replied Dec 26, 2012

Please sign in to comment.
You can’t perform that action at this time.