# File lib/gauntlet_parsetree.rb, line 52 52: def broke name, file, msg 53: warn "bad" 54: self.data[name][file] = msg 55: self.dirty = true 56: end
# File lib/gauntlet_parsetree.rb, line 35 35: def diff_pp o1, o2 36: require 'pp' 37: 38: File.open("/tmp/a.#{$$}", "w") do |f| 39: PP.pp o1, f 40: end 41: 42: File.open("/tmp/b.#{$$}", "w") do |f| 43: PP.pp o2, f 44: end 45: 46: `diff -u /tmp/a.#{$$} /tmp/b.#{$$}` 47: ensure 48: File.unlink "/tmp/a.#{$$}" rescue nil 49: File.unlink "/tmp/b.#{$$}" rescue nil 50: end
# File lib/gauntlet_parsetree.rb, line 58 58: def process path, name 59: begin 60: $stderr.print " #{path}: " 61: rp = RubyParser.new 62: pt = ParseTree.new 63: 64: old_ruby = File.read(path) 65: 66: begin 67: pt_sexp = pt.process old_ruby 68: rescue SyntaxError => e 69: warn "unparsable pt" 70: self.data[name][path] = :unparsable_pt 71: self.dirty = true 72: return 73: end 74: 75: begin 76: rp_sexp = rp.process old_ruby 77: rescue Racc::ParseError => e 78: broke name, path, e.message 79: return 80: end 81: 82: if rp_sexp != pt_sexp then 83: broke name, path, diff_pp(rp_sexp, pt_sexp) 84: return 85: end 86: 87: self.data[name][path] = true 88: self.dirty = true 89: 90: warn "good" 91: rescue Interrupt 92: puts "User cancelled" 93: exit 1 94: rescue Exception => e 95: broke name, path, " UNKNOWN ERROR: #{e}: #{e.message.strip}" 96: end 97: end
# File lib/gauntlet_parsetree.rb, line 99 99: def run name 100: warn name 101: Dir["**/*.rb"].sort.each do |path| 102: next if path =~ /gemspec.rb/ # HACK 103: result = data[name][path] 104: next if result == true || Symbol === result 105: process path, name 106: end 107: 108: if (self.data[name].empty? or 109: self.data[name].values.all? { |v| v == true }) then 110: warn " ALL GOOD!" 111: self.data[name] = true 112: self.dirty = true 113: end 114: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.