module Embulk::Guess::TimeFormatGuess
def self.guess(texts)
def self.guess(texts) texts = Array(texts).map {|text| text.to_s } texts.reject! {|text| text == "" } matches = texts.map do |text| PATTERNS.map {|pattern| pattern.match(text) }.compact end.flatten if matches.empty? return nil elsif matches.size == 1 return matches[0].format else match_groups = matches.group_by {|match| match.mergeable_group }.values best_match_group = match_groups.sort_by {|group| group.size }.last best_match = best_match_group.shift best_match_group.each {|m| best_match.merge!(m) } return best_match.format end end