Class Whois::Answer
In: lib/whois/answer.rb
lib/whois/answer/contact.rb
lib/whois/answer/parser.rb
lib/whois/answer/parser/ast.rb
lib/whois/answer/parser/base.rb
lib/whois/answer/parser/blank.rb
lib/whois/answer/parser/example.rb
lib/whois/answer/parser/jobswhois.verisign-grs.com.rb
lib/whois/answer/parser/scanners/verisign.rb
lib/whois/answer/parser/whois.adamsnames.tc.rb
lib/whois/answer/parser/whois.aeda.net.ae.rb
lib/whois/answer/parser/whois.aero.rb
lib/whois/answer/parser/whois.afilias-grs.info.rb
lib/whois/answer/parser/whois.afilias.info.rb
lib/whois/answer/parser/whois.ai.rb
lib/whois/answer/parser/whois.arnes.si.rb
lib/whois/answer/parser/whois.ausregistry.net.au.rb
lib/whois/answer/parser/whois.biz.rb
lib/whois/answer/parser/whois.cat.rb
lib/whois/answer/parser/whois.cira.ca.rb
lib/whois/answer/parser/whois.eu.rb
lib/whois/answer/parser/whois.cnnic.cn.rb
lib/whois/answer/parser/whois.cnnic.net.cn.rb
lib/whois/answer/parser/whois.crsnic.net.rb
lib/whois/answer/parser/whois.denic.de.rb
lib/whois/answer/parser/whois.dk-hostmaster.dk.rb
lib/whois/answer/parser/whois.dns.be.rb
lib/whois/answer/parser/whois.dns.lu.rb
lib/whois/answer/parser/whois.dns.pt.rb
lib/whois/answer/parser/whois.domain-registry.nl.rb
lib/whois/answer/parser/whois.domainregistry.ie.rb
lib/whois/answer/parser/whois.domreg.lt.rb
lib/whois/answer/parser/whois.dot.tk.rb
lib/whois/answer/parser/whois.dotmobiregistry.net.rb
lib/whois/answer/parser/whois.educause.edu.rb
lib/whois/answer/parser/whois.eu.org.rb
lib/whois/answer/parser/whois.hkdnr.net.hk.rb
lib/whois/answer/parser/whois.iana.org.rb
lib/whois/answer/parser/whois.in.ua.rb
lib/whois/answer/parser/whois.isnic.is.rb
lib/whois/answer/parser/whois.jprs.jp.rb
lib/whois/answer/parser/whois.meregistry.net.rb
lib/whois/answer/parser/whois.museum.rb
lib/whois/answer/parser/whois.net.ua.rb
lib/whois/answer/parser/whois.nic-se.se.rb
lib/whois/answer/parser/whois.nic.ac.rb
lib/whois/answer/parser/whois.nic.af.rb
lib/whois/answer/parser/whois.nic.ag.rb
lib/whois/answer/parser/whois.nic.am.rb
lib/whois/answer/parser/whois.nic.as.rb
lib/whois/answer/parser/whois.nic.asia.rb
lib/whois/answer/parser/whois.nic.at.rb
lib/whois/answer/parser/whois.nic.cc.rb
lib/whois/answer/parser/whois.nic.cd.rb
lib/whois/answer/parser/whois.nic.ch.rb
lib/whois/answer/parser/whois.nic.coop.rb
lib/whois/answer/parser/whois.nic.fr.rb
lib/whois/answer/parser/whois.nic.gl.rb
lib/whois/answer/parser/whois.nic.gov.rb
lib/whois/answer/parser/whois.nic.ht.rb
lib/whois/answer/parser/whois.nic.hu.rb
lib/whois/answer/parser/whois.nic.im.rb
lib/whois/answer/parser/whois.nic.io.rb
lib/whois/answer/parser/whois.nic.it.rb
lib/whois/answer/parser/whois.nic.lv.rb
lib/whois/answer/parser/whois.nic.ly.rb
lib/whois/answer/parser/whois.nic.mu.rb
lib/whois/answer/parser/whois.nic.mx.rb
lib/whois/answer/parser/whois.nic.name.rb
lib/whois/answer/parser/whois.nic.nu.rb
lib/whois/answer/parser/whois.nic.or.kr.rb
lib/whois/answer/parser/whois.nic.sn.rb
lib/whois/answer/parser/whois.nic.st.rb
lib/whois/answer/parser/whois.nic.tel.rb
lib/whois/answer/parser/whois.nic.tl.rb
lib/whois/answer/parser/whois.nic.tr.rb
lib/whois/answer/parser/whois.nic.travel.rb
lib/whois/answer/parser/whois.nic.tv.rb
lib/whois/answer/parser/whois.nic.uk.rb
lib/whois/answer/parser/whois.nic.us.rb
lib/whois/answer/parser/whois.nic.ve.rb
lib/whois/answer/parser/whois.norid.no.rb
lib/whois/answer/parser/whois.pandi.or.id.rb
lib/whois/answer/parser/whois.publicinterestregistry.net.rb
lib/whois/answer/parser/whois.register.bg.rb
lib/whois/answer/parser/whois.registro.br.rb
lib/whois/answer/parser/whois.registry.in.rb
lib/whois/answer/parser/whois.registrypro.pro.rb
lib/whois/answer/parser/whois.ripe.net.rb
lib/whois/answer/parser/whois.ripn.net.rb
lib/whois/answer/parser/whois.rotld.ro.rb
lib/whois/answer/parser/whois.samoanic.ws.rb
lib/whois/answer/parser/whois.srs.net.nz.rb
lib/whois/answer/parser/whois.za.net.rb
lib/whois/answer/parser/whois.za.org.rb
lib/whois/answer/part.rb
lib/whois/answer/registrar.rb
lib/whois/answer.rb
lib/whois/answer/contact.rb
lib/whois/answer/parser.rb
lib/whois/answer/parser/ast.rb
lib/whois/answer/parser/base.rb
lib/whois/answer/parser/blank.rb
lib/whois/answer/parser/example.rb
lib/whois/answer/parser/jobswhois.verisign-grs.com.rb
lib/whois/answer/parser/scanners/verisign.rb
lib/whois/answer/parser/whois.adamsnames.tc.rb
lib/whois/answer/parser/whois.aeda.net.ae.rb
lib/whois/answer/parser/whois.aero.rb
lib/whois/answer/parser/whois.afilias-grs.info.rb
lib/whois/answer/parser/whois.afilias.info.rb
lib/whois/answer/parser/whois.ai.rb
lib/whois/answer/parser/whois.arnes.si.rb
lib/whois/answer/parser/whois.ausregistry.net.au.rb
lib/whois/answer/parser/whois.biz.rb
lib/whois/answer/parser/whois.cat.rb
lib/whois/answer/parser/whois.cira.ca.rb
lib/whois/answer/parser/whois.cnnic.cn.rb
lib/whois/answer/parser/whois.cnnic.net.cn.rb
lib/whois/answer/parser/whois.crsnic.net.rb
lib/whois/answer/parser/whois.denic.de.rb
lib/whois/answer/parser/whois.dk-hostmaster.dk.rb
lib/whois/answer/parser/whois.dns.be.rb
lib/whois/answer/parser/whois.dns.lu.rb
lib/whois/answer/parser/whois.dns.pt.rb
lib/whois/answer/parser/whois.domain-registry.nl.rb
lib/whois/answer/parser/whois.domainregistry.ie.rb
lib/whois/answer/parser/whois.domreg.lt.rb
lib/whois/answer/parser/whois.dot.tk.rb
lib/whois/answer/parser/whois.dotmobiregistry.net.rb
lib/whois/answer/parser/whois.educause.edu.rb
lib/whois/answer/parser/whois.eu.org.rb
lib/whois/answer/parser/whois.eu.rb
lib/whois/answer/parser/whois.hkdnr.net.hk.rb
lib/whois/answer/parser/whois.iana.org.rb
lib/whois/answer/parser/whois.in.ua.rb
lib/whois/answer/parser/whois.isnic.is.rb
lib/whois/answer/parser/whois.jprs.jp.rb
lib/whois/answer/parser/whois.meregistry.net.rb
lib/whois/answer/parser/whois.museum.rb
lib/whois/answer/parser/whois.net.ua.rb
lib/whois/answer/parser/whois.nic-se.se.rb
lib/whois/answer/parser/whois.nic.ac.rb
lib/whois/answer/parser/whois.nic.af.rb
lib/whois/answer/parser/whois.nic.ag.rb
lib/whois/answer/parser/whois.nic.am.rb
lib/whois/answer/parser/whois.nic.as.rb
lib/whois/answer/parser/whois.nic.asia.rb
lib/whois/answer/parser/whois.nic.at.rb
lib/whois/answer/parser/whois.nic.cc.rb
lib/whois/answer/parser/whois.nic.cd.rb
lib/whois/answer/parser/whois.nic.ch.rb
lib/whois/answer/parser/whois.nic.coop.rb
lib/whois/answer/parser/whois.nic.fr.rb
lib/whois/answer/parser/whois.nic.gl.rb
lib/whois/answer/parser/whois.nic.gov.rb
lib/whois/answer/parser/whois.nic.ht.rb
lib/whois/answer/parser/whois.nic.hu.rb
lib/whois/answer/parser/whois.nic.im.rb
lib/whois/answer/parser/whois.nic.io.rb
lib/whois/answer/parser/whois.nic.it.rb
lib/whois/answer/parser/whois.nic.lv.rb
lib/whois/answer/parser/whois.nic.ly.rb
lib/whois/answer/parser/whois.nic.mu.rb
lib/whois/answer/parser/whois.nic.mx.rb
lib/whois/answer/parser/whois.nic.name.rb
lib/whois/answer/parser/whois.nic.nu.rb
lib/whois/answer/parser/whois.nic.or.kr.rb
lib/whois/answer/parser/whois.nic.sn.rb
lib/whois/answer/parser/whois.nic.st.rb
lib/whois/answer/parser/whois.nic.tel.rb
lib/whois/answer/parser/whois.nic.tl.rb
lib/whois/answer/parser/whois.nic.tr.rb
lib/whois/answer/parser/whois.nic.travel.rb
lib/whois/answer/parser/whois.nic.tv.rb
lib/whois/answer/parser/whois.nic.uk.rb
lib/whois/answer/parser/whois.nic.us.rb
lib/whois/answer/parser/whois.nic.ve.rb
lib/whois/answer/parser/whois.norid.no.rb
lib/whois/answer/parser/whois.pandi.or.id.rb
lib/whois/answer/parser/whois.publicinterestregistry.net.rb
lib/whois/answer/parser/whois.register.bg.rb
lib/whois/answer/parser/whois.registro.br.rb
lib/whois/answer/parser/whois.registry.in.rb
lib/whois/answer/parser/whois.registrypro.pro.rb
lib/whois/answer/parser/whois.ripe.net.rb
lib/whois/answer/parser/whois.ripn.net.rb
lib/whois/answer/parser/whois.rotld.ro.rb
lib/whois/answer/parser/whois.samoanic.ws.rb
lib/whois/answer/parser/whois.srs.net.nz.rb
lib/whois/answer/parser/whois.za.net.rb
lib/whois/answer/parser/whois.za.org.rb
lib/whois/answer/part.rb
lib/whois/answer/registrar.rb
Parent: Object

Methods

==   ==   changed?   changed?   contacts   contacts   content   content   eql?   eql?   inspect   inspect   match   match   match?   match?   method_missing   method_missing   new   new   parser   parser   properties   properties   property_supported?   property_supported?   to_s   to_s   unchanged?   unchanged?  

Classes and Modules

Class Whois::Answer::Contact
Class Whois::Answer::Parser
Class Whois::Answer::Part
Class Whois::Answer::Registrar

Attributes

parts  [R] 
parts  [R] 
server  [R] 
server  [R] 

Public Class methods

[Source]

# File lib/whois/answer.rb, line 28
    def initialize(server, parts)
      @parts  = parts
      @server = server
    end

[Source]

# File lib/whois/answer.rb, line 28
    def initialize(server, parts)
      @parts  = parts
      @server = server
    end

Public Instance methods

Returns true if the object is the same object, or is a string and has the same content.

[Source]

# File lib/whois/answer.rb, line 56
    def ==(other)
      (other.equal?(self)) ||
      # This option should be deprecated
      (other.is_a?(String) && other == self.to_s) ||
      (other.is_a?(Answer) && other.to_s == self.to_s)
    end

Returns true if the object is the same object, or is a string and has the same content.

[Source]

# File lib/whois/answer.rb, line 56
    def ==(other)
      (other.equal?(self)) ||
      # This option should be deprecated
      (other.is_a?(String) && other == self.to_s) ||
      (other.is_a?(Answer) && other.to_s == self.to_s)
    end

Returns whether this answer changed compared to other.

Comparing the Answer contents is not always as trivial as it seems. Whois servers sometimes inject dynamic method into the whois answer such as the timestamp the request was generated. This causes two answers to be different even if they actually should be considered equal because the registry data didn‘t change.

This method should provide a bulletproof way to detect whether this answer changed if compared with other.

[Source]

# File lib/whois/answer.rb, line 96
    def changed?(other)
      !unchanged?(other)
    end

Returns whether this answer changed compared to other.

Comparing the Answer contents is not always as trivial as it seems. Whois servers sometimes inject dynamic method into the whois answer such as the timestamp the request was generated. This causes two answers to be different even if they actually should be considered equal because the registry data didn‘t change.

This method should provide a bulletproof way to detect whether this answer changed if compared with other.

[Source]

# File lib/whois/answer.rb, line 96
    def changed?(other)
      !unchanged?(other)
    end

[Source]

# File lib/whois/answer.rb, line 106
    def contacts
      parser.contacts
    end

[Source]

# File lib/whois/answer.rb, line 106
    def contacts
      parser.contacts
    end

Returns the content of this answer as a string. This method joins all answer parts into a single string and separates each response with a newline character.

  answer = Whois::Answer.new([Whois::Answer::Part.new("First answer.")])
  answer.content
  # => "First answer."

  answer = Whois::Answer.new([Whois::Answer::Part.new("First answer."), Whois::Answer::Part.new("Second answer.")])
  answer.content
  # => "First answer.\nSecond answer."

[Source]

# File lib/whois/answer.rb, line 81
    def content
      @content ||= parts.map(&:response).join("\n")
    end

Returns the content of this answer as a string. This method joins all answer parts into a single string and separates each response with a newline character.

  answer = Whois::Answer.new([Whois::Answer::Part.new("First answer.")])
  answer.content
  # => "First answer."

  answer = Whois::Answer.new([Whois::Answer::Part.new("First answer."), Whois::Answer::Part.new("Second answer.")])
  answer.content
  # => "First answer.\nSecond answer."

[Source]

# File lib/whois/answer.rb, line 81
    def content
      @content ||= parts.map(&:response).join("\n")
    end

Delegates to ==.

[Source]

# File lib/whois/answer.rb, line 64
    def eql?(other)
      self == other
    end

Delegates to ==.

[Source]

# File lib/whois/answer.rb, line 64
    def eql?(other)
      self == other
    end

[Source]

# File lib/whois/answer.rb, line 38
    def inspect
      content.inspect
    end

[Source]

# File lib/whois/answer.rb, line 38
    def inspect
      content.inspect
    end

Invokes match on answer @content and returns the MatchData or nil.

[Source]

# File lib/whois/answer.rb, line 44
    def match(pattern)
      content.match(pattern)
    end

Invokes match on answer @content and returns the MatchData or nil.

[Source]

# File lib/whois/answer.rb, line 44
    def match(pattern)
      content.match(pattern)
    end

Invokes match and returns true if pattern matches @content, false otherwise.

[Source]

# File lib/whois/answer.rb, line 50
    def match?(pattern)
      !content.match(pattern).nil?
    end

Invokes match and returns true if pattern matches @content, false otherwise.

[Source]

# File lib/whois/answer.rb, line 50
    def match?(pattern)
      !content.match(pattern).nil?
    end

Lazy-loads and returns a Whois::Answer::Parser proxy for current answer.

[Source]

# File lib/whois/answer.rb, line 112
    def parser
      @parser ||= Parser.new(self)
    end

Lazy-loads and returns a Whois::Answer::Parser proxy for current answer.

[Source]

# File lib/whois/answer.rb, line 112
    def parser
      @parser ||= Parser.new(self)
    end

Returns a Hash containing all supported properties for this Answer along with corresponding values.

[Source]

# File lib/whois/answer.rb, line 119
    def properties
      hash = {}
      Parser::PROPERTIES.each { |property| hash[property] = send(property) }
      hash
    end

Returns a Hash containing all supported properties for this Answer along with corresponding values.

[Source]

# File lib/whois/answer.rb, line 119
    def properties
      hash = {}
      Parser::PROPERTIES.each { |property| hash[property] = send(property) }
      hash
    end

Returns true if the property passed as symbol is supported by any available parser for this answer. See also Whois::Answer::Parser.supported?.

[Source]

# File lib/whois/answer.rb, line 128
    def property_supported?(property)
      parser.property_supported?(property)
    end

Returns true if the property passed as symbol is supported by any available parser for this answer. See also Whois::Answer::Parser.supported?.

[Source]

# File lib/whois/answer.rb, line 128
    def property_supported?(property)
      parser.property_supported?(property)
    end

[Source]

# File lib/whois/answer.rb, line 34
    def to_s
      content.to_s
    end

[Source]

# File lib/whois/answer.rb, line 34
    def to_s
      content.to_s
    end

The opposite of changed?.

[Source]

# File lib/whois/answer.rb, line 101
    def unchanged?(other)
      self == other ||
      parser.unchanged?(other.parser)
    end

The opposite of changed?.

[Source]

# File lib/whois/answer.rb, line 101
    def unchanged?(other)
      self == other ||
      parser.unchanged?(other.parser)
    end

Protected Instance methods

Delegates all method calls to the internal parser.

[Source]

# File lib/whois/answer.rb, line 136
      def method_missing(method, *args, &block)
        if Parser::PROPERTIES.include?(method)
          self.class.class_eval "def \#{method}(*args, &block)\nif property_supported?(:\#{method})\nparser.\#{method}(*args, &block)\nelse\nnil\nend\nend\n", __FILE__, __LINE__ + 1
          send(method, *args, &block)

        elsif Parser::METHODS.include?(method)
          self.class.class_eval "def \#{method}(*args, &block)\nif parser.respond_to?(:\#{method})\nparser.\#{method}(*args, &block)\nend\nend\n", __FILE__, __LINE__ + 1
          send(method, *args, &block)

        elsif method.to_s =~ /([a-z_]+)\?/ and (Parser::PROPERTIES + Parser::METHODS).include?($1.to_sym)
          self.class.class_eval "def \#{$1}?\n!\#{$1}.nil?\nend\n", __FILE__, __LINE__ + 1
          send($1)

        else
          super
        end
      end

Delegates all method calls to the internal parser.

[Source]

# File lib/whois/answer.rb, line 136
      def method_missing(method, *args, &block)
        if Parser::PROPERTIES.include?(method)
          self.class.class_eval "def \#{method}(*args, &block)\nif property_supported?(:\#{method})\nparser.\#{method}(*args, &block)\nelse\nnil\nend\nend\n", __FILE__, __LINE__ + 1
          send(method, *args, &block)

        elsif Parser::METHODS.include?(method)
          self.class.class_eval "def \#{method}(*args, &block)\nif parser.respond_to?(:\#{method})\nparser.\#{method}(*args, &block)\nend\nend\n", __FILE__, __LINE__ + 1
          send(method, *args, &block)

        elsif method.to_s =~ /([a-z_]+)\?/ and (Parser::PROPERTIES + Parser::METHODS).include?($1.to_sym)
          self.class.class_eval "def \#{$1}?\n!\#{$1}.nil?\nend\n", __FILE__, __LINE__ + 1
          send($1)

        else
          super
        end
      end

[Validate]