Sha256: 28c1982ec3e9b327fb2520c57ddf391e4b938b739b5ae0b1d81727f1af2e33a8
Contents?: true
Size: 943 Bytes
Versions: 51
Compression:
Stored size: 943 Bytes
Contents
# frozen_string_literal: true module PublicSuffix # Monkey Patch to include the match logic class Domain # For Sanity def ==(other) name == other.name end # @return [ Boolean ] # def match(pattern) pattern = PublicSuffix.parse(pattern) unless pattern.is_a?(PublicSuffix::Domain) return name == pattern.name unless pattern.trd return false unless tld == pattern.tld && sld == pattern.sld matching_pattern?(pattern) end protected # @rturn [ Boolean ] def matching_pattern?(pattern) pattern_trds = pattern.trd.split('.') domain_trds = trd.split('.') case pattern_trds.first when '*' pattern_trds[1..-1] == domain_trds[1..-1] when '**' pa = pattern_trds[1..-1] pa_size = pa.size domain_trds[domain_trds.size - pa_size, pa_size] == pa else name == pattern.name end end end end
Version data entries
51 entries across 51 versions & 3 rubygems