# File lib/puppet/property.rb, line 249 249: def set(value) 250: # Set a name for looking up associated options like the event. 251: name = self.class.value_name(value) 252: 253: call = self.class.value_option(name, :call) || :none 254: 255: if call == :instead 256: call_valuemethod(name, value) 257: elsif call == :none 258: # They haven't provided a block, and our parent does not have 259: # a provider, so we have no idea how to handle this. 260: self.fail "#{self.class.name} cannot handle values of type #{value.inspect}" unless @resource.provider 261: call_provider(value) 262: else 263: # LAK:NOTE 20081031 This is a change in behaviour -- you could 264: # previously specify :call => [;before|:after], which would call 265: # the setter *in addition to* the block. I'm convinced this 266: # was never used, and it makes things unecessarily complicated. 267: # If you want to specify a block and still call the setter, then 268: # do so in the block. 269: devfail "Cannot use obsolete :call value '#{call}' for property '#{self.class.name}'" 270: end 271: end