3
rubyソースファイルを生成したり解析したりする最も信頼性の高い方法は何ですか?Ruby内からRubyソースファイルを生成/変更する
つまり、私はしたいです。新しいルビソースファイルを作成するか、ソースファイル内のクラスのコードを数行変更するなどして、メソッドや呼び出しなどを追加または削除する。
これはおそらくライブラリですか?
rubyソースファイルを生成したり解析したりする最も信頼性の高い方法は何ですか?Ruby内からRubyソースファイルを生成/変更する
つまり、私はしたいです。新しいルビソースファイルを作成するか、ソースファイル内のクラスのコードを数行変更するなどして、メソッドや呼び出しなどを追加または削除する。
これはおそらくライブラリですか?
Ruby2Rubyはone such gemです。他にもあるかもしれない。 readmeファイルから:
require 'rubygems'
require 'ruby2ruby'
require 'ruby_parser'
require 'pp'
ruby = "def a\n puts 'A'\nend\n\ndef b\n a\nend"
parser = RubyParser.new
ruby2ruby = Ruby2Ruby.new
sexp = parser.process(ruby)
pp sexp
p ruby2ruby.process(sexp)
## outputs:
s(:block,
s(:defn,
:a,
s(:args),
s(:scope, s(:block, s(:call, nil, :puts, s(:arglist, s(:str, "A")))))),
s(:defn, :b, s(:args), s(:scope, s(:block, s(:call, nil, :a, s(:arglist))))))
"def a\n puts(\"A\")\nend\ndef b\n a\nend\n"
バンドラーは、Rubyのソースファイルを作成するためにERBを使用しています(参照https://github.com/carlhuda/bundler/blob/master/lib/bundler/templates/newgem/lib/newgem /version.rb.tt)。 ERBは汎用テンプレートエンジンであり、_Rubyソースファイルの作成に特有のものではありませんが、これで十分です。 – DNNX