Add ability to use puppet from git via bundler

Without this patch the Gemfile can only satisfy dependencies using
officially release gem versions.  This is a problem because we want to
test stdlib against the latest HEAD of the puppet git repository.

This patch addresses the problem by copying over the location_for method
from the Puppet Gemfile, which will parse out git://, file:// or Gem
version specifications.

This, in turn, allows jobs to be configured to run with different
dependency integrations.
This commit is contained in:
Jeff McCune 2013-04-11 09:49:53 -07:00
parent 2e2830deda
commit 9c5805f26a

13
Gemfile
View file

@ -1,5 +1,16 @@
source "https://rubygems.org"
def location_for(place, fake_version = nil)
mdata = /^(git:[^#]*)#(.*)/.match(place)
if mdata
[fake_version, { :git => mdata[1], :branch => mdata[2], :require => false }].compact
elsif place =~ /^file:\/\/(.*)/
['>= 0', { :path => File.expand_path(mdata[1]), :require => false }]
else
[place, { :require => false }]
end
end
group :development do
gem 'watchr'
end
@ -14,7 +25,7 @@ group :development, :test do
end
if puppetversion = ENV['PUPPET_GEM_VERSION']
gem 'puppet', puppetversion, :require => false
gem 'puppet', *location_for(puppetversion)
else
gem 'puppet', :require => false
end