diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-09-15 18:25:46 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-09-15 18:25:46 +0000 |
| commit | 4a3c8d1ee40f1e6ce1fa7170b1e87a9621a1af31 (patch) | |
| tree | dce836b65a5118c76c355624e0937f7bcb5190cf /lib | |
| parent | 48992d712bc6d226d117bebd887c0fd42816fc3a (diff) | |
| download | puppet-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.rb | 17 |
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 |
