Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: 2c94146759
Fetching contributors…

Cannot retrieve contributors at this time

31 lines (18 sloc) 1.294 kB

Debug Log

This is a simple RubyGem that provides a more convenient and powerful way of doing debug printouts than using puts or a logger directly.

Usage

Require the gem. If you are using Bundler, add this to your Gemfile:

gem 'debug_log', '~> version known to work'

Now you can do debug printouts like this:

my_list = [:a, :b, :c]
my_number = 5
debug.log("after variable initialization", "my_number", "my_list.size")

The first argument to the log method is a comment and the following arguments are Ruby expression that will be evaluated. Here is an example of what the output can look like:

DebugLog | after variable initialization | my_number="5" (Fixnum), my_list.size="3" (Fixnum) | /Users/peter/tmp/debug-example.rb:7:in `foo'

By default the logger will log to stdout, but you can change that through the configuration options:

DebugLog.logger = lambda { |message| Rails.logger.info(message) }
DebugLog.stdout = false # defaults to true
DebugLog.enabled = false # defaults to true

Credit

The approach to patching the binding object was taken from Niclas Nilssons presentation “The Ruby advantage - metaprogramming and DSLs” at Nordic Ruby 2010. Niclas has packaged up his own solution to debug printouts in his dp gem.

Jump to Line
Something went wrong with that request. Please try again.