# File utils.rb, line 457 def try( msg, bind=nil ) result = nil message "Trying #{msg}..." begin rval = nil if block_given? rval = yield else file, line = caller(1)[0].split(/:/,2) rval = eval( msg, bind, file, line.to_i ) end if $yaml result = rval.to_yaml else result = rval.inspect end rescue Exception => err nicetrace = err.backtrace.delete_if {|frame| /in `(try|eval)'/ =~ frame }.join("\n\t") result = err.message + "\n\t" + nicetrace ensure puts result end end