# File lib/gauntlet_parsetree.rb, line 52 def broke name, file, msg warn "bad" self.data[name][file] = msg self.dirty = true end
# File lib/gauntlet_parsetree.rb, line 35 def diff_pp o1, o2 require 'pp' File.open("/tmp/a.#{$$}", "w") do |f| PP.pp o1, f end File.open("/tmp/b.#{$$}", "w") do |f| PP.pp o2, f end `diff -u /tmp/a.#{$$} /tmp/b.#{$$}` ensure File.unlink "/tmp/a.#{$$}" rescue nil File.unlink "/tmp/b.#{$$}" rescue nil end
# File lib/gauntlet_parsetree.rb, line 58 def process path, name begin $stderr.print " #{path}: " rp = RubyParser.new pt = ParseTree.new old_ruby = File.read(path) begin pt_sexp = pt.process old_ruby rescue SyntaxError => e warn "unparsable pt" self.data[name][path] = :unparsable_pt self.dirty = true return end begin rp_sexp = rp.process old_ruby rescue Racc::ParseError => e broke name, path, e.message return end if rp_sexp != pt_sexp then broke name, path, diff_pp(rp_sexp, pt_sexp) return end self.data[name][path] = true self.dirty = true warn "good" rescue Interrupt puts "User cancelled" exit 1 rescue Exception => e broke name, path, " UNKNOWN ERROR: #{e}: #{e.message.strip}" end end
# File lib/gauntlet_parsetree.rb, line 99 def run name warn name Dir["**/*.rb"].sort.each do |path| next if path =~ /gemspec.rb/ # HACK result = data[name][path] next if result == true || Symbol === result process path, name end if (self.data[name].empty? or self.data[name].values.all? { |v| v == true }) then warn " ALL GOOD!" self.data[name] = true self.dirty = true end end
Generated with the Darkfish Rdoc Generator 2.