module Utils::Patterns

def choose(argument, pattern_opts, default: ?f)

def choose(argument, pattern_opts, default: ?f)
  case argument
  when /^r/, (default == ?r ? nil : :not)
    RegexpPattern.new(pattern_opts)
  when /^f/, (default == ?f ? nil : :not)
    FuzzyPattern.new(pattern_opts)
  else
    raise ArgumentError, 'argument -p has to be f=fuzzy or r=regexp'
  end
end