vivo/legacy/utilities/ISF-transition/obsoleteUris/report.rb
2015-11-19 23:47:41 +00:00

78 lines
2.1 KiB
Ruby

class Report
# ------------------------------------------------------------------------------------
private
# ------------------------------------------------------------------------------------
def relativize(path)
Pathname.new(path).relative_path_from(Pathname.new(@directory_root)).to_s
end
def state_arguments()
puts
puts "-----------------------------------------------------------------"
puts " directory to scan = #{@args[0]}"
puts " obsolete_uris_file = #{@args[1]}"
puts " known exceptions file = #{@args[2]}"
puts " complete = #{!@args[3].nil?}"
puts "-----------------------------------------------------------------"
puts
end
def file_summary()
puts " scanned #{@file_count} files"
@extensions_count.sort.each do |pair|
puts " #{pair[0]} #{pair[1]}"
end
puts "-----------------------------------------------------------------"
puts
end
def collate_and_list_events()
hash = Hash.new{|h, k| []}
@events.each do |event|
hash[event.path] = hash[event.path] << event
end
hash.sort.each do |path, events|
puts "#{relativize(path)}"
events.sort{|a, b| a.line_number <=> b.line_number }.each do |e|
trimmed =
if e.line.size <= 100
e.line
else
e.line[0..97] << "..."
end
puts " #{e.line_number} #{trimmed}"
puts " #{e.is_localname ? "Localname" : "URI"} #{e.string}"
end
puts "--------------------"
end
end
# ------------------------------------------------------------------------------------
public
# ------------------------------------------------------------------------------------
def initialize(args, directory_root)
@args = args;
@directory_root = directory_root
@file_count = 0
@extensions_count = Hash.new(0)
@events = []
end
def register_file(path)
@file_count += 1
@extensions_count[File.extname(path)] += 1
end
def add_event(event)
@events << event
end
def report()
state_arguments()
file_summary()
collate_and_list_events()
end
end