byebug icon indicating copy to clipboard operation
byebug copied to clipboard

Invoking byebug inside DelegateClass definition throws the `cannot load such file -- .../core` error.

Open Nakilon opened this issue 4 months ago • 0 comments

Addressing an undefined method inside initialize throws a cryptic error message:

     ArgumentError:
       not delegated

so to find it out I wanted to use byebug, like this:

require "delegate"
MyClass = DelegateClass(Hash) do
  def initialize

    require "byebug"
    byebug

    undefined_variable_that_caused_error
    super({ 1=>2 })
  end
end
MyClass.new

but it throws:

Traceback (most recent call last):
	8: from temp.rb:10:in `<main>'
	7: from temp.rb:10:in `new'
	6: from temp.rb:5:in `initialize'
	5: from /home/.../.rbenv/versions/2.7.8/lib/ruby/2.7.0/delegate.rb:86:in `method_missing'
	4: from /home/.../.rbenv/versions/2.7.8/lib/ruby/2.7.0/delegate.rb:86:in `bind_call'
	3: from /home/.../.rbenv/versions/2.7.8/lib/ruby/gems/2.7.0/gems/byebug-11.1.3/lib/byebug/attacher.rb:36:in `byebug'
	2: from /home/.../.rbenv/versions/2.7.8/lib/ruby/2.7.0/delegate.rb:86:in `method_missing'
	1: from /home/.../.rbenv/versions/2.7.8/lib/ruby/2.7.0/delegate.rb:86:in `bind_call'
/home/.../.rbenv/versions/2.7.8/lib/ruby/2.7.0/delegate.rb:86:in `require_relative': cannot load such file -- /home/.../.rbenv/versions/2.7.8/lib/ruby/2.7.0/core (LoadError)

because there https://github.com/ruby/delegate/blob/1c9f9cb37de9c1baa31dad5f67b00f59b765e22a/lib/delegate.rb#L89 they recall your https://github.com/deivid-rodriguez/byebug/blob/7e7384836defcfb40b675f5405428515b48eea9e/lib/byebug/attacher.rb#L36

Not sure who is to blame.

Nakilon avatar Oct 16 '24 23:10 Nakilon