Manage your application's gem dependencies with less pain
Latest commit 6904ac6 Jul 26, 2016 @homu homu Auto merge of #4811 - NickLaMuro:dots_for_compact_index_logger, r=seg…

Fix random string printing inconsistencies and formatting

Add dot output for CompactIndex fetcher

The `Bundler::Fetcher::CompactIndex`'s logging was missing the "dot logging" when not in debug mode, which is an assumed behavior based on the code in `lib/bundler/source/rubygems.rb`:

api_fetchers.each do |f| "Fetching gem metadata from #{f.uri}", Bundler.ui.debug?
  idx.use f.specs_with_retry(dependency_names, self) "" unless Bundler.ui.debug? # new line now that the dots are over

While this isn't critical for `bundler` function properly by any stretch of the imagination, it provides a small bit of user feedback that requests are still continuing to be processed and `bundler` hasn't stalled.  It also maintains logging consistency between the different fetcher models.

Add newlines for `Bundler::Retry`

This is very pedantic, but it makes it so that retry warning messages that used to look like this:

Fetching gem metadata from fetcher due to error (2/4): Error::OMGWatHappened LOL, no idea

Now will look like this:

Fetching gem metadata from
Retrying fetcher due to error (2/4): Error::OMGWatHappened LOL, no idea.....

I think this reads a bit better and puts context to the "dots" so they now match up with the original attempt and the retries

Remove unneeded if statement

Ran across this while failing at writing tests for the above (for longer than I want to admit in public), but basically the `if` statement to determine whether or not to print "name" in the `Bundler.ui.warn` was not needed, as it never could be reached because of a short circuiting return statement prior to the print

return true unless name

Have no idea how to test it anymore than we already are, so instead of embarrassing myself further, I moved on.

Version     Build Status Code Climate Inline docs

Bundler: a gem to bundle gems

Bundler makes sure Ruby applications run the same code on every machine.

It does this by managing the gems that the application depends on. Given a list of gems, it can automatically download and install those gems, as well as any other gems needed by the gems that are listed. Before installing gems, it checks the versions of every gem to make sure that they are compatible, and can all be loaded at the same time. After the gems have been installed, Bundler can help you update some or all of them when new versions become available. Finally, it records the exact versions that have been installed, so that others can install the exact same gems.

Installation and usage

gem install bundler
bundle init
echo 'gem "rspec"' >> Gemfile
bundle install
bundle exec rspec

See for the full documentation.


For help with common problems, see ISSUES.

Other questions

To see what has changed in recent versions of Bundler, see the CHANGELOG.

Feel free to chat with the Bundler core team (and many other users) on IRC in the #bundler channel on Freenode, or via email on the Bundler mailing list.


If you'd like to contribute to Bundler, that's awesome, and we <3 you. There's a guide to contributing to Bundler (both code and general help) over in DEVELOPMENT.

Code of Conduct

Everyone interacting in the Bundler project’s codebases, issue trackers, chat rooms, and mailing lists is expected to follow the Bundler code of conduct.