class RepeatedSubstring  def find_repeated_substring(s)  # catch the edge cases  return 'NONE' if s == ''  # check if the string consists of only one character => "aaaaaa" => "a"  return s.split('').uniq[0] if s.split('').uniq.length == 1  searched = []  longest_prefix = 0  long_prefix = ''  (0..s.length - 1).each do |i|  next if searched.include? s[i]  searched.push(s[i])  next_occurrences = next_index(s, i + 1, s[i])  next_occurrences.each do |next_occurrence|  next if next_occurrence == -1  prefix = ge_prefix(s[i..next_occurrence - 1], s[next_occurrence..s.length])  if prefix.length > longest_prefix  longest_prefix = prefix.length  long_prefix = prefix  end  end  end  # if prefix == " " it is a invalid sequence  return 'NONE' if long_prefix.strip.empty?  long_prefix  end  def get_prefix(s1, s2)  prefix = ''  min_length = [s1.length, s2.length].min  return '' if s1.nil? || s2.nil?  (0..min_length - 1).each do |i|  return prefix if s1[i] != s2[i]  prefix += s1[i]  end  prefix  end  def next_index(seq, index, value)  indexes = []  (index..seq.length).each do |i|  indexes.push(i) if seq[i] == value  end  indexes  end  def find_repeated_substring_file(file_path)  File.open(file_path).read.each_line.map { |line| find_repeated_substring(line) }  end end