Diagnostic printf
A better basic debugging tool.
The crude "lets drop a print statement in" approach keeps being useful even with advanced dynamic languages. Here's a (slightly) improved version for ruby that pretty prints any number of passed objects and (importantly) where the print call was made from:
def dbg (*args)
print("dbg: #{caller()[0]}: ")
args.each { |a|
print "* #{a.inspect} "
}
end
# Examples:
dbg(1, 2, 3, 4)
# Returns:
# DEBUG: /home/f0/paul/dbg.rb:11:
# * 1
# * 2
# * 3
# * 4
dbg(1, 2, 3, :abc => 4)
# DEBUG: /home/f0/paul/dbg.rb:13:
# * 1
# * 2
# * 3
# * {:abc=>4}