# frozen_string_literal: true module GitlabCodeownersChecker class Pattern def self.from_file_line(str) path, *owners = str.split(' ') pattern = path[-1] == '/' ? /\A#{Regexp.escape(path)}.+/ : path new(pattern, owners) end def initialize(pattern, owners) @pattern = pattern @owners = owners end attr_reader :pattern, :owners def match?(str) @pattern.is_a?(Regexp) ? @pattern.match?(str) : str == @pattern end end end