How to puts-debug more efficiently
03 Jul 2020Meet LogBuddy. It has been my main debugging tool since forever. It’s the supercharged version of puts.
# ... anywhere in the code
d { goal }
# ...
d { params }
# ...tail -f log/awesome.log
Debugged variables are:
- named automatically
 - color-printed with the awesome print gem
 - logged in a separate file
 
Configuration
# Gemfile
group :development, :test do
  gem "awesome_print"
  gem "log_buddy"
end# config/initializers/log_buddy.rb
if Rails.env.development? || Rails.env.test?
  LogBuddy.init(
    logger: Logger.new("log/awesome.log"),
    use_awesome_print: true
  )
endI’m really amazed that a library written 12 years ago with no commits for the past 8 years could still work so flawlessly.