# File lib/puppet/type.rb, line 708 708: def evaluate 709: if self.provider.is_a?(Puppet::Provider) 710: unless provider.class.suitable? 711: raise Puppet::Error, "Provider %s is not functional on this platform" % provider.class.name 712: end 713: end 714: 715: # this only operates on properties, not properties + children 716: # it's important that we call retrieve() on the type instance, 717: # not directly on the property, because it allows the type to override 718: # the method, like pfile does 719: currentvalues = self.retrieve 720: 721: changes = propertychanges(currentvalues).flatten 722: 723: # now record how many changes we've resulted in 724: if changes.length > 0 725: self.debug "%s change(s)" % 726: [changes.length] 727: end 728: 729: # If we're in noop mode, we don't want to store the checked time, 730: # because it will result in the resource not getting scheduled if 731: # someone were to apply the catalog in non-noop mode. 732: # We're going to go ahead and record that we checked if there were 733: # no changes, since it's unlikely it will affect the scheduling. 734: noop = noop? 735: if ! noop or (noop && changes.length == 0) 736: self.cache(:checked, Time.now) 737: end 738: return changes.flatten 739: end