Rubyでは、MyClassのインスタンスを作成するクラスの名前を取得する方法はありますか?私のクラスを "新しくした"クラスの名前
私はinitializeメソッドの引数として渡すことができますが、MyClassのインスタンス内にMyClassのインスタンスを作成したクラスと関係があるデータが既にあるかどうかを知りたいと思います。
だから、それは一般的に
class MyClass
def initialize
@who_called_me = who_called_me.name
end
def who_called_me
puts @who_called_me
end
end
これを知る必要がある場合は、おそらくデザインに問題がある可能性があります。 –
一般的に、私はこれを行う簡単な方法がないと考えることができます。しかし、スタックバックトレースの文字列を取得し、 'new'を呼び出す前にそのフレームを解析することができます。それは 'new'と呼ばれるコードの一部を与えるかもしれません。しかしそれはあなたのコードをスタックバックトレースのフォーマットに依存させるでしょう。良いことではありません。 – Linuxios
これは特別なケースですが、私のデザインに疑問を呈してくれてありがとう、本当に助かります –