diff options
Diffstat (limited to 'lib/puppet')
-rw-r--r-- | lib/puppet/provider.rb | 4 | ||||
-rw-r--r-- | lib/puppet/type.rb | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/lib/puppet/provider.rb b/lib/puppet/provider.rb index 1f13538af..3cef0dd71 100644 --- a/lib/puppet/provider.rb +++ b/lib/puppet/provider.rb @@ -91,8 +91,8 @@ class Puppet::Provider end end - def self.defaultnum - @defaults.length + def self.specificity + (@defaults.length * 100) + ancestors.select { |a| a.is_a? Class }.length end def self.initvars diff --git a/lib/puppet/type.rb b/lib/puppet/type.rb index 91f991814..098d83254 100644 --- a/lib/puppet/type.rb +++ b/lib/puppet/type.rb @@ -1465,8 +1465,8 @@ class Type # If we don't have any default we use suitable providers defaults = suitable if defaults.empty? - max = defaults.collect { |provider| provider.defaultnum }.max - defaults = defaults.find_all { |provider| provider.defaultnum == max } + max = defaults.collect { |provider| provider.specificity }.max + defaults = defaults.find_all { |provider| provider.specificity == max } retval = nil if defaults.length > 1 |