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)
downloadpuppet-stdlib-9c5805f26ac0abf8bf19cef1ac7a2fec19dec35b.tar.gz
puppet-stdlib-9c5805f26ac0abf8bf19cef1ac7a2fec19dec35b.tar.bz2
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