Class: PublicSuffix::Domain
- Inherits:
-
Object
- Object
- PublicSuffix::Domain
- Defined in:
- lib/public_suffix/domain.rb
Instance Attribute Summary collapse
-
#sld ⇒ Object
readonly
Returns the value of attribute sld.
-
#tld ⇒ Object
readonly
Returns the value of attribute tld.
-
#trd ⇒ Object
readonly
Returns the value of attribute trd.
Class Method Summary collapse
-
.domain_to_labels(domain) ⇒ Array<String>
Splits a string into its possible labels as a domain in reverse order from the input string.
Instance Method Summary collapse
-
#domain ⇒ String
Returns a domain-like representation of this object if the object is a #domain?,
nil
otherwise. -
#domain? ⇒ Boolean
Checks whether
self
looks like a domain. -
#initialize(*args) {|self| ... } ⇒ Domain
constructor
Creates and returns a new Domain instance.
-
#is_a_domain? ⇒ Boolean
Checks whether
self
is exclusively a domain, and not a subdomain. -
#is_a_subdomain? ⇒ Boolean
Checks whether
self
is exclusively a subdomain. -
#name ⇒ String
Returns the full domain name.
-
#rule ⇒ PublicSuffix::Rule::Base?
Returns the rule matching this domain in the default List.
-
#subdomain ⇒ String
Returns a domain-like representation of this object if the object is a #subdomain?,
nil
otherwise. -
#subdomain? ⇒ Boolean
Checks whether
self
looks like a subdomain. -
#to_a ⇒ Array<String, nil>
Returns an array containing the domain parts.
-
#to_s ⇒ String
Returns a string representation of this object.
-
#valid? ⇒ Boolean
Checks whether
self
is assigned and allowed according to default List. -
#valid_domain? ⇒ Boolean
Checks whether
self
looks like a domain and validates according to default List. -
#valid_subdomain? ⇒ Boolean
Checks whether
self
looks like a subdomain and validates according to default List.
Constructor Details
#initialize(tld) ⇒ Domain #initialize(tld, sld) ⇒ Domain #initialize(tld, sld, trd) ⇒ Domain
Creates and returns a new PublicSuffix::Domain instance.
67 68 69 70 |
# File 'lib/public_suffix/domain.rb', line 67 def initialize(*args, &block) @tld, @sld, @trd = args yield(self) if block_given? end |
Instance Attribute Details
#sld ⇒ Object (readonly)
Returns the value of attribute sld.
35 36 37 |
# File 'lib/public_suffix/domain.rb', line 35 def sld @sld end |
#tld ⇒ Object (readonly)
Returns the value of attribute tld.
35 36 37 |
# File 'lib/public_suffix/domain.rb', line 35 def tld @tld end |
#trd ⇒ Object (readonly)
Returns the value of attribute trd.
35 36 37 |
# File 'lib/public_suffix/domain.rb', line 35 def trd @trd end |
Class Method Details
.domain_to_labels(domain) ⇒ Array<String>
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.
31 32 33 |
# File 'lib/public_suffix/domain.rb', line 31 def self.domain_to_labels(domain) domain.to_s.split(".").reverse end |
Instance Method Details
#domain ⇒ String
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("qqq", "google").domain
# => "google.qqq"
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"
144 145 146 147 148 |
# File 'lib/public_suffix/domain.rb', line 144 def domain if domain? [@sld, @tld].join(".") end end |
#domain? ⇒ Boolean
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.
227 228 229 |
# File 'lib/public_suffix/domain.rb', line 227 def domain? !(@tld.nil? || @sld.nil?) end |
#is_a_domain? ⇒ Boolean
Checks whether self
is exclusively a domain, and not a subdomain.
267 268 269 |
# File 'lib/public_suffix/domain.rb', line 267 def is_a_domain? domain? && !subdomain? end |
#is_a_subdomain? ⇒ Boolean
Checks whether self
is exclusively a subdomain.
274 275 276 |
# File 'lib/public_suffix/domain.rb', line 274 def is_a_subdomain? subdomain? end |
#name ⇒ String
Returns the full domain name.
107 108 109 |
# File 'lib/public_suffix/domain.rb', line 107 def name [@trd, @sld, @tld].compact.join(".") end |
#rule ⇒ PublicSuffix::Rule::Base?
Returns the rule matching this domain in the default List.
195 196 197 |
# File 'lib/public_suffix/domain.rb', line 195 def rule List.default.find(name) end |
#subdomain ⇒ String
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("qqq", "google", "www").subdomain
# => "www.google.qqq"
This method returns a FQD, not just the domain part. To get the subdomain part, use #trd
(aka third level domain).
PublicSuffix::Domain.new("com", "google", "www").subdomain
# => "www.google.com"
PublicSuffix::Domain.new("com", "google", "www").trd
# => "www"
183 184 185 186 187 |
# File 'lib/public_suffix/domain.rb', line 183 def subdomain if subdomain? [@trd, @sld, @tld].join(".") end end |
#subdomain? ⇒ Boolean
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.
259 260 261 |
# File 'lib/public_suffix/domain.rb', line 259 def subdomain? !(@tld.nil? || @sld.nil? || @trd.nil?) end |
#to_a ⇒ Array<String, nil>
Returns an array containing the domain parts.
91 92 93 |
# File 'lib/public_suffix/domain.rb', line 91 def to_a [@trd, @sld, @tld] end |
#to_s ⇒ String
Returns a string representation of this object.
75 76 77 |
# File 'lib/public_suffix/domain.rb', line 75 def to_s name end |
#valid? ⇒ Boolean
304 305 306 307 |
# File 'lib/public_suffix/domain.rb', line 304 def valid? r = rule !r.nil? && r.allow?(name) end |
#valid_domain? ⇒ Boolean
Checks whether self
looks like a domain and validates according to default List.
332 333 334 |
# File 'lib/public_suffix/domain.rb', line 332 def valid_domain? domain? && valid? end |
#valid_subdomain? ⇒ Boolean
Checks whether self
looks like a subdomain and validates according to default List.
359 360 361 |
# File 'lib/public_suffix/domain.rb', line 359 def valid_subdomain? subdomain? && valid? end |