Parent

PublicSuffix::Domain

Public Class Methods

domain_to_labels(domain) click to toggle source

Splits a string into its possible labels as a domain in reverse order from the input string.

The input is not validated, but it is assumed to be a valid domain.

@param [String, to_s] domain

The domain name to split.

@return [Array<String>]

@example

domain_to_labels('google.com')
# => ['com', 'google']

domain_to_labels('google.co.uk')
# => ['uk', 'co', 'google']
# File lib/public_suffix/domain.rb, line 32
def self.domain_to_labels(domain)
  domain.to_s.split(".").reverse
end
new(*args, &block) click to toggle source

Creates and returns a new {PublicSuffix::Domain} instance.

@overload initialize(tld)

Initializes with a +tld+.
@param [String] tld The TLD (extension)

@overload initialize(tld, sld)

Initializes with a +tld+ and +sld+.
@param [String] tld The TLD (extension)
@param [String] sld The TRD (domain)

@overload initialize(tld, sld, trd)

Initializes with a +tld+, +sld+ and +trd+.
@param [String] tld The TLD (extension)
@param [String] sld The SLD (domain)
@param [String] tld The TRD (subdomain)

@yield [self] Yields on self. @yieldparam [PublicSuffix::Domain] self The newly creates instance

@example Initialize with a TLD

PublicSuffix::Domain.new("com")
# => #<PublicSuffix::Domain @tld="com">

@example Initialize with a TLD and SLD

PublicSuffix::Domain.new("com", "example")
# => #<PublicSuffix::Domain @tld="com", @trd=nil>

@example Initialize with a TLD, SLD and TRD

PublicSuffix::Domain.new("com", "example", "wwww")
# => #<PublicSuffix::Domain @tld="com", @trd=nil, @sld="example">
# File lib/public_suffix/domain.rb, line 66
def initialize(*args, &block)
  @tld, @sld, @trd = args
  yield(self) if block_given?
end

Public Instance Methods

domain() click to toggle source

Returns a domain-like representation of this object if the object is a {domain?}, nil otherwise.

PublicSuffix::Domain.new("com").domain
# => nil

PublicSuffix::Domain.new("com", "google").domain
# => "google.com"

PublicSuffix::Domain.new("com", "google", "www").domain
# => "www.google.com"

This method doesn’t validate the input. It handles the domain as a valid domain name and simply applies the necessary transformations.

# This is an invalid domain
PublicSuffix::Domain.new("zip", "google").domain
# => "google.zip"

This method returns a FQD, not just the domain part. To get the domain part, use #sld (aka second level domain).

PublicSuffix::Domain.new("com", "google", "www").domain
# => "google.com"

PublicSuffix::Domain.new("com", "google", "www").sld
# => "google"

@return [String]

@see domain? @see subdomain

# File lib/public_suffix/domain.rb, line 166
def domain
  return unless domain?
  [sld, tld].join(".")
end
domain?() click to toggle source

Checks whether self looks like a domain.

This method doesn’t actually validate the domain. It only checks whether the instance contains a value for the {tld} and {sld} attributes. If you also want to validate the domain, use {valid_domain?} instead.

@return [Boolean]

@example

PublicSuffix::Domain.new("com").domain?
# => false

PublicSuffix::Domain.new("com", "google").domain?
# => true

PublicSuffix::Domain.new("com", "google", "www").domain?
# => true

# This is an invalid domain, but returns true
# because this method doesn't validate the content.
PublicSuffix::Domain.new("zip", "google").domain?
# => true

@see subdomain?

# File lib/public_suffix/domain.rb, line 248
def domain?
  !(tld.nil? || sld.nil?)
end
is_a_domain?() click to toggle source

Checks whether self is exclusively a domain, and not a subdomain.

@return [Boolean]

# File lib/public_suffix/domain.rb, line 288
def is_a_domain?
  domain? && !subdomain?
end
is_a_subdomain?() click to toggle source

Checks whether self is exclusively a subdomain.

@return [Boolean]

# File lib/public_suffix/domain.rb, line 295
def is_a_subdomain?
  subdomain?
end
name() click to toggle source

Returns the full domain name.

@return [String]

@example Gets the domain name of a domain

PublicSuffix::Domain.new("com", "google").name
# => "google.com"

@example Gets the domain name of a subdomain

PublicSuffix::Domain.new("com", "google", "www").name
# => "www.google.com"
# File lib/public_suffix/domain.rb, line 129
def name
  [trd, sld, tld].reject { |part| part.nil? }.join(".")
end
rule() click to toggle source

Returns the rule matching this domain in the default {PublicSuffix::List}.

@return [PublicSuffix::Rule::Base, nil]

The rule instance a rule matches current domain,
nil if no rule is found.
# File lib/public_suffix/domain.rb, line 215
def rule
  List.default.find(name)
end
sld() click to toggle source

Returns the Second Level Domain part, aka the domain part.

@return [String, nil]

# File lib/public_suffix/domain.rb, line 105
def sld
  @sld
end
subdomain() click to toggle source

Returns a domain-like representation of this object if the object is a {subdomain?}, nil otherwise.

PublicSuffix::Domain.new("com").subdomain
# => nil

PublicSuffix::Domain.new("com", "google").subdomain
# => nil

PublicSuffix::Domain.new("com", "google", "www").subdomain
# => "www.google.com"

This method doesn’t validate the input. It handles the domain as a valid domain name and simply applies the necessary transformations.

# This is an invalid domain
PublicSuffix::Domain.new("zip", "google", "www").subdomain
# => "www.google.zip"

This method returns a FQD, not just the domain part. To get the domain part, use #tld (aka third level domain).

PublicSuffix::Domain.new("com", "google", "www").subdomain
# => "www.google.com"

PublicSuffix::Domain.new("com", "google", "www").trd
# => "www"

@return [String]

@see subdomain? @see domain

# File lib/public_suffix/domain.rb, line 204
def subdomain
  return unless subdomain?
  [trd, sld, tld].join(".")
end
subdomain?() click to toggle source

Checks whether self looks like a subdomain.

This method doesn’t actually validate the subdomain. It only checks whether the instance contains a value for the {tld}, {sld} and {trd} attributes. If you also want to validate the domain, use {valid_subdomain?} instead.

@return [Boolean]

@example

PublicSuffix::Domain.new("com").subdomain?
# => false

PublicSuffix::Domain.new("com", "google").subdomain?
# => false

PublicSuffix::Domain.new("com", "google", "www").subdomain?
# => true

# This is an invalid domain, but returns true
# because this method doesn't validate the content.
PublicSuffix::Domain.new("zip", "google", "www").subdomain?
# => true

@see domain?

# File lib/public_suffix/domain.rb, line 280
def subdomain?
  !(tld.nil? || sld.nil? || trd.nil?)
end
tld() click to toggle source

Returns the Top Level Domain part, aka the extension.

@return [String, nil]

# File lib/public_suffix/domain.rb, line 98
def tld
  @tld
end
to_a() click to toggle source

Returns an array containing the domain parts.

@return [Array<String, nil>]

@example

PublicSuffix::Domain.new("google.com").to_a
# => [nil, "google", "com"]

PublicSuffix::Domain.new("www.google.com").to_a
# => [nil, "google", "com"]
# File lib/public_suffix/domain.rb, line 90
def to_a
  [trd, sld, tld]
end
to_s() click to toggle source

Returns a string representation of this object.

@return [String]

# File lib/public_suffix/domain.rb, line 74
def to_s
  name
end
trd() click to toggle source

Returns the Third Level Domain part, aka the subdomain part.

@return [String, nil]

# File lib/public_suffix/domain.rb, line 112
def trd
  @trd
end
valid?() click to toggle source

Checks whether self is assigned and allowed according to default {List}.

This method triggers a new rule lookup in the default {List}, which is a quite intensive task.

@return [Boolean]

@example Check a valid domain

Domain.new("com", "example").valid?
# => true

@example Check a valid subdomain

Domain.new("com", "example", "www").valid?
# => true

@example Check a not-assigned domain

Domain.new("zip", "example").valid?
# => false

@example Check a not-allowed domain

Domain.new("do", "example").valid?
# => false
Domain.new("do", "example", "www").valid?
# => true
# File lib/public_suffix/domain.rb, line 325
def valid?
  r = rule
  !r.nil? && r.allow?(name)
end
valid_domain?() click to toggle source

Checks whether self looks like a domain and validates according to default {List}.

@return [Boolean]

@example

PublicSuffix::Domain.new("com").domain?
# => false

PublicSuffix::Domain.new("com", "google").domain?
# => true

PublicSuffix::Domain.new("com", "google", "www").domain?
# => true

# This is an invalid domain
PublicSuffix::Domain.new("zip", "google").false?
# => true

@see domain? @see valid?

# File lib/public_suffix/domain.rb, line 354
def valid_domain?
  domain? && valid?
end
valid_subdomain?() click to toggle source

Checks whether self looks like a subdomain and validates according to default {List}.

@return [Boolean]

@example

PublicSuffix::Domain.new("com").subdomain?
# => false

PublicSuffix::Domain.new("com", "google").subdomain?
# => false

PublicSuffix::Domain.new("com", "google", "www").subdomain?
# => true

# This is an invalid domain
PublicSuffix::Domain.new("zip", "google", "www").subdomain?
# => false

@see subdomain? @see valid?

# File lib/public_suffix/domain.rb, line 381
def valid_subdomain?
  subdomain? && valid?
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.