Loading bin/compare +26 −12 Original line number Diff line number Diff line Loading @@ -81,19 +81,17 @@ def discard_docs(cls) cls end def read_all_classes(dir, ignore_private=false) def read_all_classes(dir) map = {} Dir[dir+"/*.json"].each do |filename| print "." STDOUT.flush cls = discard_docs(read_class(filename)) unless ignore_private && cls["private"] map[cls["name"]] = cls cls["alternateClassNames"].each do |name| map[name] = cls end end end puts "OK" map end Loading Loading @@ -237,14 +235,14 @@ def compare_classes(cls1, cls2) end old_classes = read_all_classes(options[:old_classes], :ignore_private) old_classes = read_all_classes(options[:old_classes]) new_classes = read_all_classes(options[:new_classes]) ignored_members = options[:ignore] ? read_ignored_members(options[:ignore]) : {} diff_data = [] old_classes.each_pair do |name, cls| # only go through classes, not alternate names if name == cls["name"] if name == cls["name"] && !cls["private"] if options[:remap][name] new_cls = new_classes[options[:remap][name]] else Loading @@ -253,13 +251,25 @@ old_classes.each_pair do |name, cls| diff_data << { :name => cls["name"], :found => !!new_cls || ignored_members[name], :found => (new_cls || ignored_members[name]) ? :both : :old, :new_name => new_cls && new_cls["name"], :diff => new_cls ? compare_classes(cls, new_cls) : [], } end end new_classes.each_pair do |name, cls| if name == cls["name"] && !cls["private"] unless old_classes[name] diff_data << { :name => cls["name"], :found => :new, :diff => [], } end end end # Throw away ignored members and everything except configs diff_data.each do |cls| cls[:diff] = cls[:diff].find_all do |m| Loading Loading @@ -303,7 +313,7 @@ EOHTML html << "<ul>" diff_data.sort! {|a, b| a[:name] <=> b[:name] } diff_data.each do |cls| if cls[:found] if cls[:found] == :both if cls[:diff].length > 0 || options[:show_unchanged] html << "<li>" new_name = (cls[:new_name] == cls[:name] ? "" : " --> " + cls[:new_name]) Loading Loading @@ -332,9 +342,13 @@ diff_data.each do |cls| end html << "</li>" end else elsif cls[:found] == :old html << "<li>" html << "<h2>" + cls[:name] + " <b style='color:red'>not found</b></h2>" html << "</li>" elsif cls[:found] == :new html << "<li>" html << "<h2>" + cls[:name] + " <b>not found</b></h2>" html << "<h2>" + cls[:name] + " <b>New class</b></h2>" html << "</li>" end end Loading Loading
bin/compare +26 −12 Original line number Diff line number Diff line Loading @@ -81,19 +81,17 @@ def discard_docs(cls) cls end def read_all_classes(dir, ignore_private=false) def read_all_classes(dir) map = {} Dir[dir+"/*.json"].each do |filename| print "." STDOUT.flush cls = discard_docs(read_class(filename)) unless ignore_private && cls["private"] map[cls["name"]] = cls cls["alternateClassNames"].each do |name| map[name] = cls end end end puts "OK" map end Loading Loading @@ -237,14 +235,14 @@ def compare_classes(cls1, cls2) end old_classes = read_all_classes(options[:old_classes], :ignore_private) old_classes = read_all_classes(options[:old_classes]) new_classes = read_all_classes(options[:new_classes]) ignored_members = options[:ignore] ? read_ignored_members(options[:ignore]) : {} diff_data = [] old_classes.each_pair do |name, cls| # only go through classes, not alternate names if name == cls["name"] if name == cls["name"] && !cls["private"] if options[:remap][name] new_cls = new_classes[options[:remap][name]] else Loading @@ -253,13 +251,25 @@ old_classes.each_pair do |name, cls| diff_data << { :name => cls["name"], :found => !!new_cls || ignored_members[name], :found => (new_cls || ignored_members[name]) ? :both : :old, :new_name => new_cls && new_cls["name"], :diff => new_cls ? compare_classes(cls, new_cls) : [], } end end new_classes.each_pair do |name, cls| if name == cls["name"] && !cls["private"] unless old_classes[name] diff_data << { :name => cls["name"], :found => :new, :diff => [], } end end end # Throw away ignored members and everything except configs diff_data.each do |cls| cls[:diff] = cls[:diff].find_all do |m| Loading Loading @@ -303,7 +313,7 @@ EOHTML html << "<ul>" diff_data.sort! {|a, b| a[:name] <=> b[:name] } diff_data.each do |cls| if cls[:found] if cls[:found] == :both if cls[:diff].length > 0 || options[:show_unchanged] html << "<li>" new_name = (cls[:new_name] == cls[:name] ? "" : " --> " + cls[:new_name]) Loading Loading @@ -332,9 +342,13 @@ diff_data.each do |cls| end html << "</li>" end else elsif cls[:found] == :old html << "<li>" html << "<h2>" + cls[:name] + " <b style='color:red'>not found</b></h2>" html << "</li>" elsif cls[:found] == :new html << "<li>" html << "<h2>" + cls[:name] + " <b>not found</b></h2>" html << "<h2>" + cls[:name] + " <b>New class</b></h2>" html << "</li>" end end Loading