(MODULES-3983) Update parallel_tests for ruby 2.0.0
[puppet-modules/puppetlabs-apt.git] / Gemfile
diff --git a/Gemfile b/Gemfile
index ff29118928371a1bf9c657797ec2a60a5e22c5b2..8222ef0a7af80dd54658f155125a2f828c30a831 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -2,44 +2,47 @@
 
 source ENV['GEM_SOURCE'] || "https://rubygems.org"
 
-def location_for(place, version = nil)
-  if place =~ /^(git[:@][^#]*)#(.*)/
-    [version, { :git => $1, :branch => $2, :require => false }].compact
-  elsif place =~ /^file:\/\/(.*)/
-    ['>= 0', { :path => File.expand_path($1), :require => false }]
+def location_from_env(env, default_location = [])
+  if location = ENV[env]
+    if location =~ /^((?:git|https?)[:@][^#]*)#(.*)/
+      [{ :git => $1, :branch => $2, :require => false }]
+    elsif location =~ /^file:\/\/(.*)/
+      ['>= 0', { :path => File.expand_path($1), :require => false }]
+    else
+      [location, { :require => false }]
+    end
   else
-    [place, version, { :require => false }].compact
+    default_location
   end
 end
 
 group :development, :unit_tests do
-  gem 'metadata-json-lint',                  :require => false
-  gem 'puppet_facts',                        :require => false
-  gem 'puppet-blacksmith', '>= 3.4.0',       :require => false
-  gem 'puppetlabs_spec_helper', '>= 1.2.1',  :require => false
-  gem 'rspec-puppet', '>= 2.3.2',            :require => false
-  gem 'rspec-puppet-facts',                  :require => false
-  gem 'simplecov',                           :require => false
-  gem 'parallel_tests',                      :require => false
+  gem 'metadata-json-lint'
+  gem 'puppet_facts'
+  gem 'puppet-blacksmith', '>= 3.4.0'
+  gem 'puppetlabs_spec_helper', '>= 1.2.1'
+  gem 'rspec-puppet', '>= 2.3.2'
+  gem 'rspec-puppet-facts'
+  gem 'simplecov'
+  gem 'parallel_tests', '< 2.10.0' if RUBY_VERSION < '2.0.0'
+  gem 'parallel_tests' if RUBY_VERSION >= '2.0.0'
+  gem 'rubocop', '0.41.2' if RUBY_VERSION < '2.0.0'
+  gem 'rubocop' if RUBY_VERSION >= '2.0.0'
+  gem 'rubocop-rspec', '~> 1.6' if RUBY_VERSION >= '2.3.0'
+  gem 'json_pure', '<= 2.0.1' if RUBY_VERSION < '2.0.0'
 end
 group :system_tests do
-  gem 'beaker-rspec',                  *location_for(ENV['BEAKER_RSPEC_VERSION'] || '>= 3.4')
-  gem 'beaker',                        *location_for(ENV['BEAKER_VERSION'])
-  gem 'serverspec',                    :require => false
-  gem 'beaker-puppet_install_helper',  :require => false
-  gem 'master_manipulator',            :require => false
-  gem 'beaker-hostgenerator',          *location_for(ENV['BEAKER_HOSTGENERATOR_VERSION'])
+  gem 'beaker', *location_from_env('BEAKER_VERSION', []) if RUBY_VERSION >= '2.3.0'
+  gem 'beaker', *location_from_env('BEAKER_VERSION', ['< 3']) if RUBY_VERSION < '2.3.0'
+  gem 'beaker-rspec', *location_from_env('BEAKER_RSPEC_VERSION', ['>= 3.4'])
+  gem 'serverspec'
+  gem 'beaker-puppet_install_helper'
+  gem 'master_manipulator'
+  gem 'beaker-hostgenerator', *location_from_env('BEAKER_HOSTGENERATOR_VERSION', [])
 end
 
-# json_pure 2.0.2 added a requirement on ruby >= 2. We pin to json_pure 2.0.1
-# if using ruby 1.x
-gem 'json_pure', '<=2.0.1', :require => false if RUBY_VERSION =~ /^1\./
-# rubocop 0.42.0 requires ruby >=2
-gem 'rubocop', '0.41.2', :require => false if RUBY_VERSION =~ /^1\./
-gem 'rubocop-rspec', '~> 1.6', :require => false if RUBY_VERSION >= '2.3.0'
-
-gem 'facter', *location_for(ENV['FACTER_GEM_VERSION'])
-gem 'puppet', *location_for(ENV['PUPPET_GEM_VERSION'])
+gem 'facter', *location_from_env('FACTER_GEM_VERSION')
+gem 'puppet', *location_from_env('PUPPET_GEM_VERSION')
 
 if File.exists? "#{__FILE__}.local"
   eval(File.read("#{__FILE__}.local"), binding)