Posted 11 months ago. Visible to the public. Repeats.

How to examine an unknown Ruby object

When debugging your application, you will come across objects created by some gem or framework. You don't have the source code at hand, still need to inspect this object. Here are some tools to do so:

Relevant methods

@object.methods - Object.instance_methods returns a list of methods excluding methods inherited from Object. This makes the methods list drastically more relevant. You can also try subtracting other base classes like ActiveRecord::Base.methods etc.

Filtering method list

@object.methods.grep /keyword/ comes handy when you have an idea on how a method is called. It filters the list of method names with a regular expression.

Instance variables

@object.instance_variables returns all instance variables defined on the object. Access them with @object.instance_variable_get :@varname, modify with @object.instance_variable_set :@varname, value.

By refactoring problematic code and creating automated tests, makandra can vastly improve the maintainability of your Rails application.

Owner of this card:

Dominik Schöler
Last edit:
11 months ago
by Thomas Eisenbarth
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Dominik Schöler to makandra dev
This website uses cookies to improve usability and analyze traffic.
Accept or learn more