= Changelog == Release 1.0.3 * SERVER: Added web address for the .eg TLD [axic] * SERVER: Updated web address for the .gt TLD [axic] * SERVER: Updated web address for the .co TLD (closes #13) * FIXED: The whois.nic.it parser extracts the wrong Contact country_code property [axic] * FIXED: With some .de domains, whois.denic.de parser returns invalid values for nameservers (closes #14) * FIXED: whois.crsnic.net crashes with reserved IANA domains (ex y.com) * ADDED: Support for 'Contact#zip' property for the whois.nic.it parser [axic] * ADDED: Support for 'nameservers' property for the whois.adamsnames.tc parser. * ADDED: Compatibility with semver.org == Release 1.0.2 * CHANGED: Changed Parsers to use a normalized content version called Whois::Parser::Base#content_for_scanner (Dho! I forgot to save some files on TextMate) == Release 1.0.1 * CHANGED: Changed Parsers to use a normalized content version called Whois::Parser::Base#content_for_scanner == Release 1.0.0 * SERVER: Changed .biz TLD server to whois.biz (see http://www.iana.org/domains/root/db/biz.html) * SERVER: Changed .br TLD server to whois.registro.br (see http://www.iana.org/domains/root/db/rb.html) * SERVER: Sync definitions with Debian whois 4.7.37. * SERVER: Added new IPv4 allocations (whois 4.7.37). * SERVER: Updated the .bd, .bi, .cm, .ge, .gf, .ki, .kn, .ls, .mq, .np and .tr TLD definitions (whois 4.7.37). * SERVER: Sync definitions with Debian whois 5.0.0. * SERVER: Updated the .id, .is, .mm, .my, .pw, .sb, .sr, .tj, .tp, .wf, .yt TLD definitions (whois 5.0.0). * SERVER: .dk TLD server requires --show-handles option (closes REDMINE-426) * FIXED: Whois hosts containing a - are not correctly converted into a Ruby class, ex. whois.domain-registry.nl (closes REDMINE-389) * FIXED: In case of exception, the CLI doesn't exit nicely (closes REDMINE-333) * FIXED: Some tests are not compatible with Ruby 1.9 * FIXED: Flagged created_on and expires_on properties as not supported for .de TLD. * ADDED: Simple .at TLD parser. * ADDED: Simple .be TLD parser. * ADDED: Simple .bg TLD parser. * ADDED: Simple .ca TLD parser. * ADDED: Simple .ch TLD parser. * ADDED: Simple .eu TLD parser. * ADDED: Simple .gl TLD parser. * ADDED: Simple .im TLD parser. * ADDED: Simple .is TLD parser. * ADDED: Simple .ly TLD parser. * ADDED: Simple .me TLD parser. * ADDED: Simple .mu, .ki TLD parser (whois.nic.mu). * ADDED: Simple .nl TLD parser. * ADDED: Simple .no TLD parser. * ADDED: Simple .fo, .gm, .mc, .sm, .va TLD parsers (whois.ripe.net). * ADDED: Simple .tl TLD parser. * ADDED: Simple .tel TLD parser. * ADDED: Simple .us TLD parser. * ADDED: Simple .biz TLD parser. * ADDED: Simple .mobi TLD parser. * ADDED: Simple .museum TLD parser. * ADDED: Simple .io TLD parser. * ADDED: Simple .ro TLD parser. * ADDED: Simple .br TLD parser. * ADDED: Simple .travel TLD parser. * ADDED: Simple .wf, .yt TLD parser (whois.nic.fr). * ADDED: Simple .dk TLD parser [thanks to Mikkel Kristensen]. * ADDED: Simple .uk TLD parser (whois.nic.uk). * ADDED: Simple .ws TLD parser (whois.samoanic.ws). * ADDED: Simple .gd, vg, tc TLD parser (whois.adamsnames.tc). * ADDED: Simple .su, .ru TLD parser (whois.ripn.net). * ADDED: Simple .cat TLD parser (whois.cat). * ADDED: Simple .cd TLD parser (whois.nic.cd). * ADDED: Simple .coop TLD parser (whois.nic.coop). * ADDED: Simple .pro TLD parser (whois.registrypro.pro). * ADDED: Simple .ae TLD parser (whois.aeda.net.ae). * ADDED: .cc, .jobs TLD parsers (verisign). * ADDED: .ac TLD parser (whois.nic.ac). * ADDED: Added ability to flag a property as :defined, :implemented and :supported. Parsers now can mark a property as supported or not supported using 'property_supported' and 'property_not_supported' methods in order to distinguish between properties not supported by the answer and methods that still need to be implemented because the parser is incomplete. * ADDED: Whois#Answer.property? returns whether property has a value. a = Whois.query "google.it" a.created_on? # => true a.domain_id? # => false * ADDED: Whois::WebInterfaceError now exposes #url attribute. * CHANGED: All not supported properties now raise a PropertyNotSupported error instead of returning nil. * CHANGED: Depending on where you ask for a property, the library now returns the most expected value according to property status. If you try to access a property from the answer object, Whois::Answer always returns the value if the property is defined, nil otherwise no matter if the property is not supported or undefined. a = Whois.query "google.ac" a.nameservers # => nil even if not supported If you want a more granular level of response, you can access the underling parser implementation. a = Whois.query "google.ac" a.parser.nameservers # => PropertyNotSupported * CHANGED: Increased DEFAULT_TIMEOUT to 10 seconds * REMOVED: Removed Deprecated #supported? method * REMOVED: Removed Deprecated compatibility layer to Whois 0.4.2 == Release 0.9.0 * SERVER: .ec TLD has a whois server (closes REDMINE-322) * SERVER: .gl TLD has a whois server (closes REDMINE-323) * SERVER: .md TLD has a whois server (closes REDMINE-325) * SERVER: Changed .edu TLD server to whois.educause.edu (see http://www.iana.org/domains/root/db/edu.html) * FIXED: TLD definitions for whois.afilias-grs.info missing proper adapter (closes REDMINE-342) * FIXED: ./bin/ruby-whois uses the Gem instead of current version (closes REDMINE-344) * FIXED: Whois::Client doesn't cast qstring to_s (closes REDMINE-339) * FIXED: Whois::Parser doesn't detect preloaded parsers. Improved performances skipping unnecessary 'require'. (closes REDMINE-340) * ADDED: Simple .fr TLD parser. * ADDED: Simple .name TLD parser. * ADDED: Simple .ie TLD parser. * ADDED: Simple .edu TLD parser. * ADDED: Simple .info TLD parser. * ADDED: Simple .gov TLD parser. * ADDED: Simple .za.net TLD parser. * ADDED: Simple .eu.org TLD parser. * ADDED: Simple .za.org TLD parser. * ADDED: Simple .int/.arpa TLD parser. * ADDED: Simple .aero TLD parser. * ADDED: Simple .asia TLD parser. * ADDED: Simple .bz, .gi, .hn, .lc, .mn, .sc and .vc TLD parser. * ADDED: .tv TLD parser. * ADDED: .hu TLD parser. * ADDED: Ability to pass timeout option to 'ruby-whois' (closes REDMINE-334) * ADDED: Whois::Answer#properties returns an Hash of :key => value * CHANGED: Removed Whois::BUILD and Whois::STATUS constants. Added Whois::Version::ALPHA constant to be used when I need to package prereleases (see RubyGem --prerelease flag). * CHANGED: Extracted Whois::Answer::Parser::Ast module from existing parsers. * CHANGED: Normalized WhoisDenicDe parser. * CHANGED: Renamed #supported to #property_supported? == Release 0.8.1 * FIXED: Updated the whois.denic.de parser to the new format. Thanks to David Krentzlin (closes REDMINE-314) * FIXED: In case of thin server the client should select the closest whois server match (closes REDMINE-264) * ADDED: ability to check whether a property is supported via answer.supported? or parser.supported? == Release 0.8.0 * FIXED: Server definition with :format doesn't use the Formatted adapter (closes REDMINE-305) * ADDED: whois.denic.de (.de TLD) parser [Aaron Mueller] * ADDED: introduced support for multipart answers and Parser proxy class. This is useful in case of thin servers such as .com or .net because the parser needs to know all different responses in order to load all single scanners. * ADDED: whois.crsnic.net (.com, .net, ... TLDs) parser. * CHANGED: extracted all scanners into separated classes in order to make easier extract shared features. * CHANGED: renamed Whois::Response to Whois::Answer. This change is required to avoid confusion between query-answer and server request-response. A Whois::Answer is composed by one or more parts, corresponding to single server answers. * REMOVED: Whois::Answer#i_am_feeling_lucky (formerly Whois::Answer#i_am_feeling_lucky) become obsolete since the introduction of Answer parsers. == Release 0.6.0 * ADDED: new more convenient method to query a whois server in addition to the existing Whois::whois method. Whois::query("domain.com") # same as Whois::whois but added to normalize application interfaces. Whois::available?("domain.com") # returns true if the domain is available. Whois::registered?("domain.com") # returns true if the domain is registered. * ADDED: Experimental support for whois response parsing. This release is shipped with two parsers for the .it and .net TLD. r = Whois::query("google.it") r.available? # => false r.created_on # => Time.parse("1999-12-10 00:00:00") r.Nameservers # => ["ns1.google.com", "ns2.google.com", ...] * CHANGED: A whois query now returns a custom Whois::Response object instead of a simple string. The previous interface is still supported, so you can continue to compare the response with Strings but this behavior will be deprecated in a future release. r = Whois::query("domain.com") # supported but deprecated in a future version r == "NOT FOUND" # explicitly cast the object to string instead r.to_s == "NOT FOUND" # or use one of the other Whois::Response methods. Note. This is an experimental version (EAP) and it should not be considered production-ready. API might change at any time without previous notice. == Release 0.5.3 * FIXED: self.valid_ipv6?(addr) references valid_v4? instead of valid_ipv4? (closes REDMINE-300) * FIXED: In some rare circumstances the server guessing fails to return the right server but returns an other server instead (closes REDMINE-260). == Release 0.5.2 * SERVER: Sync definitions with Debian whois 4.7.36. * SERVER: Added new IPv4 allocations (whois 4.7.36). * SERVER: Added .ls, .mg, .mk, .tz and .uy TLD definitions (whois 4.7.36). * SERVER: Updated .jobs, .ms and .ph TLD definitions (whois 4.7.36). * SERVER: Removed .td TLD definition (whois 4.7.36). * ADDED: Whois::Client.new now accepts a block and yields self. client = Whois::Client.new do |c| c.timeout = nil end client.query("google.com") * FIXED: DeprecatedWhoisTest are flagged with need_connectivity method because they require connectivity. == Release 0.5.1 * ADDED: Whois binary (closes REDMINE-271). * FIXED: 'rake coverage' task crashes. * FIXED: In case of thin server the client should concatenate all responses (closes REDMINE-259). == Release 0.5.0 * ADDED: Support for IPv4 and IPv6 (closes REDMINE-265). * ADDED: Compatibility with existing GEM Whois 0.4.2 (closes REDMINE-266). * ADDED: Deprecation warning for all the features that will be removed in Whois 0.6.0 (closes REDMINE-266). * ADDED: Default timeout for any Whois query run from the client interface (closes REDMINE-269). * FIXED: Whois#whois defined as instance method but modules can't have instances! * FIXED: Whois::Server::Adapters::Verisign adapter always use "whois.crsnic.net" regardless the adapter set in the server definition. * SERVER: Updated .tv TLD definition (closes REDMINE-261). * SERVER: Updated .ae TLD definition (closes REDMINE-270). == Release 0.1.1 * FIXED: Server#guess should raise ServerNotFound when query is not recognized. * FIXED: ServerError should inherits from Error and not StandardError. * CHANGED: Removed the Kernel#whois method because fights with many implementations of missing_method. Moved the method under the Whois namespace. == Release 0.1.0 * First release