module Rpp
Public Class Methods
run(file)
click to toggle source
# File lib/rpp.rb, line 5 def run(file) raise ArgumentError.new("Expecting a file ending in .rpp.<ext>") unless file =~ /\.rpp\.\w+$/ text = File.read(file) outfile = File.open(file.sub(/\.rpp(\.\w+)$/, '\1'), 'w') regex = Regexp.new("(?<all>RPPEVAL#{Regexp.properly_nested('{', '}').verbatim})") #p regex eval_text = eval("<<EOFRPP\n" + text.gsub(regex){ a = "#{$~[:all]}"; a = a.universal_escape('RPPPPPPPPPPPPPXXXX'); a}.inspect.universal_unescape('RPPPPPPPPPPPPPXXXX').gsub(/RPPEVAL\{/, '#{') + "\nEOFRPP\n") outfile.puts eval_text[1...eval_text.length-2] outfile.close end