There's More to Ruby Debugging Than puts() - Shopify
Feb 24, 2015

Summary
This post details various Ruby introspection methods (`#class`, `#is_a?`, `#instance_of?`, `#methods`, `#method`, `#caller`, `#instance_variables`, `::name`, `::class_variables`, `::instance_methods`, `::superclass`, `Module.nesting`, `::ancestors`, `::constants`) and debugger commands (`var`, `backtrace`, `frame`, `help`) that can be used to debug Ruby code. It explains how these tools can be used to inspect object types, inheritance chains, available methods, call stacks, instance and class variables, and constants, as well as navigate debugger frames.