From 9c5805f26ac0abf8bf19cef1ac7a2fec19dec35b Mon Sep 17 00:00:00 2001 From: Jeff McCune Date: Thu, 11 Apr 2013 09:49:53 -0700 Subject: 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. --- Gemfile | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 442dd9d..50df2ee 100644 --- a/Gemfile +++ b/Gemfile @@ -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 -- cgit v1.2.3