set_temporary_name(string) -> selfRuby 3.3 から[permalink][rdoc][edit]set_temporary_name(nil) -> self-
モジュール / クラスに一時的な名前を設定します。self を返します。
設定した名前は Module#name や Module#inspect の結果に反映され、そのモジュール / クラスのインスタンスや定数、メソッドの表示にも使われます。定数に代入せずに、動的に生成したモジュール / クラスを区別したい場合に便利です。
引数に nil を指定すると、再び無名の状態に戻ります。
定数に代入されて永続的な名前が付くと、一時的な名前は破棄されます。また、既に永続的な名前を持つモジュール / クラスには設定できません。
- [PARAM]
string: - 一時的な名前を文字列で指定します。永続的な名前と紛らわしくならないよう、クラスパスとして有効な文字列は指定できません。nil を指定すると無名に戻ります。
- [EXCEPTION]
ArgumentError: -
string がクラスパスとして有効な文字列(
FooやFoo::Barなど)である場合や、空文字列である場合に発生します。 - [EXCEPTION]
RuntimeError: - 既に永続的な名前を持つモジュール / クラスに対して呼び出した場合に発生します。
例: 定数に代入すると永続的な名前になるm = Module.new p m.name # => nil m.set_temporary_name("<my temp>") p m.name # => "<my temp>" m.set_temporary_name(nil) p m.name # => nil
例: 設定できない名前m = Module.new m.set_temporary_name("<my temp>") p m.name # => "<my temp>" MyModule = m p m.name # => "MyModule"Module.new.set_temporary_name("Foo") # ~> ArgumentError Module.new.set_temporary_name("Foo::Bar") # ~> ArgumentError Module.new.set_temporary_name("") # ~> ArgumentError String.set_temporary_name("<x>") # ~> RuntimeError[SEE_ALSO] Module#name
- [PARAM]