lib/whois/record/parser/whois.srs.net.nz.rb in whois-2.5.1 vs lib/whois/record/parser/whois.srs.net.nz.rb in whois-2.6.0

- old
+ new

@@ -12,47 +12,51 @@ module Whois class Record class Parser - # - # = whois.srs.net.nz parser - # # Parser for the whois.srs.net.nz server. # - # NOTE: This parser is just a stub and provides only a few basic methods - # to check for domain availability and get domain status. - # Please consider to contribute implementing missing methods. - # See WhoisNicIt parser for an explanation of all available methods - # and examples. + # @note This parser is just a stub and provides only a few basic methods + # to check for domain availability and get domain status. + # Please consider to contribute implementing missing methods. # + # @see Whois::Record::Parser::Example + # The Example parser for the list of all available methods. + # class WhoisSrsNetNz < Base # @see http://dnc.org.nz/content/srs-whois-spec-1.0.html property_supported :status do if content_for_scanner =~ /query_status:\s(.+)\n/ - case s = $1.downcase - when /active/ then :registered - when /available/ then :available - when /invalid characters/ then :invalid - # The domain is no longer active but is in the period prior - # to being released for general registrations - when "210 pendingrelease" then :redemption - else - Whois.bug!(ParserError, "Unknown status `#{s}'.") + case (s = $1.downcase) + when "200 active" + :registered + # The domain is no longer active but is in the period prior + # to being released for general registrations + when "210 pendingrelease" + :redemption + when "220 available" + :available + when "404 request denied" + :error + when /invalid characters/ + :invalid + else + Whois.bug!(ParserError, "Unknown status `#{s}'.") end else Whois.bug!(ParserError, "Unable to parse status.") end end property_supported :available? do - (status == :available) + status == :available end property_supported :registered? do - (status == :registered) || (status == :redemption) + status == :registered || status == :redemption end property_supported :created_on do if content_for_scanner =~ /domain_dateregistered:\s(.+)\n/ @@ -73,10 +77,24 @@ end property_supported :nameservers do content_for_scanner.scan(/ns_name_[\d]+:\s(.+)\n/).flatten.map do |name| - Record::Nameserver.new(name) + Record::Nameserver.new(:name => name) + end + end + + + # Checks whether the response has been throttled. + # + # @return [Boolean] + # + # @example + # query_status: 440 Request Denied + # + def response_throttled? + cached_properties_fetch(:response_throttled?) do + !!(content_for_scanner =~ /^query_status: 440 Request Denied/) end end # NEWPROPERTY