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
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
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]
# File lib/public_suffix/domain.rb, line 166 def domain return unless domain? [sld, tld].join(".") end
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
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
Checks whether self is exclusively a subdomain.
@return [Boolean]
# File lib/public_suffix/domain.rb, line 295 def is_a_subdomain? subdomain? end
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
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
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
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
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
Returns the Top Level Domain part, aka the extension.
@return [String, nil]
# File lib/public_suffix/domain.rb, line 98 def tld @tld end
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
Returns a string representation of this object.
@return [String]
# File lib/public_suffix/domain.rb, line 74 def to_s name end
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
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
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
# File lib/public_suffix/domain.rb, line 354 def valid_domain? domain? && valid? end
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
Generated with the Darkfish Rdoc Generator 2.