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"
Bundler를은 (https://github.com/carlhuda/bundler/blob/master/lib/bundler/templates/newgem/lib/newgem를 참조 루비 소스 파일을 생성하기 위해 ERB를 사용 /version.rb.tt). ERB는 범용 템플릿 엔진이며 _Ruby 소스 파일 생성과 관련이 없습니다.하지만이 작업으로는 충분할 수 있습니다. – DNNX