diff options
author | Jeff McCune <jeff@puppetlabs.com> | 2013-04-11 09:49:53 -0700 |
---|---|---|
committer | Jeff McCune <jeff@puppetlabs.com> | 2013-04-11 10:42:46 -0700 |
commit | 9c5805f26ac0abf8bf19cef1ac7a2fec19dec35b (patch) | |
tree | e47610a02852c9e4c5479474163ba60f6b58ad2f | |
parent | 2e2830deda7eede79110a191d0de9d6fc423b440 (diff) | |
download | puppet-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-- | Gemfile | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -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 |