ManageIQ/manageiq — pull request #290 by jrafanie (2014-07-25 20:42:36+00:00)
Title: Gemfile excludes cleanup

This is a :cookie: for @kbrock.

### Summary:
Separate the requirement for development/test only gems from the need to package up these gems for the appliances.

This should enable us to update rspec* and any other test gem without needing to worry about packaging the gems.

Collapse the vmdb/Gemfile and vmdb/Gemfile.appliance_excludes.rb into one file.
In both lib and vmdb/Gemfile, use a condition `unless ENV['APPLIANCE']` to gate the need for the test/development gems.

- @brandondunne, we would need to set these environment variables in travis and our cruisecontrols.

- We still have be careful with dependencies of dependencies since some test and application-needed gems could share dependencies (vcr/fog at one time both needed excon.. not sure if it's still the case).

- Even if a gem is in the :test bundle group and we choose to use --without test, the gem is STILL needed at bundle time because bundler still needs to resolve the full dependency tree. Hence, it would need to be packaged. Previously, the way we got around this was by separating the non-appliance gems into the Gemfile.appliance_excludes.rb and just skipped that file in the tarball used for building the package. In order to prevent the explosion in the number of Gemfiles as we could need the same thing in the lib and host Gemfile, I am proposing to collapse these files and use a ruby conditional through an environment variable to prevent the need for test/development gems on appliances.