[#119637] Behavior of raising from rescue blocks when multiple rescue blocks exist — Rodrigo Rosenfeld Rosas via ruby-core <ruby-core@...>
Hello, I couldn't find any documentation about the subject, so I thought
3 messages
2024/10/29
[ruby-core:119578] [Ruby master Bug#20808] Cannot override Data#inspect
From:
"byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Date:
2024-10-21 16:49:10 UTC
List:
ruby-core #119578
Issue #20808 has been updated by byroot (Jean Boussier).
> Struct and Data both assume all member readers are public:
Actually I misread. The `Struct` one uses `Struct#[]` so it would work with Struct. `Data` however has no such method, so two solutions I can think of are:
- Use `send`, but only work for private. If instead the method is renamed or removed, it will still fail.
- Rescue `NoMethodError`, and skip displaying that field.
----------------------------------------
Bug #20808: Cannot override Data#inspect
https://bugs.ruby-lang.org/issues/20808#change-110197
* Author: maicolben (Maicol Bentancor)
* Status: Open
* ruby -v: 3.3.5
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
Given the next code:
```
Dog = Data.define(:name) do
def inspect
"Hello!"
end
private
attr_reader :name
end
Dog.new(name: "Fido")
```
It throws an error:
- An error occurred when inspecting the object: #<NoMethodError: private method `name' called for an instance of Dog>
And isn't using my `inspect` function
--
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/lists/ruby-core.ml.ruby-lang.org/