= Changelog == Release 2.0.4 * SERVER: Added the following new IDN TLDs: * .XN--90A3AC (.СРБ, Serbia) (#94) * FIXED: whois.nic.it parser must support pendinUpdate and pendingTransfer statuses. * FIXED: whois.nic-se.se crashes in some cases where the modified: attribute is an invalid date. == Release 2.0.3 * SERVER: Sync definitions with Debian whois 5.0.11: * Added the remaining IPv4 allocations. * Updated the .gm TLD server. * FIXED: Whois::Record::Parser::Base#validate! should raise a ResponseIsUnavailable error when response_unavailable? * FIXED: whois.nic.it parser must support inactive / noRegistrar status. * FIXED: whois.sk-nic.sk parser must support DOM_DAKT status. == Release 2.0.2 * CHANGED: whois.ripn.net now returns an array of contacts, one for each email (#89) * FIXED: whois.nic.it parser must support UNASSIGNABLE status. == Release 2.0.1 * FIXED: Removed invalid test files. == Release 2.0.0 * SERVER: Added .AE.ORG, .AR.COM, .KR.COM TLD definitions (whois.centralnic.net). * SERVER: Removed invalid .WEB.COM TLD definition (whois.centralnic.net). * SERVER: Updated .EE TLD definition and corresponding parser (#64). * SERVER: Sync definitions with Debian whois 5.0.10: * Added new IPv4 allocations. * SERVER: Added the following 12 new IDN TLD: * .XN--WGBL6A (قطر, Qatar) (#63) * .XN--3E0B707E (한국, Korea, Republic of) * .XN--45BRJ9C (.ভারত, India) * .XN--FPCRJ9C3D (భారత్, India) * .XN--GECRJ9C (ભારત, India) * .XN--H2BRJ9C (भारत, India) * .XN--MGBBH1A71E (بھارت, India) * .XN--OGBPF8FL (سورية, Syrian Arab Republic) * .XN--S9BRJ9C (ਭਾਰਤ, India) * .XN--XKC2DL3A5EE0H (இந்தியா, India) * .XN--YFRO4I67O (新加坡, Singapore) * .XN--CLCHC0EA0B2G2A9GCD (சிங்கப்பூர், Singapore) * SERVER: Changed .KR TLD definition to whois.kr. * NEW: Added simple AE.ORG, AR.COM, BR.COM, CN.COM, DE.COM, EU.COM, GB.COM, GB.NET, HU.COM, JPN.COM, KR.COM, NO.COM, QC.COM, RU.COM, SA.COM, SE.COM, SE.NET, UK.COM, UK.NET, US.COM, UY.COM, WEB.COM, ZA.COM TLD parser (whois.centralnic.net). * NEW: Added ability to bind a WHOIS query to a specific local address and port (#40). * NEW: Added simple .SO TLD parser (whois.nic.so) (#57). * NEW: Property memoization (#18) * NEW: whois.ripn.net now supports #registrar and #admin_contact (#72). * NEW: Added support for $ gem test and Gem Testers See http://www.engineyard.com/blog/2011/introducing-gem-testers/ * NEW: Whois::Answer::Nameserver#to_s returns the #name for BC with string-based nameservers. * NEW: Added support for throttled response detection (#23, #54, #61) * NEW: whois.registry.in now supports #registrar (#78). * NEW: Added full whois.cnnic.cn parser (#77). * NEW: Added full whois.cnnic.biz parser. * NEW: Added full whois.afilias.info parser. * NEW: Extracted Whois::Answer::Parser::Features and Extracted Whois::Answer::Parser::Scanners::Base. * NEW: whois.nic.uk now supports #registrar (#81, #82). * NEW: Added simple whois.markmonitor.net parser (#83). * CHANGED: Renamed whois.centralnic.net to whois.centralnic.com (#28). * CHANGED: Switched from RDoc to YARDoc (#3). * CHANGED: Whois::Server::Adapter::Base#== now returns false if other is not the same instance of self. * CHANGED: Deprecated the comparison of Whois::Answer with String. * CHANGED: Removed official support for Ruby 1.9.1. * CHANGED: Renamed Whois::Server::Adapters::Base#append_to_buffer to buffer_append. * CHANGED: Whois::Answer::Parser::Base#response_throttled? and Whois::Answer::Parser::Base#invalid? are not defined by default. Define the method in the implementation, and Whois::Answer::Parser will automatically use it. * CHANGED: Removed &block from method definition to avoid creating block objects when yield is used (#66) * CHANGED: Renamed Whois::Answer::Parser::Base.register_property to Whois::Answer::Parser::Base.property_register. * CHANGED: Whois::Answer::Parser creates a missing method the first time it is invoked to increase performance. * CHANGED: whois.nic.it parser raises on invalid #status. * CHANGED: Change #nameservers property to return an Array of Nameserver (#76, see #71, see #64). * CHANGED: Whois#query no longer raises Errno or SocketError. The errors are now rescued and re-raised as Whois::ConnectionError. * CHANGED: #admin_contact, #technical_contact and #registrant_contact have been renamed to #admin_contacts, #technical_contacts and #registrant_contacts and they now returns an array of Contact, instead of a single Contact. * CHANGED: Migrated all tests to RSpec. * CHANGED: Renamed Whois::Answer to Whois::Record and deprecate Whois::Answer class. * FIXED: Converted #changed? and #unchanged? properties to methods and normalized their behavior. * FIXED: Make sure a warning is issued when #registered? or #available? returns nil. * FIXED: Fixed a bug with the whois.crsnic.net parser where the name server contains "no nameserver" instead of a valid host. * FIXED: Fixed a bug which prevents a client to be created with nil timeout. * FIXED: The very first time a Whois::Answer method/property question method is invoked, the corresponding method is called instead of the question one. * FIXED: whois.cat parser must support multiple statuses. * FIXED: whois.tld.ee parser must support :expired status. * FIXED: whois.nic.fr parser must support :registered status. * FIXED: whois.nic.cz parser must support :expired status. * FIXED: With some .tr domains, whois.nic.tr parser returns invalid values for nameservers. * FIXED: whois.isoc.org.il parser must support "transfer allowed" status. * FIXED: Whois::Answer#respond_to? and Whois::Answer::Parser#respond_to? should keep METHODS and PROPERTIES into consideration. * FIXED: whois.nic.fr parser must support "redemption" status. * FIXED: whois.nic.it parser must support the following new statuses: - ok / * - client* - pendingDelete - GRACE-PERIOD * FIXED: whois.nic.it parser doesn't set address state. * FIXED: whois.cira.ca parser must support "to be released" status. * FIXED: whois.sk-nic.sk parser must support "DOM_HELD" status. === BC * Whois::Server::Adapters::Base#append_to_buffer renamed to buffer_append. * Whois#query no longer raises Errno::ECONNRESET, Errno::EHOSTUNREACH, Errno::ECONNREFUSED, SocketError. The errors are now rescued and re-raised as Whois::ConnectionError. * #admin_contact, #technical_contact and #registrant_contact have been renamed to #admin_contacts, #technical_contacts and #registrant_contacts and they now returns an array of Contact, instead of a single Contact. #admin_contact, #technical_contact and #registrant_contact still exists in the Answer as a convenient shortcut. * Renamed Whois::Answer::Parser::Base.register_property to Whois::Answer::Parser::Base.property_register. == Release 1.6.6 * NEW: Backported whois.centralnic.net support from version 2.0. * FIXED: whois.nic-se.se must support :inactive status. * FIXED: whois.cira.ca must support "auto-renew grace" status. == Release 1.6.5 * FIXED: whois.dns.pt must support :reserved status. * FIXED: whois.cira.ca must support :redemption status as :registered. == Release 1.6.4 * FIXED: With some .pl domains, whois.dns.pl parser returns invalid values for nameservers. * FIXED: The whois.pnina.ps server injects a NODNS.NS string when a nameserver is not set. The parser should ignore it. * FIXED: whois.nic.ve must support :suspended status. == Release 1.6.3 * FIXED: whois.nic.kz doesn't recognize multiline status * FIXED: jprs.jp domain parser bug with empty date fields (#60) == Release 1.6.2 * SERVER: Updated the .sg TLD definition. * SERVER: Updated the .th TLD definition. * SERVER: Updated the .org.za TLD definition. * NEW: Added simple .sg TLD parser (whois.sgnic.sg). * NEW: Added .sh TLD parser (whois.nic.sh). * NEW: Added simple .sk TLD parser (whois.sgnic.sg). * NEW: Added simple .sl TLD parser (whois.nic.sl). * NEW: Added simple .th TLD parser (whois.thnic.co.th). * NEW: Added simple .tw TLD parser (whois.twnic.net.tw). * NEW: Added simple .ac.uk, .gov.uk TLD parser (whois.ja.net). * NEW: Added .org.za TLD parser (whois.org.za). * NEW: Added simple .gov.za TLD parser (whois.gov.za). * NEW: Added .co.za TLD parser (whois.coza.net.za). * NEW: Added simple .ci TLD parser (whois.nic.ci). (#39) * NEW: Added simple .gy TLD parser (whois.registry.gy). (#45) * NEW: Added simple .hm TLD parser (whois.registry.hm). (#46) * NEW: Added simple .pl TLD parser (whois.dns.pl). * NEW: Added .co.pl TLD parser (whois.co.pl). * NEW: Added simple .pr TLD parser (whois.nic.pr). * FIXED: The CLI help message uses whois instead or ruby-whois. == Release 1.6.1 * FIXED: Fixed unknown status `Inactive' for kero.yachay.pe. == Release 1.6.0 * SERVER: Updated the .nc TLD definition. * SERVER: Updated the .nf TLD definition. * SERVER: Updated the .ng TLD definition. * SERVER: Updated the .pe TLD definition. * SERVER: Updated the .sb TLD definition. * SERVER: Updated the .ki/.mu TLD definition. * SERVER: Updated the .tf TLD definition. * NEW: Added simple .mg TLD parser (whois.nic.mg). * NEW: Added simple .ms TLD parser (whois.nic.ms). * NEW: Added simple .ms TLD parser (whois.domainregistry.my). * NEW: Added simple .na TLD parser (whois.na-nic.com.na). * NEW: Added simple .nf TLD parser (whois.nic.net.nf). * NEW: Added simple .ng TLD parser (whois.nic.net.ng). * NEW: Added simple .pe TLD parser (kero.yachay.pe). * NEW: Added simple .ps TLD parser (whois.pnina.ps). * NEW: Added simple .ki TLD parser (whois.nic.ki). * NEW: Added .tm TLD parser (whois.nic.tm). * NEW: Added .tz TLD parser (whois.tznic.or.tz). * CHANGED: Completed .md TLD parser (whois.nic.md). * CHANGED: Completed .io TLD parser (whois.nic.io). * FIXED: Fixed Unknown status `Registration request being processed.' for whois.nic.uk. * FIXED: whois.nic.ve supports expires_on. * FIXED: With some .uk domains, whois.nic.uk parser returns invalid values for nameservers. * FIXED: whois.audns.net.au record can contain multiple statuses. == Release 1.5.1 * NEW: Added simple .kg TLD parser (whois.domain.kg). * NEW: Added .md TLD parser (whois.nic.md). * FIXED: Fixed Unknown status `Renewal request being processed.' for whois.nic.uk. * FIXED: With some .cz domains, whois.nic.cz parser returns invalid values for nameservers. == Release 1.5.0 WARNING: Whois >= 1.5.0 requires Ruby 1.8.7 or newer. * CHANGED: Ruby 1.8.7 or newer is required. * FIXED: Fixed Unknown status `CLIENT DELETE PROHIBITED' for whois.registry.in. * REMOVED: Remove deprecated Whois::Answer::Parser::Base methods: * #registrant * #admin * #technical * REMOVED: Remove deprecated Whois::Answer::Part#response property. == Release 1.3.10 * CHANGED: Standardized #status property for the following parsers (#5) * whois.aero * whois.aeda.net.ae * whois.audns.net.au * whois.cat * whois.cctld.uz * whois.co.ug * whois.denic.de * whois.dk-hostmaster.dk * whois.dns.be * whois.dns.lu * whois.dns.pt * whois.domainregistry.ie * whois.in.ua * whois.jprs.jp * whois.net.ua * whois.nic-se.se * whois.nic.am * whois.nic.asia * whois.nic.at * whois.nic.coop * whois.nic.fr * whois.nic.ht * whois.nic.kz * whois.nic.la * whois.nic.mu * whois.nic.nu * whois.nic.org.uy * whois.nic.travel * whois.nic.uk * whois.nic.ve * whois.norid.no * whois.register.bg * whois.registry.in * whois.rotld.ro * whois.srs.net.nz * FIXED: Property cache is missing for some parsers (#18) * FIXED: In some circumstances the whois.jprs.js parser may raise an Argument out of range error trying to parse the #updated_on property. * FIXED: The whois.nic.uk parser fails to parse #nameservers when the domain is suspended. == Release 1.3.10 * SERVER: Removed the .fed.us TLD definition. * NEW: Added simple .je TLD parser (whois.je). * NEW: Added simple .ke TLD parser (whois.kenic.or.ke). * NEW: Added simple .li TLD parser (whois.nic.li). * CHANGED: Force whois.denic.de WHOIS output to be always UTF-8, otherwise some queries will fail (#51) $ ruby-whois hosteurope.de % Error: 55000000013 Invalid charset for response * CHANGED: Standardized whois.nic.gov #status property. == Release 1.3.9 * SERVER: Sync definitions with Debian whois 5.0.8: * Updated the .bb, .ps, and .lk TLD definitions. * NEW: Added simple .dz TLD parser (whois.nic.dz). * NEW: Added simple .fi TLD parser (whois.ficora.fi). * NEW: Added simple .fj TLD parser (whois.usp.ac.fj). * NEW: Added simple .gg TLD parser (whois.gg). * NEW: Added simple .gs TLD parser (whois.nic.gs). * NEW: Added simple .il TLD parser (whois.isoc.org.il). * NEW: Added simple .ir TLD parser (whois.nic.ir). * CHANGED: Standardized whois.pandi.or.id #status property, it now returns symbols instead of strings. * FIXED: Compatibility with the new whois.cira.ca record schema. == Release 1.3.8 * FIXED: The Verisign WHOIS adapter crashes in some rare circumstances when the response from the Verisign database returns a "not defined" value for the Referral Whois Server (#42) == Release 1.3.7 * SERVER: Updated the .ci TLD definition. * SERVER: Removed the .co.uk TLD definition. * NEW: Added simple .priv.at TLD parser (whois.nic.priv.at). * NEW: Added simple .cx TLD parser (whois.nic.cx). * NEW: Added simple .bo TLD parser (whois.nic.bo). * NEW: Added simple .co.ca TLD parser (whois.co.ca). * NEW: Added simple .ck TLD parser (whois.nic.ck). * NEW: Added simple .cl TLD parser (whois.nic.cl). * NEW: Added simple .cm TLD parser (whois.netcom.cm). * NEW: Added simple .cz TLD parser (whois.nic.cz). * CHANGED: Standardized whois.nic.af #status property, it now returns symbols instead of strings. * CHANGED: Standardized whois.arnes.si #status property, it now returns symbols instead of strings. == Release 1.3.6 * CHANGED: Deprecated Whois::Answer::Part#response. * FIXED: whois.denic.de parser is not compatible with Denic response v 2.0. == Release 1.3.5 * SERVER: Updated the .so TLD definition (#36). * NEW: Added simple .ug TLD parser (whois.co.ug) (#35). [DerGuteMoritz] * FIXED: ruby-whois executable is not installed when the Gem is installed. == Release 1.3.4 * FIXED: With some .ie domains, whois.dns.be parser returns invalid values for nameservers. * FIXED: With some .be domains, whois.dmainregistry.ie parser returns invalid values for nameservers. == Release 1.3.3 * NEW: Ability to parse Registrar for .ca TLD parser. [aeden] * FIXED: With some .nl domains, whois.domain-registry.nl parser returns invalid values for nameservers. * FIXED: With some .mx domains, whois.nic.mx parser returns invalid values for nameservers. * FIXED: With some .me domains, whois.meregistry.net parser returns invalid values for nameservers. == Release 1.3.2 * FIXED: .nl TLD parser doesn't understand quarantine status (#34). * CHANGED: Parser aliases are now created aliasing constants instead subclassing. * CHANGED: Updated .hk parser to whois.hkirc.hk (#30). * CHANGED: Updated .tw parser to whois.twnic.net.tw (#31). == Release 1.3.1 * SERVER: Added the following 10 new IDN TLD: * .xn--fzc2c9e2c (.ලංකා, Sri Lanka) * .xn--j6w193g (.香港, Hong Kong) * .xn--kprw13d (.台灣, Taiwan) * .xn--kpry57d (.台湾, Taiwan) * .xn--mgbayh7gpa (.الاردن, Jordan) * .xn--o3cw4h (.ไทย, Thailand) * .xn--pgbs0dh (.تونس, Tunisia) * .xn--wgbh1c (.مصر, Egypt) * .xn--xkc2al3hye2a (.இலங்கை, Sri Lanka) * .xn--ygbi2ammx (.فلسطين, Palestinian Territory, Occupied) * SERVER: Sync definitions with Debian whois 5.0.7: * Added new IPv4 allocations. * Updated the .bd, .bo, .cm, .cu, .dz, .gr, .lb, .ni, .rw, .tw, and .tz TLD servers. * REMOVED: Deprecated Whois::Answer::Parser.properties method. == Release 1.3.0 * NEW: Ability to query IANA for TLD WHOIS information. [aadlani] Whois.query(".com") # => IANA WHOIS response for .com TLD Whois.query(".invalid") # => IANA WHOIS response for unassigned TLD * NEW: Ability to compare two Server adapters for equality. Whois::Server.factory(:ipv4, "192.168.1.0/10", "whois.foo") == Whois::Server.factory(:ipv4, "192.168.1.0/10", "whois.foo") # => true Whois::Server.factory(:ipv4, "192.168.1.0", "whois.foo") == Whois::Server.factory(:ipv4, "192.168.1.0/10", "whois.foo") # => false * CHANGED: Renamed Scanners::VerisignScanner to Scanners::Verisign. * CHANGED: Excluded test folder from the packaged .gem file to reduce the size of the final packaged library. == Release 1.2.2 * SERVER: Sync definitions with Debian whois 5.0.6. * SERVER: Added new IPv4, IPv6 allocations (whois 5.0.6). * SERVER: Added/Updated the .priv.at, .dj, .ls TLD definition (whois 5.0.6). * SERVER: Added xn--mgbaam7a8h (United Arabs Emirates), .xn--mgberp4a5d4ar (Saudi Arabia), .xn--p1ai (Russian Federation), .xn--fiqs8s (China), .xn--fiqz9s (China) and .xn--wgbh1c (Egypt) TLD servers. (whois 5.0.6). * SERVER: Killed .yu TLD, phased out on 30 March 2009 (whois 5.0.6). * NEW: Added .to TLD parser (whois.tonic.to). * FIXED: whois.jprs.jp doesn't fully understand answers for .net.jp domains. [milk1000cc] * CHANGED: The .co TLD now has a WHOIS interface (whois.nic.co). Added simple .co parser. * CHANGED: Updated .sa TLD parser from saudinic.net.sa to whois.nic.net.sa (#29). * CHANGED: Updated .au TLD parser from whois.ausregistry.net.au to whois.audns.net.au (#27). == Release 1.2.1 * NEW: Added simple .ee TLD parser (whois.eenet.ee). * NEW: Added simple .kz TLD parser (whois.nic.kz). * NEW: Added simple .la TLD parser (whois.nic.la). * NEW: Added simple .ec TLD parser (whois.nic.ec). * NEW: Added simple .uz TLD parser (whois.nic.uz). * NEW: Added simple .uy TLD parser (whois.nic.org.uy). == Release 1.2.0 * NEW: Whois::Answer#throttle? returns true in case of throttle response (see whois.publicinternetregistry.com for a real example) * FIXED: With some .tr domains, whois.nic.tr parser returns inconsistent values for nameservers. * FIXED: Unexpected token error when trying to parse a .hu whois response. The whois.nic.hu has changed response format. * FIXED: RuntimeError "Unexpected token: WHOIS LIMIT EXCEEDED - SEE WWW.PIR.ORG/WHOIS FOR DETAILS" for whois.publicinternetregistry.com * CHANGED: Lazy-load adapters using Ruby autoload feature. == Release 1.1.8 * NEW: Added simple .pt TLD parser (whois.dns.pt). * NEW: Added simple .ht TLD parser (whois.nic.ht). * NEW: Added simple .tr TLD parser (whois.nic.tr). == Release 1.1.7 * FIXED: method `to_time' not defined in DateTime (NameError) when the library is used with Ruby 1.9.1 and Rails (#24) == Release 1.1.6 * NEW: Added simple .in.ua TLD parser (whois.in.ua). It seems that .in.ua is handled separately from .ua. == Release 1.1.5 * NEW: Added simple .ua TLD parser (whois.net.ua). * FIXED: Occasionally the library raises a "superclass mismatch for class DateTime (TypeError)" error. * CHANGED: Cleanup Whois::Adapter::Base @buffer after a successful request. == Release 1.1.4 * NEW: Added registrar support to Verisign parsers * FIXED: Usage of deprecated method Whois::Answer::Parser.properties * FIXED: Verisign parsers don't return the correct Referral URL when there's more than one response entry in the answer * FIXED: Whois::Answer::Parsers::WhoisDotTk is not compatible with Ruby 1.9 == Release 1.1.3 * NEW: Added simple .tk TLD parser (whois.dot.tk). * NEW: Added .sn TLD parser (whois.nic.sn). * CHANGED: Whois::Answer#== and Whois::Answer#eql? should be able to compare Whois::Answer with subclasses. * CHANGED: Deprecate Whois::Answer::Parser.properties. Use Whois::Answer::Parser::PROPERTIES instead. == Release 1.1.2 * NEW: Whois::Answer::Contact#type property returns the type of the contact (ADMIN, TECHNICAL, ...). * FIXED: Whois::Answer::Parser::Base#contacts decomposes each Contact property in a single contact. == Release 1.1.1 * FIXED: Deprecated methods Whois::Answer::Parser::Base#(admin|technical|registrant) didn't figure as supported with Whois::Answer#property_supported?(:method) == Release 1.1.0 * NEW: Added simple .am TLD parser (whois.nic.am). * NEW: Added simple .as TLD parser (whois.nic.as). * NEW: Added simple .au TLD parser (whois.ausregistry.net.au). * NEW: Added simple .st TLD parser (whois.nic.st). * NEW: New methods Whois::Answer#contacts, Whois::Answer::Parser#contacts, and Whois::Answer::Parser::Base#contacts returns all supported contacts. * CHANGED: Renamed Whois::Answer::Parser::Base#(admin|technical|registrant) to Whois::Answer::Parser::Base#(admin|technical|registrant)_contact. == Release 1.0.12 * NEW: Added simple .in TLD parser (whois.registry.in). * NEW: Added simple .jp TLD parser (whois.jprs.jp). * FIXED: With some .lu domains, whois.dns.lu parser returns invalid values for nameservers. == Release 1.0.11 * NEW: Added simple .af TLD parser (whois.nic.af). * NEW: Added simple .ag TLD parser (whois.nic.ag). * NEW: Added simple .ai TLD parser (whois.ai). * NEW: Added simple .hk TLD parser (whois.hkdnr.net.hk). * NEW: Added simple .lu TLD parser (whois.dns.lu). * NEW: Added simple .mx TLD parser (whois.nic.mx). * FIXED: Fixed uninitialized constant error Whois::Answer::Parser::WhoisNicOrKr when trying to load the .kr parser. == Release 1.0.10 * NEW: Added simple .kr TLD parser (whois.nic.or.kr). * NEW: Added simple .be TLD parser (whois.dns.be). * FIXED: .cn server was changed by mistake in commit:81b3e253785e59aca542b6165ab1b9769c6acdd7 from whois.cnnic.net.cn to whois.cnnic.cn. This caused the parser lookup to fail. * FIXED: With some .lt domains, whois.domreg.lt parser returns invalid values for nameservers. * FIXED: With some .bg domains, whois.register.bg parser returns invalid values for nameservers. == Release 1.0.9 * NEW: Added simple .lt TLD parser (whois.domreg.lt). * NEW: Added simple .at TLD parser (whois.nic.at). * NEW: Added simple .cn TLD parser (whois.cnnic.net.cn). * NEW: Added simple .lv TLD parser (whois.nic.lv). * NEW: Added simple .si TLD parser (whois.arnes.si). * NEW: Added simple .id TLD parser (whois.pandi.or.id). * FIXED: With some .ru domains, whois.ripn.net parser returns invalid values for nameservers. == Release 1.0.8 * NEW: Added simple .nz TLD parser (whois.srs.net.nz). * FIXED: With some .ch domains, whois.nic.ch parser returns invalid or duplicate values for nameservers. == Release 1.0.7 * FIXED: whois.nic.hu parser raises a NoMethodError when trying to access 'registrant' property for personal domains (#19). == Release 1.0.6 * NEW: Added simple .ve TLD parser (whois.nic.ve). * NEW: Added support for 'nameservers' property for all existing parsers. * FIXED: With some .eu domains, whois.eu parser returns invalid values for nameservers. * CHANGED: jobswhois.verisign-grs.com now correctly raises PropertyNotSupported when a property is not supported. * CHANGED: whois.crsnic.net now correctly raises PropertyNotSupported when a property is not supported. * CHANGED: whois.denic.de now correctly raises PropertyNotSupported when a property is not supported. * CHANGED: whois.nic.cc now correctly raises PropertyNotSupported when a property is not supported. * CHANGED: whois.nic.hu now correctly raises PropertyNotSupported when a property is not supported. * CHANGED: whois.nic.it now correctly raises PropertyNotSupported when a property is not supported. * CHANGED: whois.nic.tv now correctly raises PropertyNotSupported when a property is not supported. == Release 1.0.5 * SERVER: Sync definitions with Debian whois 5.0.1. * SERVER: Added new IPv4 allocations (whois 5.0.1). * SERVER: Updated the .dj TLD definition (whois 5.0.1). * NEW: Support for 'nameservers' property for the whois.afilias.info parser. (#15) * NEW: Support for 'nameservers' property for the whois.nic.tel parser. (#17) * NEW: Support for 'nameservers' property for the whois.eu parser. (#16) * NEW: Support for 'nameservers' property for the whois.meregistry.net parser. * FIXED: whois.crsnic.net server crashes trying to return nameservers with reserved IANA domains and Ruby 1.9.1. * FIXED: With some .se domains, whois.nic-se.se parser returns invalid values for nameservers. == Release 1.0.4 * NEW: Added Symbol.to_proc core extension to ensure compatibility with Ruby 1.8.6. * FIXED: Normalize 'nameservers' property return value. Always return an Array even if there's no nameserver. * CHANGED: Suppress Japanese output for the .js TLD [axic] == 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 (#13) * NEW: Support for 'Contact#zip' property for the whois.nic.it parser [axic] * NEW: Support for 'nameservers' property for the whois.adamsnames.tc parser. * NEW: Compatibility with semver.org * 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 (#14) * FIXED: whois.crsnic.net crashes with reserved IANA domains (ex y.com) == 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) * NEW: Simple .at TLD parser. * NEW: Simple .be TLD parser. * NEW: Simple .bg TLD parser. * NEW: Simple .ca TLD parser. * NEW: Simple .ch TLD parser. * NEW: Simple .eu TLD parser. * NEW: Simple .gl TLD parser. * NEW: Simple .im TLD parser. * NEW: Simple .is TLD parser. * NEW: Simple .ly TLD parser. * NEW: Simple .me TLD parser. * NEW: Simple .mu, .ki TLD parser (whois.nic.mu). * NEW: Simple .nl TLD parser. * NEW: Simple .no TLD parser. * NEW: Simple .fo, .gm, .mc, .sm, .va TLD parsers (whois.ripe.net). * NEW: Simple .tl TLD parser. * NEW: Simple .tel TLD parser. * NEW: Simple .us TLD parser. * NEW: Simple .biz TLD parser. * NEW: Simple .mobi TLD parser. * NEW: Simple .museum TLD parser. * NEW: Simple .io TLD parser. * NEW: Simple .ro TLD parser. * NEW: Simple .br TLD parser. * NEW: Simple .travel TLD parser. * NEW: Simple .wf, .yt TLD parser (whois.nic.fr). * NEW: Simple .dk TLD parser [thanks to Mikkel Kristensen]. * NEW: Simple .uk TLD parser (whois.nic.uk). * NEW: Simple .ws TLD parser (whois.samoanic.ws). * NEW: Simple .gd, vg, tc TLD parser (whois.adamsnames.tc). * NEW: Simple .su, .ru TLD parser (whois.ripn.net). * NEW: Simple .cat TLD parser (whois.cat). * NEW: Simple .cd TLD parser (whois.nic.cd). * NEW: Simple .coop TLD parser (whois.nic.coop). * NEW: Simple .pro TLD parser (whois.registrypro.pro). * NEW: Simple .ae TLD parser (whois.aeda.net.ae). * NEW: .cc, .jobs TLD parsers (verisign). * NEW: .ac TLD parser (whois.nic.ac). * NEW: 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. * NEW: Whois#Answer.property? returns whether property has a value. a = Whois.query "google.it" a.created_on? # => true a.domain_id? # => false * NEW: Whois::WebInterfaceError now exposes #url attribute. * 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. * 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) * NEW: Simple .fr TLD parser. * NEW: Simple .name TLD parser. * NEW: Simple .ie TLD parser. * NEW: Simple .edu TLD parser. * NEW: Simple .info TLD parser. * NEW: Simple .gov TLD parser. * NEW: Simple .za.net TLD parser. * NEW: Simple .eu.org TLD parser. * NEW: Simple .za.org TLD parser. * NEW: Simple .int/.arpa TLD parser. * NEW: Simple .aero TLD parser. * NEW: Simple .asia TLD parser. * NEW: Simple .bz, .gi, .hn, .lc, .mn, .sc and .vc TLD parser. * NEW: .tv TLD parser. * NEW: .hu TLD parser. * NEW: Ability to pass timeout option to 'ruby-whois' (closes REDMINE-334) * NEW: 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) * NEW: 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) * NEW: whois.denic.de (.de TLD) parser [Aaron Mueller] * NEW: 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. * NEW: 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 * NEW: 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. * NEW: 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). * NEW: 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 * NEW: 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 * NEW: Support for IPv4 and IPv6 (closes REDMINE-265). * NEW: Compatibility with existing GEM Whois 0.4.2 (closes REDMINE-266). * NEW: Deprecation warning for all the features that will be removed in Whois 0.6.0 (closes REDMINE-266). * NEW: 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