whois 2.0.4 → 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (602) hide show
  1. data/CHANGELOG.rdoc +36 -1
  2. data/Rakefile +6 -5
  3. data/lib/whois/definitions/tlds.rb +3 -2
  4. data/lib/whois/record/parser/NOTES.txt +1 -0
  5. data/lib/whois/record/parser/whois.audns.net.au.rb +1 -1
  6. data/lib/whois/record/parser/whois.cira.ca.rb +23 -4
  7. data/lib/whois/record/parser/whois.dns.be.rb +8 -0
  8. data/lib/whois/record/parser/whois.eu.rb +3 -3
  9. data/lib/whois/record/parser/whois.meregistry.net.rb +3 -3
  10. data/lib/whois/record/parser/whois.nic.asia.rb +2 -1
  11. data/lib/whois/record/parser/whois.nic.cz.rb +4 -2
  12. data/lib/whois/record/parser/whois.nic.it.rb +7 -5
  13. data/lib/whois/record/parser/whois.nic.sm.rb +78 -0
  14. data/lib/whois/record/parser/whois.nic.uk.rb +2 -0
  15. data/lib/whois/record/parser/whois.nic.xxx.rb +147 -0
  16. data/lib/whois/record/parser/whois.registro.br.rb +20 -6
  17. data/lib/whois/record/parser/whois.sk-nic.sk.rb +17 -3
  18. data/lib/whois/record/parser/whois.srs.net.nz.rb +15 -0
  19. data/lib/whois/server/adapters/verisign.rb +1 -1
  20. data/lib/whois/version.rb +1 -1
  21. data/spec/fixtures/referrals/crsnic.com_referral_missing.txt +50 -0
  22. data/spec/fixtures/responses/whois.biz/status_registered.expected +3 -3
  23. data/spec/fixtures/responses/whois.cat/status_registered.expected +3 -3
  24. data/spec/fixtures/responses/whois.cira.ca/schema-2/property_status_unavailable.txt +11 -0
  25. data/spec/fixtures/responses/whois.cira.ca/schema-2/status_available.expected +7 -0
  26. data/spec/fixtures/responses/whois.cira.ca/schema-2/status_invalid.expected +9 -0
  27. data/spec/fixtures/responses/whois.cira.ca/schema-2/status_invalid.txt +11 -0
  28. data/spec/fixtures/responses/whois.cira.ca/schema-2/status_registered.expected +7 -0
  29. data/spec/fixtures/responses/whois.dns.be/response_throttled.expected +2 -0
  30. data/spec/fixtures/responses/whois.dns.be/response_throttled.txt +40 -0
  31. data/spec/fixtures/responses/whois.eu/property_nameservers.expected +17 -0
  32. data/spec/fixtures/responses/whois.eu/{property_nameservers_with_ip.txt → property_nameservers.txt} +20 -7
  33. data/spec/fixtures/responses/whois.eu/status_registered.txt +1 -1
  34. data/spec/fixtures/responses/whois.meregistry.net/property_updated_on_is_blank.expected +2 -0
  35. data/spec/fixtures/responses/whois.meregistry.net/property_updated_on_is_blank.txt +92 -0
  36. data/spec/fixtures/responses/whois.museum/status_registered.expected +1 -1
  37. data/spec/fixtures/responses/{whois.nic.it/property_status_pendingdelete.expected → whois.nic.asia/property_status_client_delete_prohibited.expected} +0 -0
  38. data/spec/fixtures/responses/whois.nic.asia/property_status_client_delete_prohibited.txt +160 -0
  39. data/spec/fixtures/responses/whois.nic.asia/property_status_client_transfer_prohibited.expected +8 -0
  40. data/spec/fixtures/responses/whois.nic.asia/property_status_client_transfer_prohibited.txt +159 -0
  41. data/spec/fixtures/responses/whois.nic.cz/property_status_update_prohibited.expected +8 -0
  42. data/spec/fixtures/responses/whois.nic.cz/property_status_update_prohibited.txt +83 -0
  43. data/spec/fixtures/responses/whois.nic.it/property_status_no_provider.expected +8 -0
  44. data/spec/fixtures/responses/whois.nic.it/property_status_no_provider.txt +54 -0
  45. data/spec/fixtures/responses/whois.nic.it/property_status_pendingdelete_pendingdelete.expected +8 -0
  46. data/spec/fixtures/responses/whois.nic.it/property_status_pendingdelete_pendingdelete.txt +45 -0
  47. data/spec/fixtures/responses/whois.nic.it/property_status_pendingdelete_redemptionperiod.expected +8 -0
  48. data/spec/fixtures/responses/whois.nic.it/{property_status_pendingdelete.txt → property_status_pendingdelete_redemptionperiod.txt} +0 -0
  49. data/spec/fixtures/responses/whois.nic.it/property_status_redemption_no_provider.expected +8 -0
  50. data/spec/fixtures/responses/whois.nic.it/property_status_redemption_no_provider.txt +42 -0
  51. data/spec/fixtures/responses/{whois.ripe.net/sm → whois.nic.sm}/status_available.expected +2 -2
  52. data/spec/fixtures/responses/whois.nic.sm/status_available.txt +1 -0
  53. data/spec/fixtures/responses/{whois.ripe.net/sm → whois.nic.sm}/status_registered.expected +4 -2
  54. data/spec/fixtures/responses/whois.nic.sm/status_registered.txt +30 -0
  55. data/spec/fixtures/responses/whois.nic.uk/status_invalid.expected +4 -0
  56. data/spec/fixtures/responses/whois.nic.xxx/status_available.expected +57 -0
  57. data/spec/fixtures/responses/whois.nic.xxx/status_available.txt +1 -0
  58. data/spec/fixtures/responses/whois.nic.xxx/status_registered.expected +106 -0
  59. data/spec/fixtures/responses/whois.nic.xxx/status_registered.txt +98 -0
  60. data/spec/fixtures/responses/whois.registro.br/status_available.expected +5 -4
  61. data/spec/fixtures/responses/whois.registro.br/status_registered.expected +12 -4
  62. data/spec/fixtures/responses/whois.registro.br/status_registered.txt +29 -5
  63. data/spec/fixtures/responses/whois.sk-nic.sk/property_status_dom_exp.expected +8 -0
  64. data/spec/fixtures/responses/whois.sk-nic.sk/property_status_dom_exp.txt +27 -0
  65. data/spec/fixtures/responses/whois.sk-nic.sk/property_status_dom_held.expected +1 -1
  66. data/spec/fixtures/responses/whois.sk-nic.sk/property_status_dom_lnot.expected +8 -0
  67. data/spec/fixtures/responses/whois.sk-nic.sk/property_status_dom_lnot.txt +26 -0
  68. data/spec/fixtures/responses/whois.sk-nic.sk/property_status_dom_warn.expected +8 -0
  69. data/spec/fixtures/responses/whois.sk-nic.sk/property_status_dom_warn.txt +24 -0
  70. data/spec/fixtures/responses/whois.srs.net.nz/status_invalid.expected +7 -0
  71. data/spec/tlds +90 -89
  72. data/spec/whois/record/parser/responses/jobswhois.verisign-grs.com/property_nameserver_no_nameserver_spec.rb +1 -1
  73. data/spec/whois/record/parser/responses/jobswhois.verisign-grs.com/status_available_spec.rb +13 -13
  74. data/spec/whois/record/parser/responses/jobswhois.verisign-grs.com/status_registered_spec.rb +13 -13
  75. data/spec/whois/record/parser/responses/kero.yachay.pe/status_available_spec.rb +7 -7
  76. data/spec/whois/record/parser/responses/kero.yachay.pe/status_inactive_spec.rb +7 -7
  77. data/spec/whois/record/parser/responses/kero.yachay.pe/status_registered_spec.rb +7 -7
  78. data/spec/whois/record/parser/responses/whois.adamsnames.tc/gd/status_available_spec.rb +7 -7
  79. data/spec/whois/record/parser/responses/whois.adamsnames.tc/gd/status_registered_spec.rb +7 -7
  80. data/spec/whois/record/parser/responses/whois.adamsnames.tc/tc/status_available_spec.rb +7 -7
  81. data/spec/whois/record/parser/responses/whois.adamsnames.tc/tc/status_registered_spec.rb +7 -7
  82. data/spec/whois/record/parser/responses/whois.adamsnames.tc/vg/status_available_spec.rb +7 -7
  83. data/spec/whois/record/parser/responses/whois.adamsnames.tc/vg/status_registered_spec.rb +7 -7
  84. data/spec/whois/record/parser/responses/whois.aeda.net.ae/status_available_spec.rb +7 -7
  85. data/spec/whois/record/parser/responses/whois.aeda.net.ae/status_registered_spec.rb +7 -7
  86. data/spec/whois/record/parser/responses/whois.aero/status_available_spec.rb +7 -7
  87. data/spec/whois/record/parser/responses/whois.aero/status_registered_spec.rb +7 -7
  88. data/spec/whois/record/parser/responses/whois.afilias-grs.info/bz/status_available_spec.rb +7 -7
  89. data/spec/whois/record/parser/responses/whois.afilias-grs.info/bz/status_registered_spec.rb +7 -7
  90. data/spec/whois/record/parser/responses/whois.afilias-grs.info/gi/status_available_spec.rb +7 -7
  91. data/spec/whois/record/parser/responses/whois.afilias-grs.info/gi/status_registered_spec.rb +7 -7
  92. data/spec/whois/record/parser/responses/whois.afilias-grs.info/hn/status_available_spec.rb +7 -7
  93. data/spec/whois/record/parser/responses/whois.afilias-grs.info/hn/status_registered_spec.rb +7 -7
  94. data/spec/whois/record/parser/responses/whois.afilias-grs.info/lc/status_available_spec.rb +7 -7
  95. data/spec/whois/record/parser/responses/whois.afilias-grs.info/lc/status_registered_spec.rb +7 -7
  96. data/spec/whois/record/parser/responses/whois.afilias-grs.info/mn/status_available_spec.rb +7 -7
  97. data/spec/whois/record/parser/responses/whois.afilias-grs.info/mn/status_registered_spec.rb +7 -7
  98. data/spec/whois/record/parser/responses/whois.afilias-grs.info/sc/status_available_spec.rb +7 -7
  99. data/spec/whois/record/parser/responses/whois.afilias-grs.info/sc/status_registered_spec.rb +7 -7
  100. data/spec/whois/record/parser/responses/whois.afilias-grs.info/vc/status_available_spec.rb +7 -7
  101. data/spec/whois/record/parser/responses/whois.afilias-grs.info/vc/status_registered_spec.rb +7 -7
  102. data/spec/whois/record/parser/responses/whois.afilias.info/status_available_spec.rb +16 -16
  103. data/spec/whois/record/parser/responses/whois.afilias.info/status_registered_spec.rb +16 -16
  104. data/spec/whois/record/parser/responses/whois.ai/status_available_spec.rb +7 -7
  105. data/spec/whois/record/parser/responses/whois.ai/status_registered_spec.rb +7 -7
  106. data/spec/whois/record/parser/responses/whois.arnes.si/status_available_spec.rb +7 -7
  107. data/spec/whois/record/parser/responses/whois.arnes.si/status_registered_spec.rb +7 -7
  108. data/spec/whois/record/parser/responses/whois.audns.net.au/property_status_with_multiple_spec.rb +1 -1
  109. data/spec/whois/record/parser/responses/whois.audns.net.au/status_available_spec.rb +7 -7
  110. data/spec/whois/record/parser/responses/whois.audns.net.au/status_registered_spec.rb +7 -7
  111. data/spec/whois/record/parser/responses/whois.biz/status_available_spec.rb +15 -15
  112. data/spec/whois/record/parser/responses/whois.biz/status_registered_spec.rb +18 -18
  113. data/spec/whois/record/parser/responses/whois.cat/property_status_missing_spec.rb +1 -1
  114. data/spec/whois/record/parser/responses/whois.cat/property_status_multiple_spec.rb +1 -1
  115. data/spec/whois/record/parser/responses/whois.cat/property_status_ok_spec.rb +1 -1
  116. data/spec/whois/record/parser/responses/whois.cat/status_available_spec.rb +7 -7
  117. data/spec/whois/record/parser/responses/whois.cat/status_registered_spec.rb +10 -10
  118. data/spec/whois/record/parser/responses/whois.cctld.uz/status_available_spec.rb +7 -7
  119. data/spec/whois/record/parser/responses/whois.cctld.uz/status_registered_spec.rb +7 -7
  120. data/spec/whois/record/parser/responses/whois.centralnic.com/ae.org/status_available_spec.rb +9 -9
  121. data/spec/whois/record/parser/responses/whois.centralnic.com/ae.org/status_registered_spec.rb +9 -9
  122. data/spec/whois/record/parser/responses/whois.centralnic.com/ar.com/status_available_spec.rb +9 -9
  123. data/spec/whois/record/parser/responses/whois.centralnic.com/ar.com/status_registered_spec.rb +9 -9
  124. data/spec/whois/record/parser/responses/whois.centralnic.com/br.com/status_available_spec.rb +9 -9
  125. data/spec/whois/record/parser/responses/whois.centralnic.com/br.com/status_registered_spec.rb +9 -9
  126. data/spec/whois/record/parser/responses/whois.centralnic.com/cn.com/status_available_spec.rb +9 -9
  127. data/spec/whois/record/parser/responses/whois.centralnic.com/cn.com/status_registered_spec.rb +9 -9
  128. data/spec/whois/record/parser/responses/whois.centralnic.com/de.com/status_available_spec.rb +9 -9
  129. data/spec/whois/record/parser/responses/whois.centralnic.com/de.com/status_registered_spec.rb +9 -9
  130. data/spec/whois/record/parser/responses/whois.centralnic.com/eu.com/status_available_spec.rb +9 -9
  131. data/spec/whois/record/parser/responses/whois.centralnic.com/eu.com/status_registered_spec.rb +9 -9
  132. data/spec/whois/record/parser/responses/whois.centralnic.com/gb.com/status_available_spec.rb +9 -9
  133. data/spec/whois/record/parser/responses/whois.centralnic.com/gb.com/status_registered_spec.rb +9 -9
  134. data/spec/whois/record/parser/responses/whois.centralnic.com/gb.net/status_available_spec.rb +9 -9
  135. data/spec/whois/record/parser/responses/whois.centralnic.com/gb.net/status_registered_spec.rb +9 -9
  136. data/spec/whois/record/parser/responses/whois.centralnic.com/hu.com/status_available_spec.rb +9 -9
  137. data/spec/whois/record/parser/responses/whois.centralnic.com/hu.com/status_registered_spec.rb +9 -9
  138. data/spec/whois/record/parser/responses/whois.centralnic.com/jpn.com/status_available_spec.rb +9 -9
  139. data/spec/whois/record/parser/responses/whois.centralnic.com/jpn.com/status_registered_spec.rb +9 -9
  140. data/spec/whois/record/parser/responses/whois.centralnic.com/kr.com/status_available_spec.rb +9 -9
  141. data/spec/whois/record/parser/responses/whois.centralnic.com/kr.com/status_registered_spec.rb +9 -9
  142. data/spec/whois/record/parser/responses/whois.centralnic.com/no.com/status_available_spec.rb +9 -9
  143. data/spec/whois/record/parser/responses/whois.centralnic.com/no.com/status_registered_spec.rb +9 -9
  144. data/spec/whois/record/parser/responses/whois.centralnic.com/qc.com/status_available_spec.rb +9 -9
  145. data/spec/whois/record/parser/responses/whois.centralnic.com/qc.com/status_registered_spec.rb +9 -9
  146. data/spec/whois/record/parser/responses/whois.centralnic.com/ru.com/status_available_spec.rb +9 -9
  147. data/spec/whois/record/parser/responses/whois.centralnic.com/ru.com/status_registered_spec.rb +9 -9
  148. data/spec/whois/record/parser/responses/whois.centralnic.com/sa.com/status_available_spec.rb +9 -9
  149. data/spec/whois/record/parser/responses/whois.centralnic.com/sa.com/status_registered_spec.rb +9 -9
  150. data/spec/whois/record/parser/responses/whois.centralnic.com/se.com/status_available_spec.rb +9 -9
  151. data/spec/whois/record/parser/responses/whois.centralnic.com/se.com/status_registered_spec.rb +9 -9
  152. data/spec/whois/record/parser/responses/whois.centralnic.com/se.net/status_available_spec.rb +9 -9
  153. data/spec/whois/record/parser/responses/whois.centralnic.com/se.net/status_registered_spec.rb +9 -9
  154. data/spec/whois/record/parser/responses/whois.centralnic.com/uk.com/status_available_spec.rb +9 -9
  155. data/spec/whois/record/parser/responses/whois.centralnic.com/uk.com/status_registered_spec.rb +9 -9
  156. data/spec/whois/record/parser/responses/whois.centralnic.com/uk.net/status_available_spec.rb +9 -9
  157. data/spec/whois/record/parser/responses/whois.centralnic.com/uk.net/status_registered_spec.rb +9 -9
  158. data/spec/whois/record/parser/responses/whois.centralnic.com/us.com/status_available_spec.rb +9 -9
  159. data/spec/whois/record/parser/responses/whois.centralnic.com/us.com/status_registered_spec.rb +9 -9
  160. data/spec/whois/record/parser/responses/whois.centralnic.com/uy.com/status_available_spec.rb +9 -9
  161. data/spec/whois/record/parser/responses/whois.centralnic.com/uy.com/status_registered_spec.rb +9 -9
  162. data/spec/whois/record/parser/responses/whois.centralnic.com/za.com/status_available_spec.rb +9 -9
  163. data/spec/whois/record/parser/responses/whois.centralnic.com/za.com/status_registered_spec.rb +9 -9
  164. data/spec/whois/record/parser/responses/whois.cira.ca/schema-1/status_available_spec.rb +8 -8
  165. data/spec/whois/record/parser/responses/whois.cira.ca/schema-1/status_registered_spec.rb +8 -8
  166. data/spec/whois/record/parser/responses/whois.cira.ca/schema-2/property_status_autorenew_grace_spec.rb +3 -3
  167. data/spec/whois/record/parser/responses/whois.cira.ca/schema-2/property_status_available_spec.rb +3 -3
  168. data/spec/whois/record/parser/responses/whois.cira.ca/schema-2/property_status_redemption_spec.rb +3 -3
  169. data/spec/whois/record/parser/responses/whois.cira.ca/schema-2/property_status_registered_spec.rb +3 -3
  170. data/spec/whois/record/parser/responses/whois.cira.ca/schema-2/property_status_tobereleased_spec.rb +3 -3
  171. data/spec/whois/record/parser/responses/whois.cira.ca/schema-2/status_available_spec.rb +18 -8
  172. data/spec/whois/record/parser/responses/whois.cira.ca/schema-2/status_invalid_spec.rb +39 -0
  173. data/spec/whois/record/parser/responses/whois.cira.ca/schema-2/status_registered_spec.rb +18 -8
  174. data/spec/whois/record/parser/responses/whois.cnnic.cn/property_status_ok_spec.rb +3 -3
  175. data/spec/whois/record/parser/responses/whois.cnnic.cn/status_available_spec.rb +17 -17
  176. data/spec/whois/record/parser/responses/whois.cnnic.cn/status_registered_spec.rb +17 -17
  177. data/spec/whois/record/parser/responses/whois.cnnic.cn/status_reserved_spec.rb +4 -4
  178. data/spec/whois/record/parser/responses/whois.co.ca/status_available_spec.rb +8 -8
  179. data/spec/whois/record/parser/responses/whois.co.ca/status_registered_spec.rb +8 -8
  180. data/spec/whois/record/parser/responses/whois.co.ca/status_reserved_spec.rb +4 -4
  181. data/spec/whois/record/parser/responses/whois.co.pl/status_available_spec.rb +16 -16
  182. data/spec/whois/record/parser/responses/whois.co.pl/status_registered_spec.rb +16 -16
  183. data/spec/whois/record/parser/responses/whois.co.ug/status_available_spec.rb +7 -7
  184. data/spec/whois/record/parser/responses/whois.co.ug/status_registered_spec.rb +7 -7
  185. data/spec/whois/record/parser/responses/whois.coza.net.za/status_available_spec.rb +16 -16
  186. data/spec/whois/record/parser/responses/whois.coza.net.za/status_registered_spec.rb +16 -16
  187. data/spec/whois/record/parser/responses/whois.crsnic.net/property_nameserver_no_nameserver_spec.rb +1 -1
  188. data/spec/whois/record/parser/responses/whois.crsnic.net/property_registrar_with_multiple_entries_spec.rb +1 -1
  189. data/spec/whois/record/parser/responses/whois.crsnic.net/status_available_spec.rb +13 -13
  190. data/spec/whois/record/parser/responses/whois.crsnic.net/status_registered_spec.rb +13 -13
  191. data/spec/whois/record/parser/responses/whois.denic.de/schema-1.10.0/status_available_spec.rb +14 -14
  192. data/spec/whois/record/parser/responses/whois.denic.de/schema-1.10.0/status_registered_spec.rb +14 -14
  193. data/spec/whois/record/parser/responses/whois.denic.de/schema-1.11.0/property_nameservers_with_ip_spec.rb +1 -1
  194. data/spec/whois/record/parser/responses/whois.denic.de/schema-1.11.0/status_available_spec.rb +14 -14
  195. data/spec/whois/record/parser/responses/whois.denic.de/schema-1.11.0/status_invalid_spec.rb +14 -14
  196. data/spec/whois/record/parser/responses/whois.denic.de/schema-1.11.0/status_registered_spec.rb +14 -14
  197. data/spec/whois/record/parser/responses/whois.denic.de/schema-2.0/property_nameservers_with_ip_spec.rb +1 -1
  198. data/spec/whois/record/parser/responses/whois.denic.de/schema-2.0/response_throttled_spec.rb +1 -1
  199. data/spec/whois/record/parser/responses/whois.denic.de/schema-2.0/status_available_spec.rb +14 -14
  200. data/spec/whois/record/parser/responses/whois.denic.de/schema-2.0/status_failed_ace_spec.rb +3 -3
  201. data/spec/whois/record/parser/responses/whois.denic.de/schema-2.0/status_failed_spec.rb +3 -3
  202. data/spec/whois/record/parser/responses/whois.denic.de/schema-2.0/status_invalid_spec.rb +14 -14
  203. data/spec/whois/record/parser/responses/whois.denic.de/schema-2.0/status_registered_spec.rb +15 -15
  204. data/spec/whois/record/parser/responses/whois.dk-hostmaster.dk/status_available_spec.rb +7 -7
  205. data/spec/whois/record/parser/responses/whois.dk-hostmaster.dk/status_registered_spec.rb +7 -7
  206. data/spec/whois/record/parser/responses/whois.dns.be/property_nameservers_with_ip_spec.rb +1 -1
  207. data/spec/whois/record/parser/responses/whois.dns.be/response_throttled_spec.rb +29 -0
  208. data/spec/whois/record/parser/responses/whois.dns.be/status_available_spec.rb +7 -7
  209. data/spec/whois/record/parser/responses/whois.dns.be/status_registered_spec.rb +7 -7
  210. data/spec/whois/record/parser/responses/whois.dns.lu/property_nameservers_with_ip_spec.rb +1 -1
  211. data/spec/whois/record/parser/responses/whois.dns.lu/status_available_spec.rb +7 -7
  212. data/spec/whois/record/parser/responses/whois.dns.lu/status_registered_spec.rb +7 -7
  213. data/spec/whois/record/parser/responses/whois.dns.pl/property_nameservers_with_ip_spec.rb +1 -1
  214. data/spec/whois/record/parser/responses/whois.dns.pl/status_available_spec.rb +7 -7
  215. data/spec/whois/record/parser/responses/whois.dns.pl/status_registered_spec.rb +7 -7
  216. data/spec/whois/record/parser/responses/whois.dns.pt/status_available_spec.rb +7 -7
  217. data/spec/whois/record/parser/responses/whois.dns.pt/status_registered_spec.rb +7 -7
  218. data/spec/whois/record/parser/responses/whois.dns.pt/status_reserved_spec.rb +7 -7
  219. data/spec/whois/record/parser/responses/whois.domain-registry.nl/property_nameservers_with_ip_spec.rb +1 -1
  220. data/spec/whois/record/parser/responses/whois.domain-registry.nl/response_throttled_daily_spec.rb +1 -1
  221. data/spec/whois/record/parser/responses/whois.domain-registry.nl/response_throttled_spec.rb +1 -1
  222. data/spec/whois/record/parser/responses/whois.domain-registry.nl/response_unavailable_spec.rb +1 -1
  223. data/spec/whois/record/parser/responses/whois.domain-registry.nl/status_available_spec.rb +7 -7
  224. data/spec/whois/record/parser/responses/whois.domain-registry.nl/status_quarantine_spec.rb +7 -7
  225. data/spec/whois/record/parser/responses/whois.domain-registry.nl/status_registered_spec.rb +9 -9
  226. data/spec/whois/record/parser/responses/whois.domain.kg/status_available_spec.rb +7 -7
  227. data/spec/whois/record/parser/responses/whois.domain.kg/status_registered_spec.rb +7 -7
  228. data/spec/whois/record/parser/responses/whois.domainregistry.ie/property_nameservers_with_ip_spec.rb +1 -1
  229. data/spec/whois/record/parser/responses/whois.domainregistry.ie/status_available_spec.rb +7 -7
  230. data/spec/whois/record/parser/responses/whois.domainregistry.ie/status_registered_spec.rb +7 -7
  231. data/spec/whois/record/parser/responses/whois.domainregistry.my/status_available_spec.rb +7 -7
  232. data/spec/whois/record/parser/responses/whois.domainregistry.my/status_registered_spec.rb +7 -7
  233. data/spec/whois/record/parser/responses/whois.domreg.lt/property_nameservers_with_ip_spec.rb +1 -1
  234. data/spec/whois/record/parser/responses/whois.domreg.lt/status_available_spec.rb +7 -7
  235. data/spec/whois/record/parser/responses/whois.domreg.lt/status_registered_spec.rb +7 -7
  236. data/spec/whois/record/parser/responses/whois.dot.tk/status_available_spec.rb +7 -7
  237. data/spec/whois/record/parser/responses/whois.dot.tk/status_registered_spec.rb +7 -7
  238. data/spec/whois/record/parser/responses/whois.dotmobiregistry.net/status_available_spec.rb +7 -7
  239. data/spec/whois/record/parser/responses/whois.dotmobiregistry.net/status_registered_spec.rb +7 -7
  240. data/spec/whois/record/parser/responses/whois.educause.edu/status_available_spec.rb +7 -7
  241. data/spec/whois/record/parser/responses/whois.educause.edu/status_registered_spec.rb +7 -7
  242. data/spec/whois/record/parser/responses/whois.eenet.ee/status_available_spec.rb +7 -7
  243. data/spec/whois/record/parser/responses/whois.eenet.ee/status_registered_spec.rb +7 -7
  244. data/spec/whois/record/parser/responses/whois.eu.org/status_available_spec.rb +7 -7
  245. data/spec/whois/record/parser/responses/whois.eu.org/status_registered_spec.rb +7 -7
  246. data/spec/whois/record/parser/responses/whois.eu/property_nameservers_spec.rb +44 -0
  247. data/spec/whois/record/parser/responses/whois.eu/status_available_spec.rb +7 -7
  248. data/spec/whois/record/parser/responses/whois.eu/status_registered_spec.rb +7 -7
  249. data/spec/whois/record/parser/responses/whois.ficora.fi/status_available_spec.rb +7 -7
  250. data/spec/whois/record/parser/responses/whois.ficora.fi/status_registered_spec.rb +7 -7
  251. data/spec/whois/record/parser/responses/whois.gg/status_available_spec.rb +7 -7
  252. data/spec/whois/record/parser/responses/whois.gg/status_registered_spec.rb +7 -7
  253. data/spec/whois/record/parser/responses/whois.gov.za/status_available_spec.rb +7 -7
  254. data/spec/whois/record/parser/responses/whois.gov.za/status_registered_spec.rb +7 -7
  255. data/spec/whois/record/parser/responses/whois.hkirc.hk/status_available_spec.rb +7 -7
  256. data/spec/whois/record/parser/responses/whois.hkirc.hk/status_registered_spec.rb +7 -7
  257. data/spec/whois/record/parser/responses/whois.iam.net.ma/status_available_spec.rb +6 -6
  258. data/spec/whois/record/parser/responses/whois.iam.net.ma/status_registered_spec.rb +6 -6
  259. data/spec/whois/record/parser/responses/whois.iana.org/status_available_spec.rb +10 -10
  260. data/spec/whois/record/parser/responses/whois.iana.org/status_not_assigned_spec.rb +10 -10
  261. data/spec/whois/record/parser/responses/whois.iana.org/status_registered_spec.rb +10 -10
  262. data/spec/whois/record/parser/responses/whois.in.ua/status_available_spec.rb +7 -7
  263. data/spec/whois/record/parser/responses/whois.in.ua/status_registered_spec.rb +7 -7
  264. data/spec/whois/record/parser/responses/whois.isnic.is/status_available_spec.rb +7 -7
  265. data/spec/whois/record/parser/responses/whois.isnic.is/status_registered_spec.rb +7 -7
  266. data/spec/whois/record/parser/responses/whois.isoc.org.il/property_status_missing_spec.rb +3 -3
  267. data/spec/whois/record/parser/responses/whois.isoc.org.il/property_status_transfer_allowed_spec.rb +3 -3
  268. data/spec/whois/record/parser/responses/whois.isoc.org.il/property_status_transfer_locked_spec.rb +3 -3
  269. data/spec/whois/record/parser/responses/whois.isoc.org.il/status_available_spec.rb +7 -7
  270. data/spec/whois/record/parser/responses/whois.isoc.org.il/status_registered_spec.rb +7 -7
  271. data/spec/whois/record/parser/responses/whois.ja.net/ac.uk/status_available_spec.rb +7 -7
  272. data/spec/whois/record/parser/responses/whois.ja.net/ac.uk/status_registered_spec.rb +7 -7
  273. data/spec/whois/record/parser/responses/whois.ja.net/gov.uk/status_available_spec.rb +7 -7
  274. data/spec/whois/record/parser/responses/whois.ja.net/gov.uk/status_registered_spec.rb +7 -7
  275. data/spec/whois/record/parser/responses/whois.je/status_available_spec.rb +7 -7
  276. data/spec/whois/record/parser/responses/whois.je/status_registered_spec.rb +7 -7
  277. data/spec/whois/record/parser/responses/whois.jprs.jp/jp/property_created_on_and_expires_on_missing_spec.rb +1 -1
  278. data/spec/whois/record/parser/responses/whois.jprs.jp/jp/property_expires_on_missing_spec.rb +1 -1
  279. data/spec/whois/record/parser/responses/whois.jprs.jp/jp/property_updates_on_error_out-of-range_spec.rb +1 -1
  280. data/spec/whois/record/parser/responses/whois.jprs.jp/jp/status_available_spec.rb +7 -7
  281. data/spec/whois/record/parser/responses/whois.jprs.jp/jp/status_registered_spec.rb +7 -7
  282. data/spec/whois/record/parser/responses/whois.jprs.jp/jp/status_reserved_spec.rb +7 -7
  283. data/spec/whois/record/parser/responses/whois.jprs.jp/ne.jp/status_available_spec.rb +7 -7
  284. data/spec/whois/record/parser/responses/whois.jprs.jp/ne.jp/status_registered_spec.rb +7 -7
  285. data/spec/whois/record/parser/responses/whois.kenic.or.ke/status_available_spec.rb +7 -7
  286. data/spec/whois/record/parser/responses/whois.kenic.or.ke/status_registered_spec.rb +7 -7
  287. data/spec/whois/record/parser/responses/whois.kr/property_nameservers_with_ip_spec.rb +1 -1
  288. data/spec/whois/record/parser/responses/whois.kr/status_available_spec.rb +7 -7
  289. data/spec/whois/record/parser/responses/whois.kr/status_registered_spec.rb +7 -7
  290. data/spec/whois/record/parser/responses/whois.markmonitor.com/status_registered_spec.rb +11 -11
  291. data/spec/whois/record/parser/responses/whois.meregistry.net/property_nameservers_is_missing_spec.rb +1 -1
  292. data/spec/whois/record/parser/responses/whois.meregistry.net/property_updated_on_is_blank_spec.rb +29 -0
  293. data/spec/whois/record/parser/responses/whois.meregistry.net/status_available_spec.rb +7 -7
  294. data/spec/whois/record/parser/responses/whois.meregistry.net/status_registered_spec.rb +7 -7
  295. data/spec/whois/record/parser/responses/whois.museum/status_available_spec.rb +7 -7
  296. data/spec/whois/record/parser/responses/whois.museum/status_registered_spec.rb +8 -8
  297. data/spec/whois/record/parser/responses/whois.na-nic.com.na/status_available_spec.rb +7 -7
  298. data/spec/whois/record/parser/responses/whois.na-nic.com.na/status_registered_spec.rb +7 -7
  299. data/spec/whois/record/parser/responses/whois.net.ua/property_nameservers_uppercase_spec.rb +1 -1
  300. data/spec/whois/record/parser/responses/whois.net.ua/status_available_spec.rb +7 -7
  301. data/spec/whois/record/parser/responses/whois.net.ua/status_registered_spec.rb +7 -7
  302. data/spec/whois/record/parser/responses/whois.netcom.cm/status_available_spec.rb +7 -7
  303. data/spec/whois/record/parser/responses/whois.netcom.cm/status_registered_spec.rb +7 -7
  304. data/spec/whois/record/parser/responses/whois.nic-se.se/property_datetime_is_dash_spec.rb +3 -3
  305. data/spec/whois/record/parser/responses/whois.nic-se.se/property_nameservers_with_ip_spec.rb +1 -1
  306. data/spec/whois/record/parser/responses/whois.nic-se.se/status_available_spec.rb +6 -6
  307. data/spec/whois/record/parser/responses/whois.nic-se.se/status_inactive_spec.rb +3 -3
  308. data/spec/whois/record/parser/responses/whois.nic-se.se/status_registered_spec.rb +6 -6
  309. data/spec/whois/record/parser/responses/whois.nic.ac/status_available_spec.rb +16 -16
  310. data/spec/whois/record/parser/responses/whois.nic.ac/status_registered_spec.rb +16 -16
  311. data/spec/whois/record/parser/responses/whois.nic.af/status_available_spec.rb +7 -7
  312. data/spec/whois/record/parser/responses/whois.nic.af/status_registered_spec.rb +7 -7
  313. data/spec/whois/record/parser/responses/whois.nic.ag/status_available_spec.rb +7 -7
  314. data/spec/whois/record/parser/responses/whois.nic.ag/status_registered_spec.rb +7 -7
  315. data/spec/whois/record/parser/responses/whois.nic.am/status_available_spec.rb +7 -7
  316. data/spec/whois/record/parser/responses/whois.nic.am/status_registered_spec.rb +7 -7
  317. data/spec/whois/record/parser/responses/whois.nic.as/status_available_spec.rb +7 -7
  318. data/spec/whois/record/parser/responses/whois.nic.as/status_registered_spec.rb +7 -7
  319. data/spec/whois/record/parser/responses/whois.nic.asia/property_status_client_delete_prohibited_spec.rb +39 -0
  320. data/spec/whois/record/parser/responses/whois.nic.asia/property_status_client_transfer_prohibited_spec.rb +39 -0
  321. data/spec/whois/record/parser/responses/whois.nic.asia/status_available_spec.rb +7 -7
  322. data/spec/whois/record/parser/responses/whois.nic.asia/status_registered_spec.rb +7 -7
  323. data/spec/whois/record/parser/responses/whois.nic.at/status_available_spec.rb +7 -7
  324. data/spec/whois/record/parser/responses/whois.nic.at/status_registered_spec.rb +7 -7
  325. data/spec/whois/record/parser/responses/whois.nic.bo/status_available_spec.rb +9 -9
  326. data/spec/whois/record/parser/responses/whois.nic.bo/status_registered_spec.rb +9 -9
  327. data/spec/whois/record/parser/responses/whois.nic.cc/property_nameserver_no_nameserver_spec.rb +1 -1
  328. data/spec/whois/record/parser/responses/whois.nic.cc/status_available_spec.rb +13 -13
  329. data/spec/whois/record/parser/responses/whois.nic.cc/status_registered_spec.rb +13 -13
  330. data/spec/whois/record/parser/responses/whois.nic.cd/status_available_spec.rb +7 -7
  331. data/spec/whois/record/parser/responses/whois.nic.cd/status_registered_spec.rb +7 -7
  332. data/spec/whois/record/parser/responses/whois.nic.ch/property_nameservers_with_ip_spec.rb +1 -1
  333. data/spec/whois/record/parser/responses/whois.nic.ch/status_available_spec.rb +7 -7
  334. data/spec/whois/record/parser/responses/whois.nic.ch/status_registered_spec.rb +7 -7
  335. data/spec/whois/record/parser/responses/whois.nic.ci/status_available_spec.rb +7 -7
  336. data/spec/whois/record/parser/responses/whois.nic.ci/status_registered_spec.rb +7 -7
  337. data/spec/whois/record/parser/responses/whois.nic.ck/status_available_spec.rb +7 -7
  338. data/spec/whois/record/parser/responses/whois.nic.ck/status_registered_spec.rb +7 -7
  339. data/spec/whois/record/parser/responses/whois.nic.cl/status_available_spec.rb +6 -6
  340. data/spec/whois/record/parser/responses/whois.nic.cl/status_registered_spec.rb +6 -6
  341. data/spec/whois/record/parser/responses/whois.nic.co/status_available_spec.rb +7 -7
  342. data/spec/whois/record/parser/responses/whois.nic.co/status_registered_spec.rb +7 -7
  343. data/spec/whois/record/parser/responses/whois.nic.coop/status_available_spec.rb +7 -7
  344. data/spec/whois/record/parser/responses/whois.nic.coop/status_registered_spec.rb +7 -7
  345. data/spec/whois/record/parser/responses/whois.nic.cx/status_available_spec.rb +7 -7
  346. data/spec/whois/record/parser/responses/whois.nic.cx/status_registered_spec.rb +7 -7
  347. data/spec/whois/record/parser/responses/whois.nic.cz/property_nameservers_with_ip_spec.rb +1 -1
  348. data/spec/whois/record/parser/responses/whois.nic.cz/property_status_expired_spec.rb +3 -3
  349. data/spec/whois/record/parser/responses/whois.nic.cz/property_status_missing_spec.rb +3 -3
  350. data/spec/whois/record/parser/responses/whois.nic.cz/property_status_paid_spec.rb +3 -3
  351. data/spec/whois/record/parser/responses/whois.nic.cz/property_status_update_prohibited_spec.rb +39 -0
  352. data/spec/whois/record/parser/responses/whois.nic.cz/status_available_spec.rb +7 -7
  353. data/spec/whois/record/parser/responses/whois.nic.cz/status_registered_spec.rb +7 -7
  354. data/spec/whois/record/parser/responses/whois.nic.dz/status_available_spec.rb +7 -7
  355. data/spec/whois/record/parser/responses/whois.nic.dz/status_registered_spec.rb +7 -7
  356. data/spec/whois/record/parser/responses/whois.nic.ec/status_available_spec.rb +7 -7
  357. data/spec/whois/record/parser/responses/whois.nic.ec/status_registered_spec.rb +7 -7
  358. data/spec/whois/record/parser/responses/whois.nic.fr/fr/property_nameservers_spec.rb +1 -1
  359. data/spec/whois/record/parser/responses/whois.nic.fr/fr/property_nameservers_with_ipv4_and_some_ipv6_spec.rb +1 -1
  360. data/spec/whois/record/parser/responses/whois.nic.fr/fr/property_status_missing_spec.rb +3 -3
  361. data/spec/whois/record/parser/responses/whois.nic.fr/fr/property_status_redemption_spec.rb +3 -3
  362. data/spec/whois/record/parser/responses/whois.nic.fr/fr/property_status_registered_spec.rb +3 -3
  363. data/spec/whois/record/parser/responses/whois.nic.fr/fr/status_available_spec.rb +7 -7
  364. data/spec/whois/record/parser/responses/whois.nic.fr/fr/status_registered_spec.rb +7 -7
  365. data/spec/whois/record/parser/responses/whois.nic.fr/pm/property_nameservers_with_ipv4_and_ipv6_spec.rb +1 -1
  366. data/spec/whois/record/parser/responses/whois.nic.fr/pm/status_available_spec.rb +7 -7
  367. data/spec/whois/record/parser/responses/whois.nic.fr/pm/status_registered_spec.rb +7 -7
  368. data/spec/whois/record/parser/responses/whois.nic.fr/re/property_nameservers_with_ipv4_and_ipv6_spec.rb +1 -1
  369. data/spec/whois/record/parser/responses/whois.nic.fr/re/status_available_spec.rb +7 -7
  370. data/spec/whois/record/parser/responses/whois.nic.fr/re/status_registered_spec.rb +7 -7
  371. data/spec/whois/record/parser/responses/whois.nic.fr/tf/property_status_frozen_spec.rb +3 -3
  372. data/spec/whois/record/parser/responses/whois.nic.fr/tf/status_available_spec.rb +7 -7
  373. data/spec/whois/record/parser/responses/whois.nic.fr/tf/status_registered_spec.rb +7 -7
  374. data/spec/whois/record/parser/responses/whois.nic.fr/wf/status_available_spec.rb +7 -7
  375. data/spec/whois/record/parser/responses/whois.nic.fr/wf/status_registered_spec.rb +7 -7
  376. data/spec/whois/record/parser/responses/whois.nic.fr/yt/status_available_spec.rb +7 -7
  377. data/spec/whois/record/parser/responses/whois.nic.fr/yt/status_registered_spec.rb +7 -7
  378. data/spec/whois/record/parser/responses/whois.nic.gl/status_available_spec.rb +7 -7
  379. data/spec/whois/record/parser/responses/whois.nic.gl/status_registered_spec.rb +7 -7
  380. data/spec/whois/record/parser/responses/whois.nic.gov/status_available_spec.rb +7 -7
  381. data/spec/whois/record/parser/responses/whois.nic.gov/status_registered_spec.rb +7 -7
  382. data/spec/whois/record/parser/responses/whois.nic.gs/status_available_spec.rb +7 -7
  383. data/spec/whois/record/parser/responses/whois.nic.gs/status_registered_spec.rb +7 -7
  384. data/spec/whois/record/parser/responses/whois.nic.ht/status_available_spec.rb +7 -7
  385. data/spec/whois/record/parser/responses/whois.nic.ht/status_registered_spec.rb +7 -7
  386. data/spec/whois/record/parser/responses/whois.nic.hu/schema-1.99/property_contact_company_spec.rb +1 -1
  387. data/spec/whois/record/parser/responses/whois.nic.hu/schema-1.99/property_contact_private_person_spec.rb +1 -1
  388. data/spec/whois/record/parser/responses/whois.nic.hu/schema-1.99/property_contact_without_address_spec.rb +1 -1
  389. data/spec/whois/record/parser/responses/whois.nic.hu/schema-1.99/status_available_spec.rb +16 -16
  390. data/spec/whois/record/parser/responses/whois.nic.hu/schema-1.99/status_in_progress_spec.rb +15 -15
  391. data/spec/whois/record/parser/responses/whois.nic.hu/schema-1.99/status_registered_spec.rb +16 -16
  392. data/spec/whois/record/parser/responses/whois.nic.hu/schema-current/status_available_spec.rb +14 -14
  393. data/spec/whois/record/parser/responses/whois.nic.hu/schema-current/status_registered_spec.rb +14 -14
  394. data/spec/whois/record/parser/responses/whois.nic.im/status_available_spec.rb +7 -7
  395. data/spec/whois/record/parser/responses/whois.nic.im/status_registered_spec.rb +7 -7
  396. data/spec/whois/record/parser/responses/whois.nic.io/status_available_spec.rb +16 -16
  397. data/spec/whois/record/parser/responses/whois.nic.io/status_registered_spec.rb +16 -16
  398. data/spec/whois/record/parser/responses/whois.nic.ir/status_available_spec.rb +7 -7
  399. data/spec/whois/record/parser/responses/whois.nic.ir/status_registered_spec.rb +7 -7
  400. data/spec/whois/record/parser/responses/whois.nic.it/property_contact_province_spec.rb +1 -1
  401. data/spec/whois/record/parser/responses/whois.nic.it/property_contact_with_company_in_address_spec.rb +1 -1
  402. data/spec/whois/record/parser/responses/whois.nic.it/property_contact_with_organization_spec.rb +1 -1
  403. data/spec/whois/record/parser/responses/whois.nic.it/property_status_active_spec.rb +3 -3
  404. data/spec/whois/record/parser/responses/whois.nic.it/property_status_available_spec.rb +3 -3
  405. data/spec/whois/record/parser/responses/whois.nic.it/property_status_client_spec.rb +3 -3
  406. data/spec/whois/record/parser/responses/whois.nic.it/property_status_graceperiod_spec.rb +3 -3
  407. data/spec/whois/record/parser/responses/whois.nic.it/property_status_inactive_noregistrar_spec.rb +3 -3
  408. data/spec/whois/record/parser/responses/whois.nic.it/property_status_no_provider_spec.rb +39 -0
  409. data/spec/whois/record/parser/responses/whois.nic.it/property_status_ok_autorenew_spec.rb +3 -3
  410. data/spec/whois/record/parser/responses/whois.nic.it/property_status_ok_spec.rb +3 -3
  411. data/spec/whois/record/parser/responses/whois.nic.it/{property_status_pendingdelete_spec.rb → property_status_pendingdelete_pendingdelete_spec.rb} +7 -7
  412. data/spec/whois/record/parser/responses/whois.nic.it/property_status_pendingdelete_redemptionperiod_spec.rb +39 -0
  413. data/spec/whois/record/parser/responses/whois.nic.it/property_status_pendingtransfer_spec.rb +3 -3
  414. data/spec/whois/record/parser/responses/whois.nic.it/property_status_pendingupdate_spec.rb +3 -3
  415. data/spec/whois/record/parser/responses/whois.nic.it/property_status_redemption_no_provider_spec.rb +39 -0
  416. data/spec/whois/record/parser/responses/whois.nic.it/property_status_unassignable_spec.rb +3 -3
  417. data/spec/whois/record/parser/responses/whois.nic.it/property_technical_contact_spec.rb +1 -1
  418. data/spec/whois/record/parser/responses/whois.nic.it/response_unavailable_spec.rb +1 -1
  419. data/spec/whois/record/parser/responses/whois.nic.it/status_available_spec.rb +17 -17
  420. data/spec/whois/record/parser/responses/whois.nic.it/status_registered_spec.rb +17 -17
  421. data/spec/whois/record/parser/responses/whois.nic.ki/status_available_spec.rb +7 -7
  422. data/spec/whois/record/parser/responses/whois.nic.ki/status_registered_spec.rb +7 -7
  423. data/spec/whois/record/parser/responses/whois.nic.kz/property_status_missing_spec.rb +3 -3
  424. data/spec/whois/record/parser/responses/whois.nic.kz/property_status_multiple_spec.rb +3 -3
  425. data/spec/whois/record/parser/responses/whois.nic.kz/property_status_ok_spec.rb +3 -3
  426. data/spec/whois/record/parser/responses/whois.nic.kz/status_available_spec.rb +7 -7
  427. data/spec/whois/record/parser/responses/whois.nic.kz/status_registered_spec.rb +7 -7
  428. data/spec/whois/record/parser/responses/whois.nic.la/status_available_spec.rb +7 -7
  429. data/spec/whois/record/parser/responses/whois.nic.la/status_registered_spec.rb +7 -7
  430. data/spec/whois/record/parser/responses/whois.nic.li/status_available_spec.rb +7 -7
  431. data/spec/whois/record/parser/responses/whois.nic.li/status_registered_spec.rb +7 -7
  432. data/spec/whois/record/parser/responses/whois.nic.lv/status_available_spec.rb +7 -7
  433. data/spec/whois/record/parser/responses/whois.nic.lv/status_registered_spec.rb +7 -7
  434. data/spec/whois/record/parser/responses/whois.nic.ly/status_available_spec.rb +7 -7
  435. data/spec/whois/record/parser/responses/whois.nic.ly/status_registered_spec.rb +7 -7
  436. data/spec/whois/record/parser/responses/whois.nic.md/status_available_spec.rb +16 -16
  437. data/spec/whois/record/parser/responses/whois.nic.md/status_registered_spec.rb +16 -16
  438. data/spec/whois/record/parser/responses/whois.nic.mg/status_available_spec.rb +7 -7
  439. data/spec/whois/record/parser/responses/whois.nic.mg/status_registered_spec.rb +7 -7
  440. data/spec/whois/record/parser/responses/whois.nic.ms/status_available_spec.rb +7 -7
  441. data/spec/whois/record/parser/responses/whois.nic.ms/status_registered_spec.rb +7 -7
  442. data/spec/whois/record/parser/responses/whois.nic.mu/status_available_spec.rb +7 -7
  443. data/spec/whois/record/parser/responses/whois.nic.mu/status_registered_spec.rb +7 -7
  444. data/spec/whois/record/parser/responses/whois.nic.mx/property_nameservers_with_ip_spec.rb +1 -1
  445. data/spec/whois/record/parser/responses/whois.nic.mx/status_available_spec.rb +6 -6
  446. data/spec/whois/record/parser/responses/whois.nic.mx/status_registered_spec.rb +6 -6
  447. data/spec/whois/record/parser/responses/whois.nic.name/status_available_spec.rb +7 -7
  448. data/spec/whois/record/parser/responses/whois.nic.name/status_registered_spec.rb +7 -7
  449. data/spec/whois/record/parser/responses/whois.nic.net.nf/status_available_spec.rb +7 -7
  450. data/spec/whois/record/parser/responses/whois.nic.net.nf/status_registered_spec.rb +7 -7
  451. data/spec/whois/record/parser/responses/whois.nic.net.ng/status_available_spec.rb +7 -7
  452. data/spec/whois/record/parser/responses/whois.nic.net.ng/status_registered_spec.rb +7 -7
  453. data/spec/whois/record/parser/responses/whois.nic.net.sa/status_available_spec.rb +7 -7
  454. data/spec/whois/record/parser/responses/whois.nic.net.sa/status_registered_spec.rb +7 -7
  455. data/spec/whois/record/parser/responses/whois.nic.nu/status_available_spec.rb +7 -7
  456. data/spec/whois/record/parser/responses/whois.nic.nu/status_registered_spec.rb +7 -7
  457. data/spec/whois/record/parser/responses/whois.nic.org.uy/status_available_spec.rb +7 -7
  458. data/spec/whois/record/parser/responses/whois.nic.org.uy/status_registered_spec.rb +7 -7
  459. data/spec/whois/record/parser/responses/whois.nic.pr/status_available_spec.rb +7 -7
  460. data/spec/whois/record/parser/responses/whois.nic.pr/status_registered_spec.rb +7 -7
  461. data/spec/whois/record/parser/responses/whois.nic.priv.at/status_available_spec.rb +7 -7
  462. data/spec/whois/record/parser/responses/whois.nic.priv.at/status_registered_spec.rb +7 -7
  463. data/spec/whois/record/parser/responses/whois.nic.sh/status_available_spec.rb +16 -16
  464. data/spec/whois/record/parser/responses/whois.nic.sh/status_registered_spec.rb +16 -16
  465. data/spec/whois/record/parser/responses/whois.nic.sl/status_available_spec.rb +7 -7
  466. data/spec/whois/record/parser/responses/whois.nic.sl/status_registered_spec.rb +7 -7
  467. data/spec/whois/record/parser/responses/{whois.ripe.net/sm → whois.nic.sm}/status_available_spec.rb +13 -13
  468. data/spec/whois/record/parser/responses/{whois.ripe.net/sm → whois.nic.sm}/status_registered_spec.rb +15 -13
  469. data/spec/whois/record/parser/responses/whois.nic.sn/status_available_spec.rb +16 -16
  470. data/spec/whois/record/parser/responses/whois.nic.sn/status_registered_spec.rb +16 -16
  471. data/spec/whois/record/parser/responses/whois.nic.so/status_available_spec.rb +7 -7
  472. data/spec/whois/record/parser/responses/whois.nic.so/status_registered_spec.rb +7 -7
  473. data/spec/whois/record/parser/responses/whois.nic.st/status_available_spec.rb +7 -7
  474. data/spec/whois/record/parser/responses/whois.nic.st/status_registered_spec.rb +7 -7
  475. data/spec/whois/record/parser/responses/whois.nic.tel/status_available_spec.rb +7 -7
  476. data/spec/whois/record/parser/responses/whois.nic.tel/status_registered_spec.rb +7 -7
  477. data/spec/whois/record/parser/responses/whois.nic.tl/status_available_spec.rb +7 -7
  478. data/spec/whois/record/parser/responses/whois.nic.tl/status_registered_spec.rb +7 -7
  479. data/spec/whois/record/parser/responses/whois.nic.tm/status_available_spec.rb +16 -16
  480. data/spec/whois/record/parser/responses/whois.nic.tm/status_registered_spec.rb +16 -16
  481. data/spec/whois/record/parser/responses/whois.nic.tr/property_nameservers_with_ip_spec.rb +1 -1
  482. data/spec/whois/record/parser/responses/whois.nic.tr/property_nameservers_with_trailing_space_spec.rb +1 -1
  483. data/spec/whois/record/parser/responses/whois.nic.tr/status_available_spec.rb +7 -7
  484. data/spec/whois/record/parser/responses/whois.nic.tr/status_registered_spec.rb +7 -7
  485. data/spec/whois/record/parser/responses/whois.nic.travel/status_available_spec.rb +7 -7
  486. data/spec/whois/record/parser/responses/whois.nic.travel/status_registered_spec.rb +7 -7
  487. data/spec/whois/record/parser/responses/whois.nic.tv/property_nameserver_no_nameserver_spec.rb +1 -1
  488. data/spec/whois/record/parser/responses/whois.nic.tv/status_available_spec.rb +13 -13
  489. data/spec/whois/record/parser/responses/whois.nic.tv/status_registered_spec.rb +13 -13
  490. data/spec/whois/record/parser/responses/whois.nic.uk/property_nameservers_with_ip_spec.rb +1 -1
  491. data/spec/whois/record/parser/responses/whois.nic.uk/property_registrar_without_trading_name_spec.rb +1 -1
  492. data/spec/whois/record/parser/responses/whois.nic.uk/property_status_missing_spec.rb +3 -3
  493. data/spec/whois/record/parser/responses/whois.nic.uk/property_status_processing_registration_spec.rb +3 -3
  494. data/spec/whois/record/parser/responses/whois.nic.uk/property_status_processing_renewal_spec.rb +3 -3
  495. data/spec/whois/record/parser/responses/whois.nic.uk/property_status_registered_spec.rb +3 -3
  496. data/spec/whois/record/parser/responses/whois.nic.uk/property_status_suspended_spec.rb +3 -3
  497. data/spec/whois/record/parser/responses/whois.nic.uk/status_available_spec.rb +9 -9
  498. data/spec/whois/record/parser/responses/whois.nic.uk/status_invalid_spec.rb +7 -2
  499. data/spec/whois/record/parser/responses/whois.nic.uk/status_registered_spec.rb +10 -10
  500. data/spec/whois/record/parser/responses/whois.nic.uk/status_suspended_spec.rb +8 -8
  501. data/spec/whois/record/parser/responses/whois.nic.us/status_available_spec.rb +7 -7
  502. data/spec/whois/record/parser/responses/whois.nic.us/status_registered_spec.rb +7 -7
  503. data/spec/whois/record/parser/responses/whois.nic.ve/property_expires_on_missing_spec.rb +1 -1
  504. data/spec/whois/record/parser/responses/whois.nic.ve/property_nameservers_missing_spec.rb +1 -1
  505. data/spec/whois/record/parser/responses/whois.nic.ve/property_nameservers_spec.rb +1 -1
  506. data/spec/whois/record/parser/responses/whois.nic.ve/property_status_activo_spec.rb +3 -3
  507. data/spec/whois/record/parser/responses/whois.nic.ve/property_status_missing_spec.rb +3 -3
  508. data/spec/whois/record/parser/responses/whois.nic.ve/property_status_suspendido_spec.rb +3 -3
  509. data/spec/whois/record/parser/responses/whois.nic.ve/property_updated_on_blank_spec.rb +1 -1
  510. data/spec/whois/record/parser/responses/whois.nic.ve/property_updated_on_spec.rb +1 -1
  511. data/spec/whois/record/parser/responses/whois.nic.ve/status_available_spec.rb +7 -7
  512. data/spec/whois/record/parser/responses/whois.nic.ve/status_registered_spec.rb +7 -7
  513. data/spec/whois/record/parser/responses/whois.nic.ve/status_suspended_spec.rb +7 -7
  514. data/spec/whois/record/parser/responses/whois.nic.xxx/status_available_spec.rb +108 -0
  515. data/spec/whois/record/parser/responses/whois.nic.xxx/status_registered_spec.rb +157 -0
  516. data/spec/whois/record/parser/responses/whois.norid.no/status_available_spec.rb +6 -6
  517. data/spec/whois/record/parser/responses/whois.norid.no/status_registered_spec.rb +6 -6
  518. data/spec/whois/record/parser/responses/whois.org.za/status_available_spec.rb +16 -16
  519. data/spec/whois/record/parser/responses/whois.org.za/status_registered_spec.rb +16 -16
  520. data/spec/whois/record/parser/responses/whois.pandi.or.id/status_available_spec.rb +7 -7
  521. data/spec/whois/record/parser/responses/whois.pandi.or.id/status_registered_spec.rb +7 -7
  522. data/spec/whois/record/parser/responses/whois.pnina.ps/property_nameservers_with_nodns_spec.rb +1 -1
  523. data/spec/whois/record/parser/responses/whois.pnina.ps/status_available_spec.rb +7 -7
  524. data/spec/whois/record/parser/responses/whois.pnina.ps/status_registered_spec.rb +7 -7
  525. data/spec/whois/record/parser/responses/whois.publicinterestregistry.net/response_throttled_spec.rb +1 -1
  526. data/spec/whois/record/parser/responses/whois.publicinterestregistry.net/status_available_spec.rb +14 -14
  527. data/spec/whois/record/parser/responses/whois.publicinterestregistry.net/status_registered_spec.rb +15 -15
  528. data/spec/whois/record/parser/responses/whois.register.bg/property_nameservers_with_ip_spec.rb +1 -1
  529. data/spec/whois/record/parser/responses/whois.register.bg/status_available_spec.rb +7 -7
  530. data/spec/whois/record/parser/responses/whois.register.bg/status_registered_spec.rb +7 -7
  531. data/spec/whois/record/parser/responses/whois.registro.br/status_available_limited_spec.rb +2 -2
  532. data/spec/whois/record/parser/responses/whois.registro.br/status_available_spec.rb +12 -11
  533. data/spec/whois/record/parser/responses/whois.registro.br/status_registered_limited_spec.rb +2 -2
  534. data/spec/whois/record/parser/responses/whois.registro.br/status_registered_spec.rb +19 -11
  535. data/spec/whois/record/parser/responses/whois.registry.gy/status_available_spec.rb +7 -7
  536. data/spec/whois/record/parser/responses/whois.registry.gy/status_registered_spec.rb +7 -7
  537. data/spec/whois/record/parser/responses/whois.registry.hm/status_available_spec.rb +7 -7
  538. data/spec/whois/record/parser/responses/whois.registry.hm/status_registered_spec.rb +7 -7
  539. data/spec/whois/record/parser/responses/whois.registry.in/property_status_missing_spec.rb +1 -1
  540. data/spec/whois/record/parser/responses/whois.registry.in/property_status_multiple_spec.rb +1 -1
  541. data/spec/whois/record/parser/responses/whois.registry.in/property_status_ok_spec.rb +1 -1
  542. data/spec/whois/record/parser/responses/whois.registry.in/status_available_spec.rb +8 -8
  543. data/spec/whois/record/parser/responses/whois.registry.in/status_registered_spec.rb +8 -8
  544. data/spec/whois/record/parser/responses/whois.registrypro.pro/status_available_spec.rb +7 -7
  545. data/spec/whois/record/parser/responses/whois.registrypro.pro/status_registered_spec.rb +7 -7
  546. data/spec/whois/record/parser/responses/whois.ripe.net/fo/status_available_spec.rb +7 -7
  547. data/spec/whois/record/parser/responses/whois.ripe.net/fo/status_registered_spec.rb +7 -7
  548. data/spec/whois/record/parser/responses/whois.ripe.net/gm/status_available_spec.rb +7 -7
  549. data/spec/whois/record/parser/responses/whois.ripe.net/gm/status_registered_spec.rb +7 -7
  550. data/spec/whois/record/parser/responses/whois.ripe.net/mc/status_available_spec.rb +7 -7
  551. data/spec/whois/record/parser/responses/whois.ripe.net/mc/status_registered_spec.rb +7 -7
  552. data/spec/whois/record/parser/responses/whois.ripe.net/va/status_available_spec.rb +7 -7
  553. data/spec/whois/record/parser/responses/whois.ripe.net/va/status_registered_spec.rb +7 -7
  554. data/spec/whois/record/parser/responses/whois.ripn.net/ru/property_nameservers_with_ip_spec.rb +1 -1
  555. data/spec/whois/record/parser/responses/whois.ripn.net/ru/status_available_spec.rb +11 -11
  556. data/spec/whois/record/parser/responses/whois.ripn.net/ru/status_registered_spec.rb +11 -11
  557. data/spec/whois/record/parser/responses/whois.ripn.net/su/status_available_spec.rb +11 -11
  558. data/spec/whois/record/parser/responses/whois.ripn.net/su/status_registered_spec.rb +11 -11
  559. data/spec/whois/record/parser/responses/whois.ripn.net/xn--p1ai/status_available_spec.rb +11 -11
  560. data/spec/whois/record/parser/responses/whois.ripn.net/xn--p1ai/status_registered_spec.rb +11 -11
  561. data/spec/whois/record/parser/responses/whois.rotld.ro/status_available_spec.rb +7 -7
  562. data/spec/whois/record/parser/responses/whois.rotld.ro/status_registered_spec.rb +7 -7
  563. data/spec/whois/record/parser/responses/whois.samoanic.ws/status_available_spec.rb +7 -7
  564. data/spec/whois/record/parser/responses/whois.samoanic.ws/status_registered_spec.rb +7 -7
  565. data/spec/whois/record/parser/responses/whois.sgnic.sg/status_available_spec.rb +7 -7
  566. data/spec/whois/record/parser/responses/whois.sgnic.sg/status_registered_spec.rb +7 -7
  567. data/spec/whois/record/parser/responses/whois.sk-nic.sk/property_status_dom_dakt_spec.rb +3 -3
  568. data/spec/whois/record/parser/responses/whois.sk-nic.sk/property_status_dom_exp_spec.rb +39 -0
  569. data/spec/whois/record/parser/responses/whois.sk-nic.sk/property_status_dom_held_spec.rb +4 -4
  570. data/spec/whois/record/parser/responses/whois.sk-nic.sk/property_status_dom_lnot_spec.rb +39 -0
  571. data/spec/whois/record/parser/responses/whois.sk-nic.sk/property_status_dom_ok_spec.rb +3 -3
  572. data/spec/whois/record/parser/responses/whois.sk-nic.sk/property_status_dom_warn_spec.rb +39 -0
  573. data/spec/whois/record/parser/responses/whois.sk-nic.sk/status_available_spec.rb +7 -7
  574. data/spec/whois/record/parser/responses/whois.sk-nic.sk/status_registered_spec.rb +7 -7
  575. data/spec/whois/record/parser/responses/whois.srs.net.nz/status_available_spec.rb +7 -7
  576. data/spec/whois/record/parser/responses/whois.srs.net.nz/status_invalid_spec.rb +17 -7
  577. data/spec/whois/record/parser/responses/whois.srs.net.nz/status_registered_spec.rb +7 -7
  578. data/spec/whois/record/parser/responses/whois.thnic.co.th/status_available_spec.rb +7 -7
  579. data/spec/whois/record/parser/responses/whois.thnic.co.th/status_registered_spec.rb +7 -7
  580. data/spec/whois/record/parser/responses/whois.tld.ee/status_available_spec.rb +11 -11
  581. data/spec/whois/record/parser/responses/whois.tld.ee/status_expired_spec.rb +7 -7
  582. data/spec/whois/record/parser/responses/whois.tld.ee/status_registered_spec.rb +11 -11
  583. data/spec/whois/record/parser/responses/whois.tonic.to/response_incomplete_spec.rb +2 -2
  584. data/spec/whois/record/parser/responses/whois.tonic.to/status_available_spec.rb +17 -17
  585. data/spec/whois/record/parser/responses/whois.tonic.to/status_registered_spec.rb +17 -17
  586. data/spec/whois/record/parser/responses/whois.twnic.net.tw/status_available_spec.rb +7 -7
  587. data/spec/whois/record/parser/responses/whois.twnic.net.tw/status_registered_spec.rb +7 -7
  588. data/spec/whois/record/parser/responses/whois.tznic.or.tz/status_available_spec.rb +7 -7
  589. data/spec/whois/record/parser/responses/whois.tznic.or.tz/status_registered_spec.rb +7 -7
  590. data/spec/whois/record/parser/responses/whois.usp.ac.fj/status_available_spec.rb +7 -7
  591. data/spec/whois/record/parser/responses/whois.usp.ac.fj/status_registered_spec.rb +7 -7
  592. data/spec/whois/record/parser/responses/whois.za.net/status_available_spec.rb +7 -7
  593. data/spec/whois/record/parser/responses/whois.za.net/status_registered_spec.rb +7 -7
  594. data/spec/whois/record/parser/responses/whois.za.org/status_available_spec.rb +7 -7
  595. data/spec/whois/record/parser/responses/whois.za.org/status_registered_spec.rb +7 -7
  596. data/spec/whois/server/adapters/verisign_spec.rb +16 -5
  597. data/whois.gemspec +14 -11
  598. metadata +78 -21
  599. data/spec/fixtures/responses/whois.eu/property_nameservers_with_ip.expected +0 -9
  600. data/spec/fixtures/responses/whois.ripe.net/sm/status_available.txt +0 -11
  601. data/spec/fixtures/responses/whois.ripe.net/sm/status_registered.txt +0 -60
  602. data/spec/whois/record/parser/responses/whois.eu/property_nameservers_with_ip_spec.rb +0 -36
data/CHANGELOG.rdoc CHANGED
@@ -1,12 +1,47 @@
1
1
  = Changelog
2
2
 
3
3
 
4
+ == Release 2.0.5
5
+
6
+ * SERVER: Updated .BI TLD definition.
7
+
8
+ * SERVER: Added .XXX TLD definition.
9
+
10
+ * SERVER: Updated .SM TLD definition (#97).
11
+
12
+ * NEW: Ability to detect whois.dns.be throttled responses.
13
+
14
+ * NEW: Added base whois.nic.sm parser (#97).
15
+
16
+ * FIXED: whois.meregistry.net parser raises `no time information in ""' when updated_at property is blank.
17
+
18
+ * FIXED: whois.nic.it parser must support `NO-PROVIDER' status.
19
+
20
+ * FIXED: whois.nic.it parser must support `pendingDelete / pendingDelete' status.
21
+
22
+ * FIXED: whois.nic.asia parser must support `CLIENT' status.
23
+
24
+ * FIXED: whois.nic.cz parser must support `Update prohibited' status.
25
+
26
+ * FIXED: The Verisign WHOIS adapter crashes in some rare circumstances
27
+ when the response from the Verisign database doesn't contain a
28
+ referral (#103)
29
+
30
+ * FIXED: whois.eu parser changed the format of the nameserver property (#99).
31
+
32
+ * FIXED: whois.nic.uk parser should return `:invalid' status when the domain is invalid.
33
+
34
+ * FIXED: whois.cira.ca parser must support `unavailable' status (#102).
35
+
36
+ * FIXED: whois.sk-nic.sk parser must support `DOM_EXP', `DOM_LNOT', `DOM_WARN' statuses.
37
+
38
+
4
39
  == Release 2.0.4
5
40
 
6
41
  * SERVER: Added the following new IDN TLDs:
7
42
  * .XN--90A3AC (.СРБ, Serbia) (#94)
8
43
 
9
- * FIXED: whois.nic.it parser must support pendinUpdate and pendingTransfer statuses.
44
+ * FIXED: whois.nic.it parser must support pendingUpdate and pendingTransfer statuses.
10
45
 
11
46
  * FIXED: whois.nic-se.se crashes in some cases where the modified: attribute is an invalid date.
12
47
 
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'rspec/core/rake_task'
3
- require 'rake/gempackagetask'
3
+ require 'rubygems/package_task'
4
4
  require 'yard'
5
5
  require 'yard/rake/yardoc_task'
6
6
 
@@ -50,14 +50,15 @@ spec = Gem::Specification.new do |s|
50
50
  # s.add_dependency("some_other_gem", "~> 0.1.0")
51
51
 
52
52
  # If your tests use any gems, include them here
53
- s.add_development_dependency("rspec", "~> 2.5.0")
54
- s.add_development_dependency("mocha")
55
- s.add_development_dependency("yard")
53
+ s.add_development_dependency "rake", "~> 0.9"
54
+ s.add_development_dependency "rspec", "~> 2.6.0"
55
+ s.add_development_dependency "mocha"
56
+ s.add_development_dependency "yard"
56
57
  end
57
58
 
58
59
  # This task actually builds the gem.
59
60
  # We also regenerate a static .gemspec file.
60
- Rake::GemPackageTask.new(spec) do |pkg|
61
+ Gem::PackageTask.new(spec) do |pkg|
61
62
  pkg.gem_spec = spec
62
63
  end
63
64
 
@@ -72,7 +72,7 @@ Whois::Server.define :tld, ".be", "whois.dns.be"
72
72
  Whois::Server.define :tld, ".bf", nil, { :adapter => Whois::Server::Adapters::None }
73
73
  Whois::Server.define :tld, ".bg", "whois.register.bg"
74
74
  Whois::Server.define :tld, ".bh", nil, { :adapter => Whois::Server::Adapters::None }
75
- Whois::Server.define :tld, ".bi", nil, { :web => "http://whois.nic.bi/register/whois.hei", :adapter => Whois::Server::Adapters::Web }
75
+ Whois::Server.define :tld, ".bi", nil, { :web => "https://whois.nic.bi/whois.php", :adapter => Whois::Server::Adapters::Web }
76
76
  Whois::Server.define :tld, ".bj", "whois.nic.bj"
77
77
  Whois::Server.define :tld, ".bm", nil, { :web => "http://207.228.133.14/cgi-bin/lansaweb?procfun+BMWHO+BMWHO2+WHO", :adapter => Whois::Server::Adapters::Web }
78
78
  Whois::Server.define :tld, ".bn", nil, { :adapter => Whois::Server::Adapters::None }
@@ -252,7 +252,7 @@ Whois::Server.define :tld, ".si", "whois.arnes.si"
252
252
  Whois::Server.define :tld, ".sj", nil, { :adapter => Whois::Server::Adapters::None }
253
253
  Whois::Server.define :tld, ".sk", "whois.sk-nic.sk"
254
254
  Whois::Server.define :tld, ".sl", "whois.nic.sl"
255
- Whois::Server.define :tld, ".sm", "whois.ripe.net"
255
+ Whois::Server.define :tld, ".sm", "whois.nic.sm"
256
256
  Whois::Server.define :tld, ".sn", "whois.nic.sn"
257
257
  Whois::Server.define :tld, ".so", "whois.nic.so"
258
258
  Whois::Server.define :tld, ".sr", nil, { :adapter => Whois::Server::Adapters::None }
@@ -315,6 +315,7 @@ Whois::Server.define :tld, ".org.za", "whois.org.za"
315
315
  Whois::Server.define :tld, ".za", nil, { :adapter => Whois::Server::Adapters::None }
316
316
  Whois::Server.define :tld, ".zm", nil, { :adapter => Whois::Server::Adapters::None }
317
317
  Whois::Server.define :tld, ".zw", nil, { :adapter => Whois::Server::Adapters::None }
318
+ Whois::Server.define :tld, ".xxx", "whois.nic.xxx"
318
319
  Whois::Server.define :tld, ".xn--3e0b707e", "whois.kr"
319
320
  Whois::Server.define :tld, ".xn--45brj9c", nil, { :adapter => Whois::Server::Adapters::None }
320
321
  Whois::Server.define :tld, ".xn--90a3ac", nil, { :adapter => Whois::Server::Adapters::None }
@@ -26,6 +26,7 @@ whois.dotmobyregistry.net
26
26
  whois.afilias.info
27
27
  whois.afilias-grs.info
28
28
  whois.aero
29
+ whois.nic.xxx
29
30
 
30
31
  whois.nic.af
31
32
  whois.nic.mu
@@ -45,7 +45,7 @@ module Whois
45
45
  property_not_supported :created_on
46
46
 
47
47
  property_supported :updated_on do
48
- if content_for_scanner =~ /Last Modified:\s+(.*)\n/
48
+ if content_for_scanner =~ /Last Modified:\s+(.+)\n/
49
49
  Time.parse($1)
50
50
  end
51
51
  end
@@ -36,6 +36,7 @@ module Whois
36
36
  when "auto-renew grace" then :registered
37
37
  when "to be released" then :registered
38
38
  when "available" then :available
39
+ when "unavailable" then :invalid
39
40
  # schema-1
40
41
  when "exist" then :registered
41
42
  when "avail" then :available
@@ -96,11 +97,11 @@ module Whois
96
97
 
97
98
  # Nameservers are listed in the following formats:
98
99
  #
99
- # ns1.google.com
100
- # ns2.google.com
100
+ # ns1.google.com
101
+ # ns2.google.com
101
102
  #
102
- # ns1.google.com 216.239.32.10
103
- # ns2.google.com 216.239.34.10
103
+ # ns1.google.com 216.239.32.10
104
+ # ns2.google.com 216.239.34.10
104
105
  #
105
106
  property_supported :nameservers do
106
107
  if content_for_scanner =~ /Name servers:\n((?:\s+([^\s]+)\s+([^\s]+)\n)+)/
@@ -114,6 +115,9 @@ module Whois
114
115
 
115
116
  # Attempts to detect and returns the
116
117
  # schema version.
118
+ #
119
+ # TODO: This is very empiric.
120
+ # Use the available status in combination with the creation date label.
117
121
  def schema
118
122
  @schema ||= if content_for_scanner =~ /^% \(c\) (.+?) Canadian Internet Registration Authority/
119
123
  case $1
@@ -124,6 +128,21 @@ module Whois
124
128
  @schema || Whois.bug!(ParserError, "Unable to detect schema version.")
125
129
  end
126
130
 
131
+ # NEWPROPERTY
132
+ def valid?
133
+ cached_properties_fetch(:valid?) do
134
+ !invalid?
135
+ end
136
+ end
137
+
138
+ # NEWPROPERTY
139
+ def invalid?
140
+ cached_properties_fetch(:invalid?) do
141
+ status == :invalid
142
+ end
143
+ end
144
+
145
+
127
146
  end
128
147
 
129
148
  end
@@ -72,6 +72,14 @@ module Whois
72
72
  end
73
73
  end
74
74
 
75
+
76
+ # Checks whether the response has been throttled.
77
+ #
78
+ # @return [Boolean]
79
+ def response_throttled?
80
+ !!(content_for_scanner =~ /^% Excessive querying/)
81
+ end
82
+
75
83
  end
76
84
 
77
85
  end
@@ -53,16 +53,16 @@ module Whois
53
53
 
54
54
  # Nameservers are listed in the following formats:
55
55
  #
56
- # Nameservers:
56
+ # Name servers:
57
57
  # dns1.servicemagic.eu
58
58
  # dns2.servicemagic.eu
59
59
  #
60
- # Nameservers:
60
+ # Name servers:
61
61
  # dns1.servicemagic.eu (91.121.133.61)
62
62
  # dns2.servicemagic.eu (91.121.103.77)
63
63
  #
64
64
  property_supported :nameservers do
65
- if content_for_scanner =~ /Nameservers:\s((.+\n)+)\n/
65
+ if content_for_scanner =~ /Name\sservers:\s((.+\n)+)\n/
66
66
  $1.split("\n").map do |line|
67
67
  if line.strip =~ /(.+) \((.+)\)/
68
68
  Record::Nameserver.new($1, $2)
@@ -41,19 +41,19 @@ module Whois
41
41
 
42
42
 
43
43
  property_supported :created_on do
44
- if content_for_scanner =~ /Domain Create Date:(.*)\n/
44
+ if content_for_scanner =~ /Domain Create Date:(.+)\n/
45
45
  Time.parse($1)
46
46
  end
47
47
  end
48
48
 
49
49
  property_supported :updated_on do
50
- if content_for_scanner =~ /Domain Last Updated Date:(.*)\n/
50
+ if content_for_scanner =~ /Domain Last Updated Date:(.+)\n/
51
51
  Time.parse($1)
52
52
  end
53
53
  end
54
54
 
55
55
  property_supported :expires_on do
56
- if content_for_scanner =~ /Domain Expiration Date:(.*)\n/
56
+ if content_for_scanner =~ /Domain Expiration Date:(.+)\n/
57
57
  Time.parse($1)
58
58
  end
59
59
  end
@@ -30,7 +30,8 @@ module Whois
30
30
  property_supported :status do
31
31
  if content_for_scanner =~ /Domain Status:(.+?)\n/
32
32
  case $1.downcase
33
- when "ok" then :registered
33
+ when /^ok/, /\bclient/
34
+ :registered
34
35
  else
35
36
  Whois.bug!(ParserError, "Unknown status `#{$1}'.")
36
37
  end
@@ -30,9 +30,11 @@ module Whois
30
30
  property_supported :status do
31
31
  if content_for_scanner =~ /status:\s+(.+)\n/
32
32
  case $1.downcase
33
- when "paid and in zone" then :registered
33
+ when "paid and in zone", "update prohibited"
34
+ :registered
34
35
  # NEWSTATUS
35
- when "expired" then :expired
36
+ when "expired"
37
+ :expired
36
38
  else
37
39
  Whois.bug!(ParserError, "Unknown status `#{$1}'.")
38
40
  end
@@ -45,10 +45,12 @@ module Whois
45
45
  case node("Status").to_s.downcase
46
46
  when /^ok/, "active", /\bclient/
47
47
  :registered
48
- when "grace-period", "pendingupdate", "pendingtransfer"
49
- :registered
50
- when "pendingdelete / redemptionperiod"
48
+ when "grace-period", "pendingupdate", "pendingtransfer", "no-provider"
51
49
  :registered
50
+ when "pendingdelete / redemptionperiod", /redemption\-/,
51
+ # The domain will be deleted in 5 days
52
+ "pendingdelete / pendingdelete"
53
+ :redemption
52
54
  when "unassignable"
53
55
  :reserved
54
56
  when "available"
@@ -61,11 +63,11 @@ module Whois
61
63
  end
62
64
 
63
65
  property_supported :available? do
64
- node("Status") == "AVAILABLE"
66
+ status == :available
65
67
  end
66
68
 
67
69
  property_supported :registered? do
68
- node("Status") != "UNASSIGNABLE" &&
70
+ status != :reserved &&
69
71
  !available?
70
72
  end
71
73
 
@@ -0,0 +1,78 @@
1
+ #--
2
+ # Ruby Whois
3
+ #
4
+ # An intelligent pure Ruby WHOIS client and parser.
5
+ #
6
+ # Copyright (c) 2009-2011 Simone Carletti <weppos@weppos.net>
7
+ #++
8
+
9
+
10
+ require 'whois/record/parser/base'
11
+
12
+
13
+ module Whois
14
+ class Record
15
+ class Parser
16
+
17
+ #
18
+ # = whois.nic.sm parser
19
+ #
20
+ # Parser for the whois.nic.sm server.
21
+ #
22
+ # NOTE: This parser is just a stub and provides only a few basic methods
23
+ # to check for domain availability and get domain status.
24
+ # Please consider to contribute implementing missing methods.
25
+ # See WhoisNicIt parser for an explanation of all available methods
26
+ # and examples.
27
+ #
28
+ class WhoisNicSm < Base
29
+
30
+ property_supported :status do
31
+ if content_for_scanner =~ /Status:\s+(.+?)\n/
32
+ case $1.downcase
33
+ when "active" then :registered
34
+ else
35
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
36
+ end
37
+ else
38
+ :available
39
+ end
40
+ end
41
+
42
+ property_supported :available? do
43
+ (content_for_scanner.strip == "No entries found.")
44
+ end
45
+
46
+ property_supported :registered? do
47
+ !available?
48
+ end
49
+
50
+
51
+ property_supported :created_on do
52
+ if content_for_scanner =~ /Registration date: (.+)\n/
53
+ Time.utc(*$1.split('/').reverse)
54
+ end
55
+ end
56
+
57
+ property_supported :updated_on do
58
+ if content_for_scanner =~ /Last Update: (.+)\n/
59
+ Time.utc(*$1.split('/').reverse)
60
+ end
61
+ end
62
+
63
+ property_not_supported :expires_on
64
+
65
+
66
+ property_supported :nameservers do
67
+ if content_for_scanner =~ /DNS Servers:\n((.*\n)+)(?:\n|\z)/
68
+ $1.split("\n").map do |name|
69
+ Record::Nameserver.new(name.strip)
70
+ end
71
+ end
72
+ end
73
+
74
+ end
75
+
76
+ end
77
+ end
78
+ end
@@ -42,6 +42,8 @@ module Whois
42
42
  else
43
43
  Whois.bug!(ParserError, "Unknown status `#{$1}'.")
44
44
  end
45
+ elsif invalid?
46
+ :invalid
45
47
  else
46
48
  :available
47
49
  end
@@ -0,0 +1,147 @@
1
+ #--
2
+ # Ruby Whois
3
+ #
4
+ # An intelligent pure Ruby WHOIS client and parser.
5
+ #
6
+ # Copyright (c) 2009-2011 Simone Carletti <weppos@weppos.net>
7
+ #++
8
+
9
+
10
+ require 'whois/record/parser/base'
11
+ require 'whois/record/parser/scanners/afilias'
12
+
13
+
14
+ module Whois
15
+ class Record
16
+ class Parser
17
+
18
+ #
19
+ # = whois.nic.xxx parser
20
+ #
21
+ # Parser for the whois.nic.xxx server.
22
+ #
23
+ class WhoisNicXxx < Base
24
+ include Features::Ast
25
+
26
+
27
+ property_supported :disclaimer do
28
+ node("property-disclaimer")
29
+ end
30
+
31
+
32
+ property_supported :domain do
33
+ node("Domain Name", &:downcase)
34
+ end
35
+
36
+ property_supported :domain_id do
37
+ node("Domain ID")
38
+ end
39
+
40
+
41
+ property_not_supported :referral_whois
42
+
43
+ property_not_supported :referral_url
44
+
45
+
46
+ property_supported :status do
47
+ node("Status") || []
48
+ end
49
+
50
+ property_supported :available? do
51
+ !!node("status-available")
52
+ end
53
+
54
+ property_supported :registered? do
55
+ !available?
56
+ end
57
+
58
+
59
+ property_supported :created_on do
60
+ node("Created On") do |value|
61
+ Time.parse(value)
62
+ end
63
+ end
64
+
65
+ property_supported :updated_on do
66
+ node("Last Updated On") do |value|
67
+ Time.parse(value)
68
+ end
69
+ end
70
+
71
+ property_supported :expires_on do
72
+ node("Expiration Date") do |value|
73
+ Time.parse(value)
74
+ end
75
+ end
76
+
77
+
78
+ property_supported :registrar do
79
+ node("Sponsoring Registrar") do |value|
80
+ value =~ /(.+?) \((.+?)\)/ || Whois.bug!("Unknown registrar format `#{value}'")
81
+ Record::Registrar.new(
82
+ :id => $2,
83
+ :name => $1,
84
+ :organization => $1
85
+ )
86
+ end
87
+ end
88
+
89
+ property_supported :registrant_contacts do
90
+ contact("Registrant", Whois::Record::Contact::TYPE_REGISTRANT)
91
+ end
92
+
93
+ property_supported :admin_contacts do
94
+ contact("Admin", Whois::Record::Contact::TYPE_ADMIN)
95
+ end
96
+
97
+ property_supported :technical_contacts do
98
+ contact("Tech", Whois::Record::Contact::TYPE_TECHNICAL)
99
+ end
100
+
101
+
102
+
103
+ property_supported :nameservers do
104
+ Array.wrap(node("Name Server")).reject(&:empty?).map do |name|
105
+ Nameserver.new(name.downcase)
106
+ end
107
+ end
108
+
109
+
110
+ # Initializes a new {Scanner} instance
111
+ # passing the {Whois::Record::Parser::Base#content_for_scanner}
112
+ # and calls +parse+ on it.
113
+ #
114
+ # @return [Hash]
115
+ def parse
116
+ Scanners::Afilias.new(content_for_scanner).parse
117
+ end
118
+
119
+
120
+ private
121
+
122
+ def contact(element, type)
123
+ node("#{element} ID") do
124
+ address = (1..3).map { |i| node("#{element} Street#{i}") }.delete_if(&:empty?).join(" ")
125
+
126
+ Record::Contact.new(
127
+ :type => type,
128
+ :id => node("#{element} ID"),
129
+ :name => node("#{element} Name"),
130
+ :organization => node("#{element} Organization"),
131
+ :address => address,
132
+ :city => node("#{element} City"),
133
+ :zip => node("#{element} Postal Code"),
134
+ :state => node("#{element} State/Province"),
135
+ :country_code => node("#{element} Country"),
136
+ :phone => node("#{element} Phone"),
137
+ :fax => node("#{element} FAX"),
138
+ :email => node("#{element} Email")
139
+ )
140
+ end
141
+ end
142
+
143
+ end
144
+
145
+ end
146
+ end
147
+ end