78: def call_valuemethod(name, value)
79: if method = self.class.value_option(name, :method) and self.respond_to?(method)
80: begin
81: event = self.send(method)
82: rescue Puppet::Error
83: raise
84: rescue => detail
85: puts detail.backtrace if Puppet[:trace]
86: error = Puppet::Error.new("Could not set '#{value} on #{self.class.name}: #{detail}", @resource.line, @resource.file)
87: error.set_backtrace detail.backtrace
88: raise error
89: end
90: elsif block = self.class.value_option(name, :block)
91:
92:
93: self.instance_eval(&block)
94: else
95: devfail "Could not find method for value '#{name}'"
96: end
97: end