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

Version Path
cms_scanner-0.15.0 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.14.3 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.14.2 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.13.9 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.13.8 lib/cms_scanner/public_suffix/domain.rb
new_cms_scanner-0.13.7 lib/cms_scanner/public_suffix/domain.rb
k8s_cms_scanner-0.1.0 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.13.7 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.13.6 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.13.5 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.13.4 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.13.3 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.13.2 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.13.1 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.13.0 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.12.2 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.12.1 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.12.0 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.11.0 lib/cms_scanner/public_suffix/domain.rb
cms_scanner-0.10.1 lib/cms_scanner/public_suffix/domain.rb