Class: PublicSuffix::Rule::Normal

Inherits:
Base
  • Object
show all
Defined in:
lib/public_suffix/rule.rb

Overview

Normal represents a standard rule (e.g. com).

Instance Attribute Summary

Attributes inherited from Base

#private, #value

Instance Method Summary collapse

Methods inherited from Base

#==, #match?

Constructor Details

#initialize(definition, **options) ⇒ Normal

Initializes a new rule from definition.

Parameters:

  • definition (String)

    the rule as defined in the PSL



181
182
183
# File 'lib/public_suffix/rule.rb', line 181

def initialize(definition, **options)
  super(definition, **options)
end

Instance Method Details

#decompose(domain) ⇒ Array<String>

Decomposes the domain name according to rule properties.

Parameters:

  • name (String, #to_s)

    The domain name to decompose

Returns:

  • (Array<String>)

    The array with [trd + sld, tld].



196
197
198
199
200
# File 'lib/public_suffix/rule.rb', line 196

def decompose(domain)
  suffix = parts.join('\.')
  matches = domain.to_s.match(/^(.*)\.(#{suffix})$/)
  matches ? matches[1..2] : [nil, nil]
end

#lengthInteger

Gets the length of this rule for comparison, represented by the number of dot-separated parts in the rule.

Returns:

  • (Integer)

    The length of the rule.



214
215
216
# File 'lib/public_suffix/rule.rb', line 214

def length
  @length ||= parts.length
end

#partsArray<String>

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

Returns:

  • (Array<String>)


206
207
208
# File 'lib/public_suffix/rule.rb', line 206

def parts
  @value.split(DOT)
end

#ruleString

Gets the original rule definition.

Returns:

  • (String)

    The rule definition.



188
189
190
# File 'lib/public_suffix/rule.rb', line 188

def rule
  value
end