summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2013-04-11 09:49:53 -0700
committerJeff McCune <jeff@puppetlabs.com>2013-04-11 10:42:46 -0700
commit9c5805f26ac0abf8bf19cef1ac7a2fec19dec35b (patch)
treee47610a02852c9e4c5479474163ba60f6b58ad2f
parent2e2830deda7eede79110a191d0de9d6fc423b440 (diff)
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.
-rw-r--r--Gemfile13
1 files changed, 12 insertions, 1 deletions
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