class PublicSuffix::Rule::Wildcard

Wildcard represents a wildcard rule (e.g. *.co.uk).

Public Class Methods

Initializes a new rule from the content.

@param content [String] the content of the rule @param private [Boolean]

# File lib/public_suffix/rule.rb, line 223
def self.build(content, private: false)
  new(value: content.to_s[2..], private: private)
end

Initializes a new rule.

@param value [String] @param length [Integer] @param private [Boolean]

Calls superclass method PublicSuffix::Rule::Base::new
# File lib/public_suffix/rule.rb, line 232
def initialize(value:, length: nil, private: false)
  super
  length or @length += 1 # * counts as 1
end

Public Instance Methods

Decomposes the domain name according to rule properties.

@param domain [#to_s] The domain name to decompose @return [Array<String>] The array with [trd + sld, tld].

# File lib/public_suffix/rule.rb, line 248
def decompose(domain)
  suffix = ([".*?"] + parts).join('\.')
  matches = domain.to_s.match(/^(.*)\.(#{suffix})$/)
  matches ? matches[1..2] : [nil, nil]
end

dot-split rule value and returns all rule parts in the order they appear in the value.

@return [Array<String>]

# File lib/public_suffix/rule.rb, line 258
def parts
  @value.split(DOT)
end

Gets the original rule definition.

@return [String] The rule definition.

# File lib/public_suffix/rule.rb, line 240
def rule
  value == "" ? STAR : STAR + DOT + value
end