diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/puppet/feature/base.rb | 2 | ||||
-rw-r--r-- | lib/puppet/feature/rack.rb | 24 |
2 files changed, 24 insertions, 2 deletions
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 + |