[ruby-core:114945] [Ruby master Bug#19893] OpenStruct#respond_to? when true fails with NameError
From:
"msxavi (Emerson Xavier) via ruby-core" <ruby-core@...>
Date:
2023-10-04 06:46:42 UTC
List:
ruby-core #114945
Issue #19893 has been updated by msxavi (Emerson Xavier).
Thank you! That's it.
----------------------------------------
Bug #19893: OpenStruct#respond_to? when true fails with NameError
https://bugs.ruby-lang.org/issues/19893#change-104816
* Author: msxavi (Emerson Xavier)
* Status: Closed
* Priority: Normal
* ruby -v: 3.1.4
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
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
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/