module FindSharedLines

Constants

VERSION

Public Class Methods

exclude_shared_lines(files) click to toggle source
# File lib/find_shared_lines.rb, line 23
def self.exclude_shared_lines(files)
  reduce(files) { |first_file, file| first_file - file }
end
join(files) click to toggle source
# File lib/find_shared_lines.rb, line 31
def self.join(files)
  reduce(files) { |first_file, file| first_file | file }
end
read_file_into_set(file) click to toggle source
# File lib/find_shared_lines.rb, line 13
def self.read_file_into_set(file)
  Set.new(read_lines_from(file))
end
read_lines_from(file) click to toggle source
# File lib/find_shared_lines.rb, line 9
def self.read_lines_from(file)
  File.open(file).readlines.map(&:chomp)
end
reduce(files) { |acc, read_file_into_set(file)| ... } click to toggle source
# File lib/find_shared_lines.rb, line 17
def self.reduce(files)
  first_file, *rest = files
  first_set = read_file_into_set(first_file)
  rest.reduce(first_set) { |acc, file| yield acc, read_file_into_set(file) }
end
shared_lines(files) click to toggle source
# File lib/find_shared_lines.rb, line 27
def self.shared_lines(files)
  reduce(files) { |first_file, file| first_file & file }
end