From a406d585ce861757d6c14e0696a3847b46e4319d Mon Sep 17 00:00:00 2001 From: Christian Hofstaedtler Date: Mon, 11 May 2009 21:55:51 +0000 Subject: Fix for #2234: test fails with old Rack version --- lib/puppet/feature/base.rb | 2 -- lib/puppet/feature/rack.rb | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 lib/puppet/feature/rack.rb (limited to 'lib/puppet') diff --git a/lib/puppet/feature/base.rb b/lib/puppet/feature/base.rb index 7c0f241c1..747468f74 100644 --- a/lib/puppet/feature/base.rb +++ b/lib/puppet/feature/base.rb @@ -29,5 +29,3 @@ Puppet.features.add(:augeas, :libs => ["augeas"]) # We have RRD available Puppet.features.add(:rrd, :libs => ["RRDtool"]) -# We have rack available, an HTTP Application Stack -Puppet.features.add(:rack, :libs => ["rack"]) diff --git a/lib/puppet/feature/rack.rb b/lib/puppet/feature/rack.rb new file mode 100644 index 000000000..081b9e9fb --- /dev/null +++ b/lib/puppet/feature/rack.rb @@ -0,0 +1,24 @@ +require 'puppet/util/feature' + +# See if we have rack available, an HTTP Application Stack +# Explicitly depend on rack library version >= 1.0.0 +Puppet.features.add(:rack) do + begin + require 'rack' + rescue LoadError => detail + require 'rubygems' + require 'rack' + end + + if ! (defined?(::Rack) and defined?(::Rack.release)) + false + else + major_version = ::Rack.release().split('.')[0].to_i + if major_version >= 1 + true + else + false + end + end +end + -- cgit