Home

Find the Source of a Ruby Method's "Super"

It can be helpful when debugging to know what "super" is actually calling.

I've spent part of the last couple days debugging the bowels of a pesky Rails project. The issue was the infamous Stack Level Too Deep error.

I found the source of the problem was a gem's method calling super. And while the stack trace of an error will show you the pathway of an error, sometimes it can be helpful to manually find that pathway yourself during the debugging process.

It can be done in a quick one-liner using the name of the method:

method(:method_name).super_method.to_s

Where method_name is the name of the method you want to check.

Here's a simplistic example to demonstrate:

class A
def foo
'bar'
end
end

class B < A
def foo
method(:foo).super_method.to_s
end
end

a = A.new
a.foo # => bar

b = B.new
b.foo # => #<Method: A#foo>

Let's Connect

Keep Reading

Access the Site Object within a Jekyll Filter

Filters are the way to make liquid work for you, but sometimes we want more context than we are given when running them.

Aug 21, 2018

Don't Overthink Slugs in Ruby/Rails

It can take some tricky logic to transform unpredictable characters into a URL-friendly string. But with Rails, you don't need to worry about.

Jul 11, 2018

Run a Local Web Server with Ruby

No need to mess with Apache or Nginx to run a web server on your local machine. Just use this ruby command.

Jun 21, 2018