bin/r2r_show in ruby2ruby-1.1.8 vs bin/r2r_show in ruby2ruby-1.1.9
- old
+ new
@@ -1,44 +1,29 @@
#!/usr/local/bin/ruby -ws
begin require 'rubygems' rescue LoadError end
require 'ruby2ruby'
+require 'parse_tree'
-def discover_new_classes_from
- old_classes = []
- ObjectSpace.each_object(Module) do |klass|
- old_classes << klass
- end
+$h ||= false
- yield
+if $h then
+ puts "usage: #{File.basename $0} [options] [file...]"
+ puts "options:"
+ puts "-h : display usage"
- new_classes = []
- ObjectSpace.each_object(Module) do |klass|
- new_classes << klass
- end
-
- new_classes -= old_classes
- new_classes = [ eval($c) ] if defined? $c
- new_classes
+ exit 1
end
-$f = true unless defined? $f
+ARGV.push "-" if ARGV.empty?
-new_classes = discover_new_classes_from do
- ARGV.unshift "-" if ARGV.empty?
- ARGV.each do |name|
- if name == "-" then
- code = $stdin.read
- code = "class Example; def example; #{code}; end; end" if $f
- eval code unless code.nil?
- else
- require name
- end
- end
-end
+parse_tree = ParseTree.new
+ruby2ruby = Ruby2Ruby.new
-result = ParseTree.new.parse_tree(*new_classes)
+ARGV.each do |file|
+ ruby = file == "-" ? $stdin.read : File.read(file)
-result = result[0][3][2][1][2..-1] if $f
+ sexp = parse_tree.parse_tree_for_string(ruby, file).first
-puts RubyToRuby.new.process(result.first)
+ puts ruby2ruby.process(sexp)
+end