Project

General

Profile

Actions

Bug #19893

closed

OpenStruct#respond_to? when true fails with NameError

Added by msxavi (Emerson Xavier) 10 months ago. Updated 10 months ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:114822]

Description

Hello,

I have a case where I overrode respond_to? on a subclass of OpenStruct because I this class to work as fake object.

class Dep
  def a
    "Hello from Dep"
  end
end
class FakeDep < OpenStruct
  def respond_to?(*args)
    super || Dep.new.respond_to?(*args)
  end  
end

FakeDep.new(a: [])

NameError: undefined method `a' for class `FakeDep'

      owner = method!(name).owner
              ^^^^^^^
from /usr/local/lib/ruby/3.1.0/ostruct.rb:245:in `method'

Is this a valid issue?

Also posted in https://github.com/ruby/ostruct/issues/55

Actions

Also available in: Atom PDF

Like0
Like1Like0Like0