lib/cucumber/wire_support/wire_exception.rb in cucumber-0.4.5.rc2 vs lib/cucumber/wire_support/wire_exception.rb in cucumber-0.5.0

- old
+ new

@@ -1,10 +1,32 @@ module Cucumber module WireSupport # Proxy for an exception that occured at the remote end of the wire class WireException < StandardError - def initialize(args) + module CanSetName + attr_writer :exception_name + def to_s + @exception_name + end + end + + def initialize(args, host, port) super args['message'] + if args['exception'] + self.class.extend(CanSetName) + self.class.exception_name = "#{args['exception']} from #{host}:#{port}" + end + if args['backtrace'] + @backtrace = if args['backtrace'].is_a?(String) + args['backtrace'].split("\n") # TODO: change cuke4nuke to pass an array instead of a big string + else + args['backtrace'] + end + end + end + + def backtrace + @backtrace || super end end end end \ No newline at end of file