whois 2.5.1 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (308) hide show
  1. data/CHANGELOG.md +1537 -0
  2. data/README.md +212 -0
  3. data/Rakefile +3 -3
  4. data/lib/whois.rb +26 -1
  5. data/lib/whois/definitions/tlds.rb +3 -2
  6. data/lib/whois/record.rb +2 -2
  7. data/lib/whois/record/parser/base_afilias.rb +2 -2
  8. data/lib/whois/record/parser/base_cocca.rb +9 -1
  9. data/lib/whois/record/parser/jobswhois.verisign-grs.com.rb +6 -2
  10. data/lib/whois/record/parser/kero.yachay.pe.rb +1 -1
  11. data/lib/whois/record/parser/whois.adamsnames.tc.rb +1 -1
  12. data/lib/whois/record/parser/whois.aeda.net.ae.rb +1 -1
  13. data/lib/whois/record/parser/whois.ai.rb +1 -1
  14. data/lib/whois/record/parser/whois.arnes.si.rb +1 -1
  15. data/lib/whois/record/parser/whois.ati.tn.rb +133 -0
  16. data/lib/whois/record/parser/whois.biz.rb +1 -1
  17. data/lib/whois/record/parser/whois.cat.rb +1 -1
  18. data/lib/whois/record/parser/whois.cctld.uz.rb +4 -3
  19. data/lib/whois/record/parser/whois.centralnic.com.rb +1 -3
  20. data/lib/whois/record/parser/whois.cnnic.cn.rb +1 -1
  21. data/lib/whois/record/parser/whois.co.ca.rb +1 -1
  22. data/lib/whois/record/parser/whois.co.pl.rb +1 -1
  23. data/lib/whois/record/parser/whois.co.ug.rb +13 -12
  24. data/lib/whois/record/parser/whois.crsnic.net.rb +6 -2
  25. data/lib/whois/record/parser/whois.denic.de.rb +1 -1
  26. data/lib/whois/record/parser/whois.dk-hostmaster.dk.rb +1 -1
  27. data/lib/whois/record/parser/whois.dns.be.rb +2 -2
  28. data/lib/whois/record/parser/whois.dns.lu.rb +2 -2
  29. data/lib/whois/record/parser/whois.dns.pl.rb +2 -2
  30. data/lib/whois/record/parser/whois.dns.pt.rb +1 -1
  31. data/lib/whois/record/parser/whois.domain-registry.nl.rb +1 -1
  32. data/lib/whois/record/parser/whois.domain.kg.rb +1 -1
  33. data/lib/whois/record/parser/whois.domainregistry.my.rb +1 -1
  34. data/lib/whois/record/parser/whois.domreg.lt.rb +2 -2
  35. data/lib/whois/record/parser/whois.dot.tk.rb +1 -1
  36. data/lib/whois/record/parser/whois.dreamhost.com.rb +1 -1
  37. data/lib/whois/record/parser/whois.educause.edu.rb +128 -20
  38. data/lib/whois/record/parser/whois.eenet.ee.rb +1 -1
  39. data/lib/whois/record/parser/whois.eu.rb +2 -2
  40. data/lib/whois/record/parser/whois.fi.rb +1 -1
  41. data/lib/whois/record/parser/whois.gg.rb +1 -1
  42. data/lib/whois/record/parser/whois.godaddy.com.rb +1 -1
  43. data/lib/whois/record/parser/whois.hkirc.hk.rb +12 -13
  44. data/lib/whois/record/parser/whois.iana.org.rb +2 -1
  45. data/lib/whois/record/parser/whois.in.ua.rb +1 -1
  46. data/lib/whois/record/parser/whois.isnic.is.rb +1 -1
  47. data/lib/whois/record/parser/whois.isoc.org.il.rb +1 -1
  48. data/lib/whois/record/parser/whois.ja.net.rb +2 -1
  49. data/lib/whois/record/parser/whois.je.rb +1 -1
  50. data/lib/whois/record/parser/whois.jprs.jp.rb +1 -1
  51. data/lib/whois/record/parser/whois.kenic.or.ke.rb +1 -1
  52. data/lib/whois/record/parser/whois.markmonitor.com.rb +1 -1
  53. data/lib/whois/record/parser/whois.meregistry.net.rb +1 -1
  54. data/lib/whois/record/parser/whois.museum.rb +1 -1
  55. data/lib/whois/record/parser/whois.na-nic.com.na.rb +1 -0
  56. data/lib/whois/record/parser/whois.netcom.cm.rb +1 -1
  57. data/lib/whois/record/parser/whois.nic-se.se.rb +1 -1
  58. data/lib/whois/record/parser/whois.nic.am.rb +1 -1
  59. data/lib/whois/record/parser/whois.nic.as.rb +1 -1
  60. data/lib/whois/record/parser/whois.nic.asia.rb +1 -1
  61. data/lib/whois/record/parser/whois.nic.at.rb +1 -1
  62. data/lib/whois/record/parser/whois.nic.cc.rb +1 -1
  63. data/lib/whois/record/parser/whois.nic.cd.rb +1 -1
  64. data/lib/whois/record/parser/whois.nic.ch.rb +2 -2
  65. data/lib/whois/record/parser/whois.nic.ci.rb +1 -1
  66. data/lib/whois/record/parser/whois.nic.ck.rb +1 -1
  67. data/lib/whois/record/parser/whois.nic.cl.rb +1 -1
  68. data/lib/whois/record/parser/whois.nic.co.rb +1 -1
  69. data/lib/whois/record/parser/whois.nic.coop.rb +1 -1
  70. data/lib/whois/record/parser/whois.nic.cz.rb +11 -9
  71. data/lib/whois/record/parser/whois.nic.ec.rb +1 -1
  72. data/lib/whois/record/parser/whois.nic.gl.rb +2 -63
  73. data/lib/whois/record/parser/whois.nic.hu.rb +3 -3
  74. data/lib/whois/record/parser/whois.nic.im.rb +1 -1
  75. data/lib/whois/record/parser/whois.nic.ir.rb +1 -1
  76. data/lib/whois/record/parser/whois.nic.it.rb +4 -4
  77. data/lib/whois/record/parser/whois.nic.kz.rb +1 -1
  78. data/lib/whois/record/parser/whois.nic.li.rb +1 -1
  79. data/lib/whois/record/parser/whois.nic.lv.rb +1 -1
  80. data/lib/whois/record/parser/whois.nic.ly.rb +1 -1
  81. data/lib/whois/record/parser/whois.nic.md.rb +5 -5
  82. data/lib/whois/record/parser/whois.nic.mg.rb +1 -1
  83. data/lib/whois/record/parser/whois.nic.mx.rb +1 -1
  84. data/lib/whois/record/parser/whois.nic.net.sa.rb +1 -1
  85. data/lib/whois/record/parser/whois.nic.nu.rb +1 -1
  86. data/lib/whois/record/parser/whois.nic.org.uy.rb +1 -1
  87. data/lib/whois/record/parser/whois.nic.sl.rb +1 -1
  88. data/lib/whois/record/parser/whois.nic.sm.rb +1 -1
  89. data/lib/whois/record/parser/whois.nic.sn.rb +6 -3
  90. data/lib/whois/record/parser/whois.nic.so.rb +1 -1
  91. data/lib/whois/record/parser/whois.nic.st.rb +1 -1
  92. data/lib/whois/record/parser/whois.nic.tel.rb +1 -1
  93. data/lib/whois/record/parser/whois.nic.tr.rb +2 -1
  94. data/lib/whois/record/parser/whois.nic.travel.rb +1 -1
  95. data/lib/whois/record/parser/whois.nic.tv.rb +1 -1
  96. data/lib/whois/record/parser/whois.nic.uk.rb +11 -4
  97. data/lib/whois/record/parser/whois.nic.us.rb +1 -1
  98. data/lib/whois/record/parser/whois.nic.ve.rb +5 -3
  99. data/lib/whois/record/parser/whois.pandi.or.id.rb +5 -4
  100. data/lib/whois/record/parser/whois.pnina.ps.rb +8 -8
  101. data/lib/whois/record/parser/whois.register.bg.rb +6 -5
  102. data/lib/whois/record/parser/whois.registry.hm.rb +1 -1
  103. data/lib/whois/record/parser/whois.registry.om.rb +125 -0
  104. data/lib/whois/record/parser/whois.registrypro.pro.rb +1 -1
  105. data/lib/whois/record/parser/whois.ripe.net.rb +1 -1
  106. data/lib/whois/record/parser/whois.rnids.rs.rb +1 -1
  107. data/lib/whois/record/parser/whois.rotld.ro.rb +5 -4
  108. data/lib/whois/record/parser/whois.samoanic.ws.rb +1 -1
  109. data/lib/whois/record/parser/whois.sgnic.sg.rb +16 -16
  110. data/lib/whois/record/parser/whois.sk-nic.sk.rb +15 -8
  111. data/lib/whois/record/parser/whois.smallregistry.net.rb +10 -2
  112. data/lib/whois/record/parser/whois.srs.net.nz.rb +38 -20
  113. data/lib/whois/record/parser/whois.tcinet.ru.rb +4 -2
  114. data/lib/whois/record/parser/whois.thnic.co.th.rb +5 -4
  115. data/lib/whois/record/parser/whois.tld.ee.rb +7 -7
  116. data/lib/whois/record/parser/whois.tonic.to.rb +2 -3
  117. data/lib/whois/record/parser/whois.twnic.net.tw.rb +1 -1
  118. data/lib/whois/record/parser/whois.tznic.or.tz.rb +8 -4
  119. data/lib/whois/record/parser/whois.usp.ac.fj.rb +5 -4
  120. data/lib/whois/record/parser/whois.za.net.rb +1 -1
  121. data/lib/whois/record/parser/whois.za.org.rb +1 -1
  122. data/lib/whois/record/scanners/whois.ati.tn.rb +46 -0
  123. data/lib/whois/record/scanners/whois.cira.ca.rb +0 -1
  124. data/lib/whois/record/scanners/whois.registry.om.rb +39 -0
  125. data/lib/whois/record/scanners/whois.rnids.rs.rb +5 -0
  126. data/lib/whois/record/super_struct.rb +8 -5
  127. data/lib/whois/server/adapters/base.rb +53 -53
  128. data/lib/whois/version.rb +2 -2
  129. data/spec/fixtures/responses/whois.ati.tn/status_available.expected +57 -0
  130. data/spec/fixtures/responses/whois.ati.tn/status_available.txt +4 -0
  131. data/spec/fixtures/responses/whois.ati.tn/status_registered.expected +122 -0
  132. data/spec/fixtures/responses/whois.ati.tn/status_registered.txt +36 -0
  133. data/spec/fixtures/responses/whois.cctld.uz/property_expires_on_dash.expected +2 -0
  134. data/spec/fixtures/responses/whois.cctld.uz/property_expires_on_dash.txt +123 -0
  135. data/spec/fixtures/responses/whois.cctld.uz/property_status_reserved.expected +8 -0
  136. data/spec/fixtures/responses/whois.cctld.uz/property_status_reserved.txt +123 -0
  137. data/spec/fixtures/responses/{whois.nic.uk/property_status_registered.expected → whois.co.ug/property_status_active.expected} +0 -0
  138. data/spec/fixtures/responses/whois.co.ug/property_status_active.txt +35 -0
  139. data/spec/fixtures/responses/whois.co.ug/property_status_unconfirmed.expected +8 -0
  140. data/spec/fixtures/responses/whois.co.ug/property_status_unconfirmed.txt +30 -0
  141. data/spec/fixtures/responses/whois.dns.be/{response_throttled.expected → response_throttled_hourly.expected} +0 -0
  142. data/spec/fixtures/responses/whois.dns.be/{response_throttled_max.txt → response_throttled_hourly.txt} +0 -0
  143. data/spec/fixtures/responses/whois.dns.be/{response_throttled_max.expected → response_throttled_limit.expected} +0 -0
  144. data/spec/fixtures/responses/whois.dns.be/{response_throttled.txt → response_throttled_limit.txt} +0 -0
  145. data/spec/fixtures/responses/whois.dns.hr/status_registered.expected +13 -11
  146. data/spec/fixtures/responses/whois.domain-registry.nl/status_available.expected +4 -0
  147. data/spec/fixtures/responses/whois.domain-registry.nl/status_redemption.expected +4 -0
  148. data/spec/fixtures/responses/whois.educause.edu/fixture1.txt +63 -0
  149. data/spec/fixtures/responses/whois.educause.edu/fixture2.txt +66 -0
  150. data/spec/fixtures/responses/whois.educause.edu/fixture3.txt +67 -0
  151. data/spec/fixtures/responses/whois.educause.edu/fixture4.txt +68 -0
  152. data/spec/fixtures/responses/whois.educause.edu/fixture5.txt +66 -0
  153. data/spec/fixtures/responses/whois.educause.edu/fixture6.txt +66 -0
  154. data/spec/fixtures/responses/whois.educause.edu/property_contact_registrant.expected +27 -0
  155. data/spec/fixtures/responses/whois.educause.edu/property_contact_registrant.txt +63 -0
  156. data/spec/fixtures/responses/whois.educause.edu/property_contact_registrant_with_additional_organization.expected +28 -0
  157. data/spec/fixtures/responses/whois.educause.edu/property_contact_registrant_with_additional_organization.txt +66 -0
  158. data/spec/fixtures/responses/whois.educause.edu/property_contact_registrant_without_address.expected +26 -0
  159. data/spec/fixtures/responses/whois.educause.edu/{property_registrant_without_address.txt → property_contact_registrant_without_address.txt} +0 -0
  160. data/spec/fixtures/responses/whois.educause.edu/property_contact_registrant_without_zip.expected +27 -0
  161. data/spec/fixtures/responses/whois.educause.edu/{property_registrant_without_zip.txt → property_contact_registrant_without_zip.txt} +0 -0
  162. data/spec/fixtures/responses/whois.educause.edu/property_contacts.expected +31 -0
  163. data/spec/fixtures/responses/whois.educause.edu/property_contacts.txt +63 -0
  164. data/spec/fixtures/responses/whois.educause.edu/property_contacts_case1.expected +31 -0
  165. data/spec/fixtures/responses/whois.educause.edu/property_contacts_case1.txt +66 -0
  166. data/spec/fixtures/responses/whois.educause.edu/property_contacts_case2.expected +32 -0
  167. data/spec/fixtures/responses/whois.educause.edu/property_contacts_case2.txt +67 -0
  168. data/spec/fixtures/responses/whois.educause.edu/property_contacts_case3.expected +32 -0
  169. data/spec/fixtures/responses/whois.educause.edu/property_contacts_case3.txt +66 -0
  170. data/spec/fixtures/responses/whois.educause.edu/property_contacts_case4.expected +32 -0
  171. data/spec/fixtures/responses/whois.educause.edu/property_contacts_case4.txt +68 -0
  172. data/spec/fixtures/responses/whois.educause.edu/status_available.expected +34 -0
  173. data/spec/fixtures/responses/whois.educause.edu/status_registered.expected +70 -8
  174. data/spec/fixtures/responses/whois.hkirc.hk/property_expires_on_null.expected +2 -0
  175. data/spec/fixtures/responses/whois.hkirc.hk/property_expires_on_null.txt +104 -0
  176. data/spec/fixtures/responses/whois.na-nic.com.na/property_status_active.expected +8 -0
  177. data/spec/fixtures/responses/whois.na-nic.com.na/property_status_active.txt +54 -0
  178. data/spec/fixtures/responses/whois.na-nic.com.na/property_status_delegated.expected +8 -0
  179. data/spec/fixtures/responses/whois.na-nic.com.na/property_status_delegated.txt +86 -0
  180. data/spec/fixtures/responses/whois.na-nic.com.na/status_registered.expected +9 -2
  181. data/spec/fixtures/responses/whois.na-nic.com.na/status_registered.txt +17 -7
  182. data/spec/fixtures/responses/whois.nc/property_contact_without_state.txt +21 -0
  183. data/spec/fixtures/responses/whois.nic.af/status_registered.expected +14 -3
  184. data/spec/fixtures/responses/whois.nic.af/status_registered.txt +59 -40
  185. data/spec/fixtures/responses/whois.nic.cx/status_registered.expected +7 -0
  186. data/spec/fixtures/responses/whois.nic.gl/status_available.expected +7 -0
  187. data/spec/fixtures/responses/whois.nic.gl/status_registered.expected +14 -0
  188. data/spec/fixtures/responses/whois.nic.gs/status_registered.expected +7 -0
  189. data/spec/fixtures/responses/whois.nic.ht/status_registered.expected +9 -2
  190. data/spec/fixtures/responses/whois.nic.ht/status_registered.txt +58 -44
  191. data/spec/fixtures/responses/whois.nic.ki/status_registered.expected +7 -0
  192. data/spec/fixtures/responses/whois.nic.ms/status_registered.expected +7 -0
  193. data/spec/fixtures/responses/whois.nic.mu/status_registered.expected +9 -2
  194. data/spec/fixtures/responses/whois.nic.mu/status_registered.txt +52 -8
  195. data/spec/fixtures/responses/whois.nic.net.nf/status_registered.expected +7 -0
  196. data/spec/fixtures/responses/whois.nic.net.ng/status_registered.expected +7 -0
  197. data/spec/fixtures/responses/whois.nic.net.sb/status_registered.expected +7 -0
  198. data/spec/fixtures/responses/whois.nic.tl/status_registered.expected +9 -2
  199. data/spec/fixtures/responses/whois.nic.tl/status_registered.txt +42 -5
  200. data/spec/fixtures/responses/whois.nic.uk/property_nameservers_with_ip.txt +11 -7
  201. data/spec/fixtures/responses/whois.nic.uk/property_registrant_type_individual.txt +45 -0
  202. data/spec/fixtures/responses/whois.nic.uk/{property_status_registered.txt → property_registrant_type_unknown.txt} +5 -5
  203. data/spec/fixtures/responses/whois.nic.uk/property_status_missing.txt +2 -2
  204. data/spec/fixtures/responses/whois.nic.uk/property_status_no_status_listed.txt +2 -2
  205. data/spec/fixtures/responses/whois.nic.uk/property_status_registered_until_expiry_date.txt +18 -13
  206. data/spec/fixtures/responses/whois.nic.uk/property_status_suspended.txt +51 -51
  207. data/spec/fixtures/responses/whois.nic.uk/status_available.txt +2 -2
  208. data/spec/fixtures/responses/whois.nic.uk/status_invalid.txt +2 -2
  209. data/spec/fixtures/responses/whois.nic.uk/status_registered.expected +2 -2
  210. data/spec/fixtures/responses/whois.nic.uk/status_registered.txt +5 -5
  211. data/spec/fixtures/responses/whois.nic.uk/status_reserved.expected +1 -1
  212. data/spec/fixtures/responses/whois.nic.uk/status_reserved.txt +2 -2
  213. data/spec/fixtures/responses/whois.nic.uk/status_suspended.expected +1 -1
  214. data/spec/fixtures/responses/whois.nic.uk/status_suspended.txt +51 -51
  215. data/spec/fixtures/responses/whois.registry.gy/status_registered.expected +7 -0
  216. data/spec/fixtures/responses/whois.registry.om/status_available.expected +56 -0
  217. data/spec/fixtures/responses/whois.registry.om/status_available.txt +1 -0
  218. data/spec/fixtures/responses/whois.registry.om/status_registered.expected +100 -0
  219. data/spec/fixtures/responses/whois.registry.om/status_registered.txt +18 -0
  220. data/spec/fixtures/responses/whois.rnids.rs/property_nameservers_hyphenated.expected +9 -0
  221. data/spec/fixtures/responses/whois.rnids.rs/property_nameservers_hyphenated.txt +36 -0
  222. data/spec/fixtures/responses/whois.rnids.rs/token_whois_privacy.expected +11 -0
  223. data/spec/fixtures/responses/whois.rnids.rs/token_whois_privacy.txt +36 -0
  224. data/spec/fixtures/responses/whois.srs.net.nz/response_throttled.expected +2 -0
  225. data/spec/fixtures/responses/whois.srs.net.nz/response_throttled.txt +27 -0
  226. data/spec/fixtures/responses/whois.srs.net.nz/status_available.expected +4 -0
  227. data/spec/fixtures/responses/whois.srs.net.nz/status_available.txt +2 -3
  228. data/spec/fixtures/responses/whois.srs.net.nz/status_invalid.expected +4 -0
  229. data/spec/fixtures/responses/whois.srs.net.nz/status_invalid.txt +2 -3
  230. data/spec/fixtures/responses/whois.srs.net.nz/status_registered.expected +6 -2
  231. data/spec/fixtures/responses/whois.srs.net.nz/status_registered.txt +5 -4
  232. data/spec/fixtures/responses/whois.tznic.or.tz/property_status_expired.expected +8 -0
  233. data/spec/fixtures/responses/whois.tznic.or.tz/property_status_expired.txt +56 -0
  234. data/spec/support/helpers/spec_helper.rb +0 -5
  235. data/spec/tlds +4 -2
  236. data/spec/whois/record/contact_spec.rb +8 -8
  237. data/spec/whois/record/nameserver_spec.rb +6 -6
  238. data/spec/whois/record/parser/base_spec.rb +11 -11
  239. data/spec/whois/record/parser/blank_spec.rb +1 -1
  240. data/spec/whois/record/parser/responses/whois.ati.tn/status_available_spec.rb +108 -0
  241. data/spec/whois/record/parser/responses/whois.ati.tn/status_registered_spec.rb +173 -0
  242. data/spec/whois/record/parser/responses/whois.cctld.uz/property_expires_on_dash_spec.rb +29 -0
  243. data/spec/whois/record/parser/responses/whois.cctld.uz/property_status_reserved_spec.rb +39 -0
  244. data/spec/whois/record/parser/responses/{whois.nic.uk/property_status_registered_spec.rb → whois.co.ug/property_status_active_spec.rb} +4 -4
  245. data/spec/whois/record/parser/responses/whois.co.ug/property_status_unconfirmed_spec.rb +39 -0
  246. data/spec/whois/record/parser/responses/whois.dns.be/{response_throttled_spec.rb → response_throttled_hourly_spec.rb} +3 -3
  247. data/spec/whois/record/parser/responses/whois.dns.be/{response_throttled_max_spec.rb → response_throttled_limit_spec.rb} +3 -3
  248. data/spec/whois/record/parser/responses/whois.dns.hr/status_registered_spec.rb +13 -11
  249. data/spec/whois/record/parser/responses/whois.domain-registry.nl/status_available_spec.rb +5 -0
  250. data/spec/whois/record/parser/responses/whois.domain-registry.nl/status_redemption_spec.rb +5 -0
  251. data/spec/whois/record/parser/responses/whois.educause.edu/property_contact_registrant_spec.rb +44 -0
  252. data/spec/whois/record/parser/responses/whois.educause.edu/property_contact_registrant_with_additional_organization_spec.rb +44 -0
  253. data/spec/whois/record/parser/responses/whois.educause.edu/property_contact_registrant_without_address_spec.rb +44 -0
  254. data/spec/whois/record/parser/responses/whois.educause.edu/property_contact_registrant_without_zip_spec.rb +44 -0
  255. data/spec/whois/record/parser/responses/whois.educause.edu/property_contacts_case1_spec.rb +43 -0
  256. data/spec/whois/record/parser/responses/whois.educause.edu/property_contacts_case2_spec.rb +43 -0
  257. data/spec/whois/record/parser/responses/whois.educause.edu/property_contacts_case3_spec.rb +43 -0
  258. data/spec/whois/record/parser/responses/whois.educause.edu/property_contacts_case4_spec.rb +43 -0
  259. data/spec/whois/record/parser/responses/whois.educause.edu/property_contacts_spec.rb +43 -0
  260. data/spec/whois/record/parser/responses/whois.educause.edu/status_available_spec.rb +48 -0
  261. data/spec/whois/record/parser/responses/whois.educause.edu/status_registered_spec.rb +83 -8
  262. data/spec/whois/record/parser/responses/whois.hkirc.hk/property_expires_on_null_spec.rb +29 -0
  263. data/spec/whois/record/parser/responses/whois.na-nic.com.na/property_status_active_spec.rb +39 -0
  264. data/spec/whois/record/parser/responses/whois.na-nic.com.na/property_status_delegated_spec.rb +39 -0
  265. data/spec/whois/record/parser/responses/whois.na-nic.com.na/status_registered_spec.rb +10 -2
  266. data/spec/whois/record/parser/responses/whois.nic.af/status_registered_spec.rb +15 -3
  267. data/spec/whois/record/parser/responses/whois.nic.cx/status_registered_spec.rb +8 -0
  268. data/spec/whois/record/parser/responses/whois.nic.gl/status_available_spec.rb +10 -0
  269. data/spec/whois/record/parser/responses/whois.nic.gl/status_registered_spec.rb +18 -0
  270. data/spec/whois/record/parser/responses/whois.nic.gs/status_registered_spec.rb +8 -0
  271. data/spec/whois/record/parser/responses/whois.nic.ht/status_registered_spec.rb +10 -2
  272. data/spec/whois/record/parser/responses/whois.nic.ki/status_registered_spec.rb +8 -0
  273. data/spec/whois/record/parser/responses/whois.nic.ms/status_registered_spec.rb +8 -0
  274. data/spec/whois/record/parser/responses/whois.nic.mu/status_registered_spec.rb +10 -2
  275. data/spec/whois/record/parser/responses/whois.nic.net.nf/status_registered_spec.rb +8 -0
  276. data/spec/whois/record/parser/responses/whois.nic.net.ng/status_registered_spec.rb +8 -0
  277. data/spec/whois/record/parser/responses/whois.nic.net.sb/status_registered_spec.rb +8 -0
  278. data/spec/whois/record/parser/responses/whois.nic.tl/status_registered_spec.rb +10 -2
  279. data/spec/whois/record/parser/responses/whois.nic.uk/status_registered_spec.rb +2 -2
  280. data/spec/whois/record/parser/responses/whois.nic.uk/status_reserved_spec.rb +1 -1
  281. data/spec/whois/record/parser/responses/whois.nic.uk/status_suspended_spec.rb +1 -1
  282. data/spec/whois/record/parser/responses/whois.registry.gy/status_registered_spec.rb +8 -0
  283. data/spec/whois/record/parser/responses/whois.registry.om/status_available_spec.rb +107 -0
  284. data/spec/whois/record/parser/responses/whois.registry.om/status_registered_spec.rb +151 -0
  285. data/spec/whois/record/parser/responses/whois.rnids.rs/property_nameservers_hyphenated_spec.rb +36 -0
  286. data/spec/whois/record/parser/responses/whois.rnids.rs/token_whois_privacy_spec.rb +42 -0
  287. data/spec/whois/record/parser/responses/whois.srs.net.nz/response_throttled_spec.rb +29 -0
  288. data/spec/whois/record/parser/responses/whois.srs.net.nz/status_available_spec.rb +5 -0
  289. data/spec/whois/record/parser/responses/whois.srs.net.nz/status_invalid_spec.rb +5 -0
  290. data/spec/whois/record/parser/responses/whois.srs.net.nz/status_registered_spec.rb +7 -2
  291. data/spec/whois/record/parser/responses/whois.tznic.or.tz/property_status_expired_spec.rb +39 -0
  292. data/spec/whois/record/parser_spec.rb +25 -25
  293. data/spec/whois/record/part_spec.rb +5 -5
  294. data/spec/whois/record/registrar_spec.rb +8 -8
  295. data/spec/whois/record/super_struct_spec.rb +0 -1
  296. data/spec/whois/record_spec.rb +12 -12
  297. data/spec/whois/server/adapters/afilias_spec.rb +2 -2
  298. data/spec/whois/server/adapters/formatted_spec.rb +1 -1
  299. data/spec/whois/server/adapters/pir_spec.rb +2 -2
  300. data/spec/whois/server/adapters/standard_spec.rb +1 -1
  301. data/spec/whois/server/adapters/verisign_spec.rb +2 -2
  302. data/whois.gemspec +6 -6
  303. metadata +97 -20
  304. data/.rspec +0 -1
  305. data/spec/fixtures/responses/whois.educause.edu/property_registrant_without_address.expected +0 -11
  306. data/spec/fixtures/responses/whois.educause.edu/property_registrant_without_zip.expected +0 -12
  307. data/spec/whois/record/parser/responses/whois.educause.edu/property_registrant_without_address_spec.rb +0 -38
  308. data/spec/whois/record/parser/responses/whois.educause.edu/property_registrant_without_zip_spec.rb +0 -39
@@ -62,7 +62,7 @@ module Whois
62
62
  property_supported :nameservers do
63
63
  if content_for_scanner =~ /Domain servers:\n((.+\n)+)\n/
64
64
  $1.split("\n").map do |name|
65
- Record::Nameserver.new(name.strip.chomp("."))
65
+ Record::Nameserver.new(:name => name.strip.chomp("."))
66
66
  end
67
67
  end
68
68
  end
@@ -65,9 +65,9 @@ module Whois
65
65
  if content_for_scanner =~ /Name\sservers:\s((.+\n)+)\n/
66
66
  $1.split("\n").map do |line|
67
67
  if line.strip =~ /(.+) \((.+)\)/
68
- Record::Nameserver.new($1, $2)
68
+ Record::Nameserver.new(:name => $1, :ipv4 => $2)
69
69
  else
70
- Record::Nameserver.new(line.strip)
70
+ Record::Nameserver.new(:name => line.strip)
71
71
  end
72
72
  end
73
73
  end
@@ -65,7 +65,7 @@ module Whois
65
65
 
66
66
  property_supported :nameservers do
67
67
  content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map do |line|
68
- Record::Nameserver.new(line.split(" ").first)
68
+ Record::Nameserver.new(:name => line.split(" ").first)
69
69
  end
70
70
  end
71
71
 
@@ -69,7 +69,7 @@ module Whois
69
69
  property_supported :nameservers do
70
70
  if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
71
71
  $1.split("\n").map do |name|
72
- Record::Nameserver.new(name.strip)
72
+ Record::Nameserver.new(:name => name.strip)
73
73
  end
74
74
  end
75
75
  end
@@ -82,7 +82,7 @@ module Whois
82
82
  property_supported :nameservers do
83
83
  if content_for_scanner =~ /Domain servers in listed order:\n((.+\n)+)\n/
84
84
  $1.split("\n").map do |line|
85
- Record::Nameserver.new(line.strip)
85
+ Record::Nameserver.new(:name => line.strip)
86
86
  end
87
87
  end
88
88
  end
@@ -14,16 +14,14 @@ module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.hkirc.hk parser
19
- #
20
17
  # Parser for the whois.hkirc.hk server.
21
18
  #
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.
19
+ # @note This parser is just a stub and provides only a few basic methods
20
+ # to check for domain availability and get domain status.
21
+ # Please consider to contribute implementing missing methods.
22
+ #
23
+ # @see Whois::Record::Parser::Example
24
+ # The Example parser for the list of all available methods.
27
25
  #
28
26
  class WhoisHkircHk < Base
29
27
 
@@ -36,7 +34,7 @@ module Whois
36
34
  end
37
35
 
38
36
  property_supported :available? do
39
- (content_for_scanner.strip == "Domain Not Found")
37
+ content_for_scanner.strip == 'Domain Not Found'
40
38
  end
41
39
 
42
40
  property_supported :registered? do
@@ -45,7 +43,7 @@ module Whois
45
43
 
46
44
 
47
45
  property_supported :created_on do
48
- if content_for_scanner =~ /Domain Name Commencement Date:\s(.*?)\n/
46
+ if content_for_scanner =~ /Domain Name Commencement Date:\s(.+?)\n/
49
47
  Time.parse($1)
50
48
  end
51
49
  end
@@ -53,8 +51,9 @@ module Whois
53
51
  property_not_supported :updated_on
54
52
 
55
53
  property_supported :expires_on do
56
- if content_for_scanner =~ /Expiry Date:\s(.*?)\n/
57
- Time.parse($1)
54
+ if content_for_scanner =~ /Expiry Date:\s(.+?)\n/
55
+ time = $1.strip
56
+ Time.parse(time) unless time == 'null'
58
57
  end
59
58
  end
60
59
 
@@ -62,7 +61,7 @@ module Whois
62
61
  property_supported :nameservers do
63
62
  if content_for_scanner =~ /Name Servers Information:\n\n((.+\n)+)\n/
64
63
  $1.split("\n").map do |name|
65
- Record::Nameserver.new(name.strip.downcase)
64
+ Record::Nameserver.new(:name => name.strip.downcase)
66
65
  end
67
66
  end
68
67
  end
@@ -65,7 +65,8 @@ module Whois
65
65
  property_supported :nameservers do
66
66
  node("nameservers") do |raw|
67
67
  (raw["nserver"] || "").split("\n").map do |line|
68
- Record::Nameserver.new(*line.downcase.split(/\s+/))
68
+ name, ipv4 = line.downcase.split(/\s+/)
69
+ Record::Nameserver.new(:name => name, :ipv4 => ipv4)
69
70
  end
70
71
  end
71
72
  end
@@ -67,7 +67,7 @@ module Whois
67
67
 
68
68
  property_supported :nameservers do
69
69
  content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map do |name|
70
- Record::Nameserver.new(name.strip.downcase)
70
+ Record::Nameserver.new(:name => name.strip.downcase)
71
71
  end
72
72
  end
73
73
 
@@ -61,7 +61,7 @@ module Whois
61
61
 
62
62
  property_supported :nameservers do
63
63
  content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map do |name|
64
- Record::Nameserver.new(name)
64
+ Record::Nameserver.new(:name => name)
65
65
  end
66
66
  end
67
67
 
@@ -66,7 +66,7 @@ module Whois
66
66
 
67
67
  property_supported :nameservers do
68
68
  content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map do |name|
69
- Record::Nameserver.new(name.strip)
69
+ Record::Nameserver.new(:name => name.strip)
70
70
  end
71
71
  end
72
72
 
@@ -66,7 +66,8 @@ module Whois
66
66
  property_supported :nameservers do
67
67
  if content_for_scanner =~ /Servers:\n((.+\n)+)\n/
68
68
  $1.split("\n").map do |line|
69
- Record::Nameserver.new(*line.strip.split("\t"))
69
+ name, ipv4 = line.strip.downcase.split("\t")
70
+ Record::Nameserver.new(:name => name, :ipv4 => ipv4)
70
71
  end
71
72
  end
72
73
  end
@@ -69,7 +69,7 @@ module Whois
69
69
  property_supported :nameservers do
70
70
  if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
71
71
  $1.split("\n").map do |name|
72
- Record::Nameserver.new(name.strip)
72
+ Record::Nameserver.new(:name => name.strip)
73
73
  end
74
74
  end
75
75
  end
@@ -81,7 +81,7 @@ module Whois
81
81
 
82
82
  property_supported :nameservers do
83
83
  content_for_scanner.scan(/\[Name Server\][\s\t]+([^\s\n]+?)\n/).flatten.map do |name|
84
- Record::Nameserver.new(name)
84
+ Record::Nameserver.new(:name => name)
85
85
  end
86
86
  end
87
87
 
@@ -73,7 +73,7 @@ module Whois
73
73
  property_supported :nameservers do
74
74
  if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
75
75
  $1.split("\n").map do |name|
76
- Record::Nameserver.new(name.strip)
76
+ Record::Nameserver.new(:name => name.strip)
77
77
  end
78
78
  end
79
79
  end
@@ -78,7 +78,7 @@ module Whois
78
78
  property_supported :nameservers do
79
79
  if content_for_scanner =~ /Domain servers in listed order:\n\n((?:\s*[^\s\n]+\n)+)/
80
80
  $1.split("\n").map do |line|
81
- Record::Nameserver.new(line.strip)
81
+ Record::Nameserver.new(:name => line.strip)
82
82
  end
83
83
  end
84
84
  end
@@ -43,7 +43,7 @@ module Whois
43
43
 
44
44
  property_supported :nameservers do
45
45
  Array.wrap(node("Nameservers")).reject(&:empty?).map do |name|
46
- Nameserver.new(name.downcase)
46
+ Record::Nameserver.new(:name => name.downcase)
47
47
  end
48
48
  end
49
49
 
@@ -70,7 +70,7 @@ module Whois
70
70
  property_supported :nameservers do
71
71
  content_for_scanner.scan(/Name Server:\s+(.+)\n/).flatten.map do |line|
72
72
  name, ipv4 = line.split(/\s+/)
73
- Record::Nameserver.new(name, ipv4)
73
+ Record::Nameserver.new(:name => name, :ipv4 => ipv4)
74
74
  end
75
75
  end
76
76
 
@@ -21,6 +21,7 @@ module Whois
21
21
  if content_for_scanner =~ /Status:\s+(.+?)\n/
22
22
  case $1.downcase
23
23
  when "active" then :registered
24
+ when "delegated" then :registered
24
25
  when "not registered" then :available
25
26
  when "suspended" then :inactive
26
27
  else
@@ -73,7 +73,7 @@ module Whois
73
73
  property_supported :nameservers do
74
74
  if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
75
75
  $1.split("\n").map do |name|
76
- Record::Nameserver.new(name.strip)
76
+ Record::Nameserver.new(:name => name.strip)
77
77
  end
78
78
  end
79
79
  end
@@ -80,7 +80,7 @@ module Whois
80
80
  property_supported :nameservers do
81
81
  content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map do |line|
82
82
  name, ipv4 = line.split(/\s+/)
83
- Record::Nameserver.new(name, ipv4)
83
+ Record::Nameserver.new(:name => name, :ipv4 => ipv4)
84
84
  end
85
85
  end
86
86
 
@@ -70,7 +70,7 @@ module Whois
70
70
  property_supported :nameservers do
71
71
  if content_for_scanner =~ /DNS servers:\n((.+\n)+)\n/
72
72
  $1.split("\n").map do |name|
73
- Record::Nameserver.new(name.strip)
73
+ Record::Nameserver.new(:name => name.strip)
74
74
  end
75
75
  end
76
76
  end
@@ -55,7 +55,7 @@ module Whois
55
55
  if content_for_scanner =~ /Nameservers:\s((.+\n)+)\n/
56
56
  $1.split("\n").reject { |value| value.strip.empty? }.map do |line|
57
57
  line.strip =~ /(.+) \((.+)\)/
58
- Record::Nameserver.new($1, $2)
58
+ Record::Nameserver.new(:name => $1, :ipv4 => $2)
59
59
  end
60
60
  end
61
61
  end
@@ -52,7 +52,7 @@ module Whois
52
52
 
53
53
  property_supported :nameservers do
54
54
  Array.wrap(node("Nameservers")).reject(&:empty?).map do |name|
55
- Nameserver.new(name.downcase)
55
+ Record::Nameserver.new(:name => name.downcase)
56
56
  end
57
57
  end
58
58
 
@@ -57,7 +57,7 @@ module Whois
57
57
 
58
58
  property_supported :nameservers do
59
59
  content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map do |name|
60
- Record::Nameserver.new(name)
60
+ Record::Nameserver.new(:name => name)
61
61
  end
62
62
  end
63
63
 
@@ -75,7 +75,7 @@ module Whois
75
75
 
76
76
  property_supported :nameservers do
77
77
  Array.wrap(node("Name Server")).reject { |value| value =~ /no nameserver/i }.map do |name|
78
- Nameserver.new(name.downcase)
78
+ Record::Nameserver.new(:name => name.downcase)
79
79
  end
80
80
  end
81
81
 
@@ -58,7 +58,7 @@ module Whois
58
58
  property_supported :nameservers do
59
59
  if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
60
60
  $1.split("\n").map do |name|
61
- Record::Nameserver.new(name.strip.downcase)
61
+ Record::Nameserver.new(:name => name.strip.downcase)
62
62
  end
63
63
  end
64
64
  end
@@ -64,12 +64,12 @@ module Whois
64
64
  if line =~ /(.+)\t\[(.+)\]/
65
65
  name, ip = $1, $2
66
66
  order << name unless order.include?(name)
67
- list[name] ||= Record::Nameserver.new(name)
67
+ list[name] ||= Record::Nameserver.new(:name => name)
68
68
  list[name].ipv4 = ip if Whois::Server.valid_ipv4?(ip)
69
69
  list[name].ipv6 = ip if Whois::Server.valid_ipv6?(ip)
70
70
  else
71
71
  order << line unless order.include?(line)
72
- list[line] ||= Record::Nameserver.new(line)
72
+ list[line] ||= Record::Nameserver.new(:name => line)
73
73
  end
74
74
  end
75
75
  order.map { |name| list[name] }
@@ -61,7 +61,7 @@ module Whois
61
61
 
62
62
  property_supported :nameservers do
63
63
  content_for_scanner.scan(/Nameserver:\s+(.+)\n/).flatten.map do |name|
64
- Record::Nameserver.new(name)
64
+ Record::Nameserver.new(:name => name)
65
65
  end
66
66
  end
67
67
 
@@ -61,7 +61,7 @@ module Whois
61
61
 
62
62
  property_supported :nameservers do
63
63
  content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map do |name|
64
- Record::Nameserver.new(name)
64
+ Record::Nameserver.new(:name => name)
65
65
  end
66
66
  end
67
67
 
@@ -61,7 +61,7 @@ module Whois
61
61
  $1.split("\n").map do |line|
62
62
  line.strip!
63
63
  line =~ /(.+) \((.+)\)/
64
- Record::Nameserver.new($1, $2)
64
+ Record::Nameserver.new(:name => $1, :ipv4 => $2)
65
65
  end
66
66
  end
67
67
  end
@@ -61,7 +61,7 @@ module Whois
61
61
 
62
62
  property_supported :nameservers do
63
63
  content_for_scanner.scan(/Name Server:\s+(.+)\n/).flatten.map do |name|
64
- Record::Nameserver.new(name.downcase)
64
+ Record::Nameserver.new(:name => name.downcase)
65
65
  end
66
66
  end
67
67
 
@@ -61,7 +61,7 @@ module Whois
61
61
 
62
62
  property_supported :nameservers do
63
63
  content_for_scanner.scan(/Host Name:\s+(.+)\n/).flatten.map do |name|
64
- Record::Nameserver.new(name)
64
+ Record::Nameserver.new(:name => name)
65
65
  end
66
66
  end
67
67
 
@@ -30,13 +30,13 @@ 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", "update prohibited"
34
- :registered
35
- # NEWSTATUS
36
- when "expired"
37
- :expired
38
- else
39
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
33
+ when "paid and in zone", "update prohibited"
34
+ :registered
35
+ # NEWSTATUS
36
+ when "expired"
37
+ :expired
38
+ else
39
+ Whois.bug!(ParserError, "Unknown status `#{$1}'.")
40
40
  end
41
41
  else
42
42
  :available
@@ -74,9 +74,11 @@ module Whois
74
74
  property_supported :nameservers do
75
75
  content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map do |line|
76
76
  if line =~ /(.+) \((.+)\)/
77
- Record::Nameserver.new($1, *$2.split(", "))
77
+ name = $1
78
+ ipv4, ipv6 = $2.split(", ")
79
+ Record::Nameserver.new(:name => name, :ipv4 => ipv4, :ipv6 => ipv6)
78
80
  else
79
- Record::Nameserver.new(line.strip)
81
+ Record::Nameserver.new(:name => line.strip)
80
82
  end
81
83
  end
82
84
  end
@@ -66,7 +66,7 @@ module Whois
66
66
  property_supported :nameservers do
67
67
  if content_for_scanner =~ /Servidores de dominio \(Name Servers\)\n((.+\n)+)\n/
68
68
  $1.split("\n").map do |name|
69
- Record::Nameserver.new(name)
69
+ Record::Nameserver.new(:name => name)
70
70
  end
71
71
  end
72
72
  end
@@ -7,76 +7,15 @@
7
7
  #++
8
8
 
9
9
 
10
- require 'whois/record/parser/base'
10
+ require 'whois/record/parser/base_cocca'
11
11
 
12
12
 
13
13
  module Whois
14
14
  class Record
15
15
  class Parser
16
16
 
17
- #
18
- # = whois.nic.gl parser
19
- #
20
17
  # Parser for the whois.nic.gl 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 WhoisNicGl < 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
- when "delegated" then :registered
35
- when "not registered" then :available
36
- else
37
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
38
- end
39
- else
40
- Whois.bug!(ParserError, "Unable to parse status.")
41
- end
42
- end
43
-
44
- property_supported :available? do
45
- status == :available
46
- end
47
-
48
- property_supported :registered? do
49
- !available?
50
- end
51
-
52
-
53
- property_supported :created_on do
54
- if content_for_scanner =~ /Created:\s+(.+?)\n/
55
- Time.parse($1)
56
- end
57
- end
58
-
59
- property_supported :updated_on do
60
- if content_for_scanner =~ /Modified:\s+(.+?)\n/
61
- Time.parse($1)
62
- end
63
- end
64
-
65
- property_supported :expires_on do
66
- if content_for_scanner =~ /Expires:\s+(.+?)\n/
67
- Time.parse($1)
68
- end
69
- end
70
-
71
-
72
- property_supported :nameservers do
73
- if content_for_scanner =~ /Name Servers:\n((.+\n)+)\n/
74
- $1.split("\n").map do |name|
75
- Record::Nameserver.new(name.strip)
76
- end
77
- end
78
- end
79
-
18
+ class WhoisNicGl < BaseCocca
80
19
  end
81
20
 
82
21
  end