Ruby でのメタプログラミングについて学び始めたばかりで、生成されたコードを (何らかの方法で) 表示できるかどうか疑問に思っていました。コーディングの練習として、いくつかのメソッド定義、または理想的にはクラスまたはモジュール定義全体を含む Ruby ファイルを生成する短いメソッドを書きたいと思います。
おそらく、ファイルの文字列表現を構築し、それを書き出すだけでそれを達成できるのではないかと考えていましたが、その方法ではメタプログラミングを使用する必要はありません。私の目標はメタプログラミングの演習であるため、それをそのプロセスに組み込むか、別の方法で行う方法を見つけたいと思います。
文字列構築のアプローチを取るとしたら、次のようなものから始めたいと思います
klass_string = "class GeneratedClass\n\t<BODY>\nend"
そして、どういうわけかこのようなものの出力を保存します
define_method( :initialize ) do
instance_variable_set("@var", "some_value")
end
'' を置き換えることができる文字列でklass_string
、ファイルに書き出されます。上記のコード スニペットを文字列に直接挿入するだけで問題なく動作することはわかっていますが、生成されずに手動で記述されたかのように、出力をより標準的な形式にしたいと考えています。
class GeneratedClass
def initialize
@var = 'some_value'
end
end
誰かが私を正しい方向に向けることができますか?