summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-09-15 18:25:46 +0000
committerluke <luke@980ebf18-57e1-0310-9a29-db15c13687c0>2006-09-15 18:25:46 +0000
commit4a3c8d1ee40f1e6ce1fa7170b1e87a9621a1af31 (patch)
treedce836b65a5118c76c355624e0937f7bcb5190cf /lib
parent48992d712bc6d226d117bebd887c0fd42816fc3a (diff)
downloadpuppet-4a3c8d1ee40f1e6ce1fa7170b1e87a9621a1af31.tar.gz
puppet-4a3c8d1ee40f1e6ce1fa7170b1e87a9621a1af31.tar.xz
puppet-4a3c8d1ee40f1e6ce1fa7170b1e87a9621a1af31.zip
Adding testing for the default? method, and fixing it to support arrays and returning false when no defaults are specified
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1614 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/provider.rb17
1 files changed, 11 insertions, 6 deletions
diff --git a/lib/puppet/provider.rb b/lib/puppet/provider.rb
index 6c95d1bf2..e9dcdec15 100644
--- a/lib/puppet/provider.rb
+++ b/lib/puppet/provider.rb
@@ -82,14 +82,19 @@ class Puppet::Provider
end
end
- # Does this implementation match all of the default requirements?
+ # Does this implementation match all of the default requirements? If
+ # defaults are empty, we return false.
def self.default?
- if @defaults.find do |fact, value|
- fval = Facter.value(fact)
- if fval
- fval.to_s.downcase.intern != value.to_s.downcase.intern
- else
+ return false if @defaults.empty?
+ if @defaults.find do |fact, values|
+ values = [values] unless values.is_a? Array
+ fval = Facter.value(fact).to_s.downcase.intern
+
+ # If any of the values match, we're a default.
+ if values.find do |value| fval == value.to_s.downcase.intern end
false
+ else
+ true
end
end
return false