2012-01-16 5 views
3

ruby​​ソースファイルを生成したり解析したりする最も信頼性の高い方法は何ですか?Ruby内からRubyソースファイルを生成/変更する

つまり、私はしたいです。新しいルビソースファイルを作成するか、ソースファイル内のクラスのコードを数行変更するなどして、メソッドや呼び出しなどを追加または削除する。

これはおそらくライブラリですか?

+0

バンドラーは、Rubyのソースファイルを作成するためにERBを使用しています(参照https://github.com/carlhuda/bundler/blob/master/lib/bundler/templates/newgem/lib/newgem /version.rb.tt)。 ERBは汎用テンプレートエンジンであり、_Rubyソースファイルの作成に特有のものではありませんが、これで十分です。 – DNNX

答えて

1

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" 
関連する問題