2012-01-16 4 views
3

ruby ​​소스 파일을 생성 및/또는 구문 분석하고 수정하는 가장 신뢰할 수있는 방법은 무엇입니까?Ruby 내에서 Ruby 소스 파일 생성/수정

즉, 예 : 새 루비 소스 파일을 만들거나 소스 파일의 클래스에있는 몇 줄의 코드를 예 : 메서드 나 호출 등을 추가하거나 제거하십시오.

아마도이 라이브러리가 있습니까?

+0

Bundler를은 (https://github.com/carlhuda/bundler/blob/master/lib/bundler/templates/newgem/lib/newgem를 참조 루비 ​​소스 파일을 생성하기 위해 ERB를 사용 /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"