whois 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.rdoc +8 -0
- data/LICENSE +2 -2
- data/README.rdoc +1 -1
- data/Rakefile +6 -7
- data/lib/whois/record/parser/whois.nic.it.rb +3 -0
- data/lib/whois/record/parser/whois.ripn.net.rb +2 -3
- data/lib/whois/record/parser.rb +1 -1
- data/lib/whois/version.rb +1 -1
- data/spec/fixtures/responses/whois.nic.it/property_status_unassignable.expected +8 -0
- data/spec/fixtures/responses/whois.nic.it/property_status_unassignable.txt +2 -0
- data/spec/fixtures/responses/whois.ripn.net/ru/status_registered.expected +8 -1
- data/spec/support/helpers/spec_helper.rb +16 -11
- data/spec/whois/record/parser/responses/whois.nic.it/property_status_unassignable_spec.rb +39 -0
- data/spec/whois/record/parser/responses/whois.ripn.net/ru/status_registered_spec.rb +8 -1
- data/whois.gemspec +5 -6
- metadata +8 -6
    
        data/CHANGELOG.rdoc
    CHANGED
    
    | @@ -1,5 +1,13 @@ | |
| 1 1 | 
             
            = Changelog
         | 
| 2 2 |  | 
| 3 | 
            +
             | 
| 4 | 
            +
            == Release 2.0.2
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            * CHANGED: whois.ripn.net now returns an array of contacts, one for each email (#89)
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            * FIXED: whois.nic.it parser must support UNASSIGNABLE status.
         | 
| 9 | 
            +
             | 
| 10 | 
            +
             | 
| 3 11 | 
             
            == Release 2.0.1
         | 
| 4 12 |  | 
| 5 13 | 
             
            * FIXED: Removed invalid test files.
         | 
    
        data/LICENSE
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            The MIT License
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 3 | 
            +
            Copyright (c) 2009-2011 Simone Carletti <weppos@weppos.net>
         | 
| 4 4 |  | 
| 5 5 | 
             
            Permission is hereby granted, free of charge, to any person obtaining
         | 
| 6 6 | 
             
            a copy of this software and associated documentation files (the
         | 
    
        data/README.rdoc
    CHANGED
    
    | @@ -124,7 +124,7 @@ Any WHOIS query returns a <tt>Whois::Record</tt>. This object looks like a Strin | |
| 124 124 | 
             
              r.created_on
         | 
| 125 125 | 
             
              # => Fri Dec 10 00:00:00 +0100 1999
         | 
| 126 126 |  | 
| 127 | 
            -
              t = r. | 
| 127 | 
            +
              t = r.technical_contact
         | 
| 128 128 | 
             
              # => #<Whois::Record::Contact>
         | 
| 129 129 | 
             
              t.id
         | 
| 130 130 | 
             
              # => "TS7016-ITNIC"
         | 
    
        data/Rakefile
    CHANGED
    
    | @@ -34,8 +34,8 @@ spec = Gem::Specification.new do |s| | |
| 34 34 |  | 
| 35 35 | 
             
              s.required_ruby_version = ">= 1.8.7"
         | 
| 36 36 |  | 
| 37 | 
            -
              s. | 
| 38 | 
            -
              s.email             = "weppos@weppos.net"
         | 
| 37 | 
            +
              s.authors           = ["Simone Carletti"]
         | 
| 38 | 
            +
              s.email             = ["weppos@weppos.net"]
         | 
| 39 39 | 
             
              s.homepage          = "http://www.ruby-whois.org"
         | 
| 40 40 | 
             
              s.rubyforge_project = "whois"
         | 
| 41 41 |  | 
| @@ -101,13 +101,12 @@ namespace :multitest do | |
| 101 101 | 
             
            end
         | 
| 102 102 |  | 
| 103 103 |  | 
| 104 | 
            -
             | 
| 105 | 
            -
             | 
| 106 | 
            -
              rm "#{spec.name}.gemspec" if File.file?("#{spec.name}.gemspec")
         | 
| 104 | 
            +
            task :clean_gemspec do
         | 
| 105 | 
            +
              rm "#{spec.name}.gemspec" rescue nil
         | 
| 107 106 | 
             
            end
         | 
| 108 107 |  | 
| 109 | 
            -
             | 
| 110 | 
            -
            task :clobber => [: | 
| 108 | 
            +
            task :clean   => [:clean_gemspec]
         | 
| 109 | 
            +
            task :clobber => [:clobber_package]
         | 
| 111 110 |  | 
| 112 111 | 
             
            desc "Package the library and generates the gemspec"
         | 
| 113 112 | 
             
            task :package => [:gemspec]
         | 
| @@ -49,6 +49,8 @@ module Whois | |
| 49 49 | 
             
                        :registered
         | 
| 50 50 | 
             
                      when "pendingdelete / redemptionperiod", "grace-period"
         | 
| 51 51 | 
             
                        :registered
         | 
| 52 | 
            +
                      when "unassignable"
         | 
| 53 | 
            +
                        :reserved
         | 
| 52 54 | 
             
                      when "available"
         | 
| 53 55 | 
             
                        :available
         | 
| 54 56 | 
             
                      else
         | 
| @@ -61,6 +63,7 @@ module Whois | |
| 61 63 | 
             
                    end
         | 
| 62 64 |  | 
| 63 65 | 
             
                    property_supported :registered? do
         | 
| 66 | 
            +
                      node("Status") != "UNASSIGNABLE" &&
         | 
| 64 67 | 
             
                      !available?
         | 
| 65 68 | 
             
                    end
         | 
| 66 69 |  | 
| @@ -67,15 +67,14 @@ module Whois | |
| 67 67 |  | 
| 68 68 |  | 
| 69 69 | 
             
                    property_supported :admin_contacts do
         | 
| 70 | 
            -
                       | 
| 70 | 
            +
                      content_for_scanner.scan(/e-mail:\s+(.+)\n/).flatten.map do |email|
         | 
| 71 71 | 
             
                        Record::Contact.new(
         | 
| 72 72 | 
             
                          :type         => Record::Contact::TYPE_ADMIN,
         | 
| 73 73 | 
             
                          :name         => content_for_scanner[/person:\s+(.+)\n/, 1],
         | 
| 74 74 | 
             
                          :organization => content_for_scanner[/org:\s+(.+)\n/, 1],
         | 
| 75 75 | 
             
                          :phone        => content_for_scanner[/phone:\s+(.+)\n/, 1],
         | 
| 76 76 | 
             
                          :fax          => content_for_scanner[/fax-no:\s+(.+)\n/, 1],
         | 
| 77 | 
            -
                           | 
| 78 | 
            -
                          :email        => content_for_scanner[/e-mail:\s+(.+)\n/, 1]
         | 
| 77 | 
            +
                          :email        => email
         | 
| 79 78 | 
             
                        )
         | 
| 80 79 | 
             
                      end
         | 
| 81 80 | 
             
                    end
         | 
    
        data/lib/whois/record/parser.rb
    CHANGED
    
    
    
        data/lib/whois/version.rb
    CHANGED
    
    
| @@ -31,7 +31,7 @@ | |
| 31 31 |  | 
| 32 32 | 
             
            #admin_contacts
         | 
| 33 33 | 
             
              should: %s be_a(Array)
         | 
| 34 | 
            -
              should: %s have( | 
| 34 | 
            +
              should: %s have(2).items
         | 
| 35 35 | 
             
              should: %s[0] be_a(_contact)
         | 
| 36 36 | 
             
              should: %s[0].type         == Whois::Record::Contact::TYPE_ADMIN
         | 
| 37 37 | 
             
              should: %s[0].id           == nil
         | 
| @@ -40,6 +40,13 @@ | |
| 40 40 | 
             
              should: %s[0].phone        == "+1 650 330 0100"
         | 
| 41 41 | 
             
              should: %s[0].fax          == "+1 650 618 8571"
         | 
| 42 42 | 
             
              should: %s[0].email        == "dns-admin@google.com"
         | 
| 43 | 
            +
              should: %s[1].type         == Whois::Record::Contact::TYPE_ADMIN
         | 
| 44 | 
            +
              should: %s[1].id           == nil
         | 
| 45 | 
            +
              should: %s[1].name         == nil
         | 
| 46 | 
            +
              should: %s[1].organization == "Google Inc"
         | 
| 47 | 
            +
              should: %s[1].phone        == "+1 650 330 0100"
         | 
| 48 | 
            +
              should: %s[1].fax          == "+1 650 618 8571"
         | 
| 49 | 
            +
              should: %s[1].email        == "ccops@markmonitor.com"
         | 
| 43 50 |  | 
| 44 51 | 
             
            #technical_contacts
         | 
| 45 52 | 
             
              should: %s raise_error(Whois::PropertyNotSupported)
         | 
| @@ -1,3 +1,18 @@ | |
| 1 | 
            +
            module Helper
         | 
| 2 | 
            +
             | 
| 3 | 
            +
              # Gets the currently described class.
         | 
| 4 | 
            +
              # Conversely to +subject+, it returns the class
         | 
| 5 | 
            +
              # instead of an instance.
         | 
| 6 | 
            +
              def klass
         | 
| 7 | 
            +
                described_class
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              def fixture(*names)
         | 
| 11 | 
            +
                File.join(SPEC_ROOT, "fixtures", *names)
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            end
         | 
| 15 | 
            +
             | 
| 1 16 | 
             
            module SpecHelper
         | 
| 2 17 |  | 
| 3 18 | 
             
              private
         | 
| @@ -31,17 +46,6 @@ module SpecHelper | |
| 31 46 | 
             
                  Whois::Record::Parser::Base.send :class_variable_set, :@@property_registry, @_property_registry
         | 
| 32 47 | 
             
                end
         | 
| 33 48 |  | 
| 34 | 
            -
                # Gets the currently described class.
         | 
| 35 | 
            -
                # Conversely to +subject+, it returns the class
         | 
| 36 | 
            -
                # instead of an instance.
         | 
| 37 | 
            -
                def klass
         | 
| 38 | 
            -
                  described_class
         | 
| 39 | 
            -
                end
         | 
| 40 | 
            -
             | 
| 41 | 
            -
                def fixture(*names)
         | 
| 42 | 
            -
                  File.join(SPEC_ROOT, "fixtures", *names)
         | 
| 43 | 
            -
                end
         | 
| 44 | 
            -
             | 
| 45 49 | 
             
                def nameserver(*params)
         | 
| 46 50 | 
             
                  Whois::Record::Nameserver.new(*params)
         | 
| 47 51 | 
             
                end
         | 
| @@ -49,5 +53,6 @@ module SpecHelper | |
| 49 53 | 
             
            end
         | 
| 50 54 |  | 
| 51 55 | 
             
            RSpec.configure do |config|
         | 
| 56 | 
            +
              config.include Helper
         | 
| 52 57 | 
             
              config.include SpecHelper
         | 
| 53 58 | 
             
            end
         | 
| @@ -0,0 +1,39 @@ | |
| 1 | 
            +
            # encoding: utf-8
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # This file is autogenerated. Do not edit it manually.
         | 
| 4 | 
            +
            # If you want change the content of this file, edit
         | 
| 5 | 
            +
            #
         | 
| 6 | 
            +
            #   /spec/fixtures/responses/whois.nic.it/property_status_unassignable.expected
         | 
| 7 | 
            +
            #
         | 
| 8 | 
            +
            # and regenerate the tests with the following rake task
         | 
| 9 | 
            +
            #
         | 
| 10 | 
            +
            #   $ rake genspec:parsers
         | 
| 11 | 
            +
            #
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            require 'spec_helper'
         | 
| 14 | 
            +
            require 'whois/record/parser/whois.nic.it.rb'
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            describe Whois::Record::Parser::WhoisNicIt, "property_status_unassignable.expected" do
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              before(:each) do
         | 
| 19 | 
            +
                file = fixture("responses", "whois.nic.it/property_status_unassignable.txt")
         | 
| 20 | 
            +
                part = Whois::Record::Part.new(:body => File.read(file))
         | 
| 21 | 
            +
                @parser = klass.new(part)
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
              context "#status" do
         | 
| 25 | 
            +
                it do
         | 
| 26 | 
            +
                  @parser.status.should == :reserved
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
              end
         | 
| 29 | 
            +
              context "#available?" do
         | 
| 30 | 
            +
                it do
         | 
| 31 | 
            +
                  @parser.available?.should == false
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
              end
         | 
| 34 | 
            +
              context "#registered?" do
         | 
| 35 | 
            +
                it do
         | 
| 36 | 
            +
                  @parser.registered?.should == false
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
            end
         | 
| @@ -69,7 +69,7 @@ describe Whois::Record::Parser::WhoisRipnNet, "status_registered.expected" do | |
| 69 69 | 
             
              context "#admin_contacts" do
         | 
| 70 70 | 
             
                it do
         | 
| 71 71 | 
             
                  @parser.admin_contacts.should be_a(Array)
         | 
| 72 | 
            -
                  @parser.admin_contacts.should have( | 
| 72 | 
            +
                  @parser.admin_contacts.should have(2).items
         | 
| 73 73 | 
             
                  @parser.admin_contacts[0].should be_a(_contact)
         | 
| 74 74 | 
             
                  @parser.admin_contacts[0].type.should         == Whois::Record::Contact::TYPE_ADMIN
         | 
| 75 75 | 
             
                  @parser.admin_contacts[0].id.should           == nil
         | 
| @@ -78,6 +78,13 @@ describe Whois::Record::Parser::WhoisRipnNet, "status_registered.expected" do | |
| 78 78 | 
             
                  @parser.admin_contacts[0].phone.should        == "+1 650 330 0100"
         | 
| 79 79 | 
             
                  @parser.admin_contacts[0].fax.should          == "+1 650 618 8571"
         | 
| 80 80 | 
             
                  @parser.admin_contacts[0].email.should        == "dns-admin@google.com"
         | 
| 81 | 
            +
                  @parser.admin_contacts[1].type.should         == Whois::Record::Contact::TYPE_ADMIN
         | 
| 82 | 
            +
                  @parser.admin_contacts[1].id.should           == nil
         | 
| 83 | 
            +
                  @parser.admin_contacts[1].name.should         == nil
         | 
| 84 | 
            +
                  @parser.admin_contacts[1].organization.should == "Google Inc"
         | 
| 85 | 
            +
                  @parser.admin_contacts[1].phone.should        == "+1 650 330 0100"
         | 
| 86 | 
            +
                  @parser.admin_contacts[1].fax.should          == "+1 650 618 8571"
         | 
| 87 | 
            +
                  @parser.admin_contacts[1].email.should        == "ccops@markmonitor.com"
         | 
| 81 88 | 
             
                end
         | 
| 82 89 | 
             
              end
         | 
| 83 90 | 
             
              context "#technical_contacts" do
         |