module Hoe::Deveiate
def group_line_matches( tuples )
Return a Hash, keyed by filename, whose values are tuples of Ranges
def group_line_matches( tuples ) by_file = tuples.group_by {|tuple| tuple.first } return by_file.each_with_object({}) do |(filename, lines), hash| last_linenum = 0 linegroups = lines.slice_before do |filename, linenum| gap = linenum > last_linenum + 1 last_linenum = linenum gap end hash[ filename ] = linegroups.map do |group| rng = group.first[1] .. group.last[1] grouplines = group.transpose.last [ rng, grouplines ] end end end