In Files

  • resolv.rb

Resolv::DNS::Name

Public Class Methods

create(arg) click to toggle source
 
               # File resolv.rb, line 1011
def self.create(arg)
  case arg
  when Name
    return arg
  when String
    return Name.new(Label.split(arg), /\.\z/ =~ arg ? true : false)
  else
    raise ArgumentError.new("cannot interpret as DNS name: #{arg.inspect}")
  end
end
            
new(labels, absolute=true) click to toggle source
 
               # File resolv.rb, line 1022
def initialize(labels, absolute=true)
  @labels = labels
  @absolute = absolute
end
            

Public Instance Methods

==(other) click to toggle source
 
               # File resolv.rb, line 1035
def ==(other)
  return false unless Name === other
  return @labels == other.to_a && @absolute == other.absolute?
end
            
Also aliased as: eql?
[](i) click to toggle source
 
               # File resolv.rb, line 1071
def [](i)
  return @labels[i]
end
            
absolute?() click to toggle source
 
               # File resolv.rb, line 1031
def absolute?
  return @absolute
end
            
eql?(other) click to toggle source
Alias for: ==
hash() click to toggle source
 
               # File resolv.rb, line 1059
def hash
  return @labels.hash ^ @absolute.hash
end
            
inspect() click to toggle source
 
               # File resolv.rb, line 1027
def inspect
  "#<#{self.class}: #{self.to_s}#{@absolute ? '.' : ''}>"
end
            
length() click to toggle source
 
               # File resolv.rb, line 1067
def length
  return @labels.length
end
            
subdomain_of?(other) click to toggle source

tests subdomain-of relation.

domain = Resolv::DNS::Name.create("y.z")
p Resolv::DNS::Name.create("w.x.y.z").subdomain_of?(domain) #=> true
p Resolv::DNS::Name.create("x.y.z").subdomain_of?(domain) #=> true
p Resolv::DNS::Name.create("y.z").subdomain_of?(domain) #=> false
p Resolv::DNS::Name.create("z").subdomain_of?(domain) #=> false
p Resolv::DNS::Name.create("x.y.z.").subdomain_of?(domain) #=> false
p Resolv::DNS::Name.create("w.z").subdomain_of?(domain) #=> false
 
               # File resolv.rb, line 1051
def subdomain_of?(other)
  raise ArgumentError, "not a domain name: #{other.inspect}" unless Name === other
  return false if @absolute != other.absolute?
  other_len = other.length
  return false if @labels.length <= other_len
  return @labels[-other_len, other_len] == other.to_a
end
            
to_a() click to toggle source
 
               # File resolv.rb, line 1063
def to_a
  return @labels
end
            
to_s() click to toggle source

returns the domain name as a string.

The domain name doesn’t have a trailing dot even if the name object is absolute.

p Resolv::DNS::Name.create("x.y.z.").to_s #=> "x.y.z"
p Resolv::DNS::Name.create("x.y.z").to_s #=> "x.y.z"
 
               # File resolv.rb, line 1083
def to_s
  return @labels.join('.')
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus