[ruby-core:112704] [Ruby master Feature#19450] Is there an official way to set a class name without setting a constant?
From:
"mame (Yusuke Endoh) via ruby-core" <ruby-core@...>
Date:
2023-03-07 05:31:53 UTC
List:
ruby-core #112704
Issue #19450 has been updated by mame (Yusuke Endoh).
Please write the use case in the proposal description. It is difficult for us to understand and discuss it in the dev meeting in a limited time.
----------------------------------------
Feature #19450: Is there an official way to set a class name without setting a constant?
https://bugs.ruby-lang.org/issues/19450#change-102162
* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
----------------------------------------
This is the best I could come up with:
```ruby
klass = Class.new
Object.const_set("Klass", klass)
Object.send(:remove_const, "Klass")
puts klass.new
# => #<Klass:0x0000000100a9d688>
```
Can we do better?
What about something like:
```ruby
Class.new(name: "Klass")
```
or
```ruby
Class.new do
def self.name
"Klass"
end
end
```
etc
--
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/