blob: edfeccace3f6058e520087a28cb19de4c375f988 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# Created by Luke Kanies on 2006-11-07.
# Copyright (c) 2006. All rights reserved.
require 'puppet/util/feature'
Puppet.features.add(:rails) do
begin
require 'active_record'
rescue LoadError => detail
if Facter["operatingsystem"].value == "Debian" and
FileTest.exists?("/usr/share/rails")
count = 0
Dir.entries("/usr/share/rails").each do |dir|
libdir = File.join("/usr/share/rails", dir, "lib")
if FileTest.exists?(libdir) and ! $:.include?(libdir)
count += 1
$: << libdir
end
end
if count > 0
retry
end
end
end
# If we couldn't find it the normal way, try using a Gem.
unless defined? ActiveRecord
begin
require 'rubygems'
gem 'rails'
rescue LoadError
# Nothing
end
end
# We check a fairly specific class, so that we can be sure that we've
# loaded a new enough version of AR that will support the features we
# actually use.
if defined? ActiveRecord::Associations::BelongsToPolymorphicAssociation
require 'puppet/rails'
true
else
false
end
end
# $Id$
|