Ruby 2.6 adds Binding#source_location

Taha Husain

Taha Husain

July 24, 2018

This blog is part of our  Ruby 2.6 series.

Before Ruby 2.6, if we want to know file name with location and line number of source code, we would need to use Binding#eval (Link is not available) .

1binding.eval('[__FILE__, __LINE__]')
2=> ["/Users/taha/blog/app/controllers/application_controller", 2]

Ruby 2.6 adds more readable method Binding#source_location (Link is not available) to achieve similar result.

1binding.source_location
2=> ["/Users/taha/blog/app/controllers/application_controller", 2]

Here is relevant commit and discussion for this change.

The Chinese version of this blog is available here.

If this blog was helpful, check out our full blog archive.

Stay up to date with our blogs.

Subscribe to receive email notifications for new blog posts.