This is a minor modification to the fail-wrapper for parameter errors to simplify the code and to preserve backtrace information (so that the stack will point to the source of the actual error rather than to the fail-wrapper itself).
Signed-off-by: Markus Roberts <[email protected]> --- lib/puppet/parameter.rb | 20 ++++---------------- 1 files changed, 4 insertions(+), 16 deletions(-) diff --git a/lib/puppet/parameter.rb b/lib/puppet/parameter.rb index f408667..1147be4 100644 --- a/lib/puppet/parameter.rb +++ b/lib/puppet/parameter.rb @@ -374,23 +374,11 @@ class Puppet::Parameter end def fail(*args) - type = nil - if args[0].is_a?(Class) - type = args.shift - else - type = Puppet::Error - end - + type = args[0].is_a?(Class) ? args.shift : Puppet::Error error = type.new(args.join(" ")) - - if defined? @resource and @resource and @resource.line - error.line = @resource.line - end - - if defined? @resource and @resource and @resource.file - error.file = @resource.file - end - + error.line = @resource.line if @resource and @resource.line + error.file = @resource.file if @resource and @resource.file + error.set_backtrace args[0].backtrace if args[0].respond_to? :backtrace raise error end -- 1.6.0.4 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en -~----------~----~----~----~------~----~------~--~---
