vivo/utilities/ISF-transition/obsoleteUris/report.rb
2013-10-23 16:03:45 -04:00

75 lines
2 KiB
Ruby

class Report
# ------------------------------------------------------------------------------------
private
# ------------------------------------------------------------------------------------
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
# puts "FLAT: #{hash.to_a.flatten}"
hash.sort.each do |path, events|
puts "#{path}"
events.sort{|a, b| a.line_number <=> b.line_number }.each do |e|
puts " #{e.line_number} #{e.line}"
puts " #{e.is_localname ? "Localname" : "URI"} #{e.string}"
end
puts "--------------------"
end
end
def list_events()
@events.each do |event|
puts "Event: #{event}"
end
end
# ------------------------------------------------------------------------------------
public
# ------------------------------------------------------------------------------------
def initialize(args)
@args = args;
@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()
# list_events()
collate_and_list_events()
end
end