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.
To further narrow it down you can also just look at public methods via @object.public_methods - Object.public_instance_methods
.
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
.
Does your version of Ruby on Rails still receive security updates?
Rails LTS provides security patches for old versions of Ruby on Rails (3.2 and 2.3).