whois 2.3.0 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (573) hide show
  1. data/Rakefile +13 -17
  2. data/lib/whois.rb +1 -1
  3. data/lib/whois/client.rb +1 -1
  4. data/lib/{core_ext.rb → whois/core_ext.rb} +4 -4
  5. data/lib/{core_ext → whois/core_ext}/array/extract_options.rb +0 -0
  6. data/lib/{core_ext → whois/core_ext}/array/wrap.rb +0 -0
  7. data/lib/{core_ext → whois/core_ext}/class/attribute.rb +3 -3
  8. data/lib/{core_ext → whois/core_ext}/date_time/conversions.rb +0 -0
  9. data/lib/{core_ext → whois/core_ext}/kernel/singleton_class.rb +0 -0
  10. data/lib/{core_ext → whois/core_ext}/module/remove_method.rb +0 -0
  11. data/lib/whois/definitions/ipv4.rb +4 -0
  12. data/lib/whois/definitions/tlds.rb +29 -29
  13. data/lib/whois/record.rb +14 -4
  14. data/lib/whois/record/parser.rb +17 -5
  15. data/lib/whois/record/parser/base.rb +11 -8
  16. data/lib/whois/record/parser/scanners/whois.centralnic.com.rb +1 -1
  17. data/lib/whois/record/parser/scanners/whois.dns.hr.rb +41 -0
  18. data/lib/whois/record/parser/scanners/whois.nc.rb +48 -0
  19. data/lib/whois/record/parser/scanners/whois.nic.hu.rb +2 -2
  20. data/lib/whois/record/parser/scanners/whois.rnids.rs.rb +78 -0
  21. data/lib/whois/record/parser/whois.biz.rb +2 -2
  22. data/lib/whois/record/parser/whois.dns.hr.rb +112 -0
  23. data/lib/whois/record/parser/whois.dreamhost.com.rb +120 -0
  24. data/lib/whois/record/parser/whois.fi.rb +76 -0
  25. data/lib/whois/record/parser/whois.ficora.fi.rb +3 -55
  26. data/lib/whois/record/parser/whois.godaddy.com.rb +3 -3
  27. data/lib/whois/record/parser/whois.markmonitor.com.rb +6 -9
  28. data/lib/whois/record/parser/whois.nc.rb +135 -0
  29. data/lib/whois/record/parser/whois.net.ua.rb +3 -57
  30. data/lib/whois/record/parser/whois.nic.gl.rb +5 -6
  31. data/lib/whois/record/parser/whois.nic.it.rb +12 -9
  32. data/lib/whois/record/parser/whois.nic.lk.rb +118 -0
  33. data/lib/whois/record/parser/whois.nic.mg.rb +2 -0
  34. data/lib/whois/record/parser/whois.nic.uk.rb +32 -12
  35. data/lib/whois/record/parser/whois.registry.qa.rb +2 -1
  36. data/lib/whois/record/parser/whois.rnids.rs.rb +143 -0
  37. data/lib/whois/record/parser/whois.ua.rb +75 -0
  38. data/lib/whois/version.rb +1 -1
  39. data/spec/fixtures/responses/jobswhois.verisign-grs.com/property_nameserver_no_nameserver.expected +1 -1
  40. data/spec/fixtures/responses/jobswhois.verisign-grs.com/status_available.expected +1 -1
  41. data/spec/fixtures/responses/jobswhois.verisign-grs.com/status_registered.expected +8 -8
  42. data/spec/fixtures/responses/kero.yachay.pe/status_available.expected +1 -1
  43. data/spec/fixtures/responses/kero.yachay.pe/status_inactive.expected +2 -2
  44. data/spec/fixtures/responses/kero.yachay.pe/status_registered.expected +6 -6
  45. data/spec/fixtures/responses/whois.adamsnames.tc/gd/status_available.expected +1 -1
  46. data/spec/fixtures/responses/whois.adamsnames.tc/gd/status_registered.expected +4 -4
  47. data/spec/fixtures/responses/whois.adamsnames.tc/tc/status_available.expected +1 -1
  48. data/spec/fixtures/responses/whois.adamsnames.tc/tc/status_registered.expected +6 -6
  49. data/spec/fixtures/responses/whois.adamsnames.tc/vg/status_available.expected +1 -1
  50. data/spec/fixtures/responses/whois.adamsnames.tc/vg/status_registered.expected +6 -6
  51. data/spec/fixtures/responses/whois.aeda.net.ae/status_available.expected +1 -1
  52. data/spec/fixtures/responses/whois.aeda.net.ae/status_registered.expected +4 -4
  53. data/spec/fixtures/responses/whois.aero/status_available.expected +4 -4
  54. data/spec/fixtures/responses/whois.aero/status_registered.expected +19 -19
  55. data/spec/fixtures/responses/whois.afilias-grs.info/bz/status_available.expected +4 -4
  56. data/spec/fixtures/responses/whois.afilias-grs.info/bz/status_registered.expected +16 -16
  57. data/spec/fixtures/responses/whois.afilias-grs.info/gi/status_available.expected +4 -4
  58. data/spec/fixtures/responses/whois.afilias-grs.info/gi/status_registered.expected +17 -17
  59. data/spec/fixtures/responses/whois.afilias-grs.info/hn/status_available.expected +4 -4
  60. data/spec/fixtures/responses/whois.afilias-grs.info/hn/status_registered.expected +17 -17
  61. data/spec/fixtures/responses/whois.afilias-grs.info/lc/status_available.expected +4 -4
  62. data/spec/fixtures/responses/whois.afilias-grs.info/lc/status_registered.expected +17 -17
  63. data/spec/fixtures/responses/whois.afilias-grs.info/mn/status_available.expected +4 -4
  64. data/spec/fixtures/responses/whois.afilias-grs.info/mn/status_registered.expected +19 -19
  65. data/spec/fixtures/responses/whois.afilias-grs.info/sc/status_available.expected +5 -5
  66. data/spec/fixtures/responses/whois.afilias-grs.info/sc/status_registered.expected +17 -17
  67. data/spec/fixtures/responses/whois.afilias-grs.info/vc/status_available.expected +4 -4
  68. data/spec/fixtures/responses/whois.afilias-grs.info/vc/status_registered.expected +19 -19
  69. data/spec/fixtures/responses/whois.afilias.info/status_available.expected +4 -4
  70. data/spec/fixtures/responses/whois.afilias.info/status_registered.expected +19 -19
  71. data/spec/fixtures/responses/whois.ai/status_available.expected +1 -1
  72. data/spec/fixtures/responses/whois.ai/status_registered.expected +6 -6
  73. data/spec/fixtures/responses/whois.arnes.si/status_available.expected +1 -1
  74. data/spec/fixtures/responses/whois.arnes.si/status_registered.expected +8 -8
  75. data/spec/fixtures/responses/whois.audns.net.au/status_available.expected +1 -1
  76. data/spec/fixtures/responses/whois.audns.net.au/status_registered.expected +7 -7
  77. data/spec/fixtures/responses/whois.biz/status_available.expected +4 -4
  78. data/spec/fixtures/responses/whois.biz/status_registered.expected +19 -19
  79. data/spec/fixtures/responses/whois.cat/status_available.expected +1 -1
  80. data/spec/fixtures/responses/whois.cat/status_registered.expected +7 -7
  81. data/spec/fixtures/responses/whois.cctld.uz/status_available.expected +1 -1
  82. data/spec/fixtures/responses/whois.cctld.uz/status_registered.expected +6 -6
  83. data/spec/fixtures/responses/whois.centralnic.com/ae.org/status_available.expected +4 -4
  84. data/spec/fixtures/responses/whois.centralnic.com/ae.org/status_registered.expected +17 -17
  85. data/spec/fixtures/responses/whois.centralnic.com/ar.com/status_available.expected +4 -4
  86. data/spec/fixtures/responses/whois.centralnic.com/ar.com/status_registered.expected +21 -21
  87. data/spec/fixtures/responses/whois.centralnic.com/br.com/status_available.expected +4 -4
  88. data/spec/fixtures/responses/whois.centralnic.com/br.com/status_registered.expected +17 -17
  89. data/spec/fixtures/responses/whois.centralnic.com/cn.com/status_available.expected +4 -4
  90. data/spec/fixtures/responses/whois.centralnic.com/cn.com/status_registered.expected +17 -17
  91. data/spec/fixtures/responses/whois.centralnic.com/de.com/status_available.expected +4 -4
  92. data/spec/fixtures/responses/whois.centralnic.com/de.com/status_registered.expected +18 -18
  93. data/spec/fixtures/responses/whois.centralnic.com/eu.com/status_available.expected +4 -4
  94. data/spec/fixtures/responses/whois.centralnic.com/eu.com/status_registered.expected +17 -17
  95. data/spec/fixtures/responses/whois.centralnic.com/gb.com/status_available.expected +4 -4
  96. data/spec/fixtures/responses/whois.centralnic.com/gb.com/status_registered.expected +19 -19
  97. data/spec/fixtures/responses/whois.centralnic.com/gb.net/status_available.expected +4 -4
  98. data/spec/fixtures/responses/whois.centralnic.com/gb.net/status_registered.expected +19 -19
  99. data/spec/fixtures/responses/whois.centralnic.com/gr.com/status_available.expected +4 -4
  100. data/spec/fixtures/responses/whois.centralnic.com/gr.com/status_registered.expected +20 -20
  101. data/spec/fixtures/responses/whois.centralnic.com/hu.com/status_available.expected +4 -4
  102. data/spec/fixtures/responses/whois.centralnic.com/hu.com/status_registered.expected +17 -17
  103. data/spec/fixtures/responses/whois.centralnic.com/jpn.com/status_available.expected +4 -4
  104. data/spec/fixtures/responses/whois.centralnic.com/jpn.com/status_registered.expected +17 -17
  105. data/spec/fixtures/responses/whois.centralnic.com/kr.com/status_available.expected +4 -4
  106. data/spec/fixtures/responses/whois.centralnic.com/kr.com/status_registered.expected +20 -20
  107. data/spec/fixtures/responses/whois.centralnic.com/no.com/status_available.expected +4 -4
  108. data/spec/fixtures/responses/whois.centralnic.com/no.com/status_registered.expected +17 -17
  109. data/spec/fixtures/responses/whois.centralnic.com/qc.com/status_available.expected +4 -4
  110. data/spec/fixtures/responses/whois.centralnic.com/qc.com/status_registered.expected +19 -19
  111. data/spec/fixtures/responses/whois.centralnic.com/ru.com/status_available.expected +4 -4
  112. data/spec/fixtures/responses/whois.centralnic.com/ru.com/status_registered.expected +16 -16
  113. data/spec/fixtures/responses/whois.centralnic.com/sa.com/status_available.expected +4 -4
  114. data/spec/fixtures/responses/whois.centralnic.com/sa.com/status_registered.expected +17 -17
  115. data/spec/fixtures/responses/whois.centralnic.com/se.com/status_available.expected +4 -4
  116. data/spec/fixtures/responses/whois.centralnic.com/se.com/status_registered.expected +19 -19
  117. data/spec/fixtures/responses/whois.centralnic.com/se.net/status_available.expected +4 -4
  118. data/spec/fixtures/responses/whois.centralnic.com/se.net/status_registered.expected +17 -17
  119. data/spec/fixtures/responses/whois.centralnic.com/uk.com/status_available.expected +4 -4
  120. data/spec/fixtures/responses/whois.centralnic.com/uk.com/status_registered.expected +17 -17
  121. data/spec/fixtures/responses/whois.centralnic.com/uk.net/status_available.expected +4 -4
  122. data/spec/fixtures/responses/whois.centralnic.com/uk.net/status_registered.expected +17 -17
  123. data/spec/fixtures/responses/whois.centralnic.com/us.com/status_available.expected +4 -4
  124. data/spec/fixtures/responses/whois.centralnic.com/us.com/status_registered.expected +18 -18
  125. data/spec/fixtures/responses/whois.centralnic.com/us.org/status_available.expected +4 -4
  126. data/spec/fixtures/responses/whois.centralnic.com/uy.com/status_available.expected +4 -4
  127. data/spec/fixtures/responses/whois.centralnic.com/uy.com/status_registered.expected +17 -17
  128. data/spec/fixtures/responses/whois.centralnic.com/za.com/status_available.expected +4 -4
  129. data/spec/fixtures/responses/whois.centralnic.com/za.com/status_registered.expected +17 -17
  130. data/spec/fixtures/responses/whois.cira.ca/schema-1/status_available.expected +1 -1
  131. data/spec/fixtures/responses/whois.cira.ca/schema-1/status_registered.expected +10 -10
  132. data/spec/fixtures/responses/whois.cira.ca/schema-2/status_available.expected +1 -1
  133. data/spec/fixtures/responses/whois.cira.ca/schema-2/status_registered.expected +9 -9
  134. data/spec/fixtures/responses/whois.cnnic.cn/status_available.expected +3 -3
  135. data/spec/fixtures/responses/whois.cnnic.cn/status_registered.expected +16 -16
  136. data/spec/fixtures/responses/whois.co.ca/status_available.expected +1 -1
  137. data/spec/fixtures/responses/whois.co.ca/status_registered.expected +6 -6
  138. data/spec/fixtures/responses/whois.co.pl/status_available.expected +1 -1
  139. data/spec/fixtures/responses/whois.co.pl/status_registered.expected +5 -5
  140. data/spec/fixtures/responses/whois.co.ug/status_available.expected +1 -1
  141. data/spec/fixtures/responses/whois.co.ug/status_registered.expected +8 -8
  142. data/spec/fixtures/responses/whois.crsnic.net/property_nameserver_no_nameserver.expected +1 -1
  143. data/spec/fixtures/responses/whois.crsnic.net/property_registrar_with_multiple_entries.expected +1 -1
  144. data/spec/fixtures/responses/whois.crsnic.net/status_available.expected +1 -1
  145. data/spec/fixtures/responses/whois.crsnic.net/status_registered.expected +10 -10
  146. data/spec/fixtures/responses/whois.denic.de/schema-1.10.0/status_available.expected +4 -4
  147. data/spec/fixtures/responses/whois.denic.de/schema-1.10.0/status_registered.expected +17 -17
  148. data/spec/fixtures/responses/whois.denic.de/schema-1.11.0/property_nameservers_with_ip.expected +5 -5
  149. data/spec/fixtures/responses/whois.denic.de/schema-1.11.0/status_available.expected +4 -4
  150. data/spec/fixtures/responses/whois.denic.de/schema-1.11.0/status_invalid.expected +4 -4
  151. data/spec/fixtures/responses/whois.denic.de/schema-1.11.0/status_registered.expected +13 -13
  152. data/spec/fixtures/responses/whois.denic.de/schema-2.0/property_nameservers_with_ip.expected +5 -5
  153. data/spec/fixtures/responses/whois.denic.de/schema-2.0/status_available.expected +4 -4
  154. data/spec/fixtures/responses/whois.denic.de/schema-2.0/status_invalid.expected +4 -4
  155. data/spec/fixtures/responses/whois.denic.de/schema-2.0/status_registered.expected +13 -13
  156. data/spec/fixtures/responses/whois.dk-hostmaster.dk/status_available.expected +1 -1
  157. data/spec/fixtures/responses/whois.dk-hostmaster.dk/status_registered.expected +6 -6
  158. data/spec/fixtures/responses/whois.dns.be/property_nameservers_with_ip.expected +5 -5
  159. data/spec/fixtures/responses/whois.dns.be/status_available.expected +1 -1
  160. data/spec/fixtures/responses/whois.dns.be/status_registered.expected +7 -7
  161. data/spec/fixtures/responses/whois.dns.hr/status_available.expected +54 -0
  162. data/spec/fixtures/responses/whois.dns.hr/status_available.txt +1 -0
  163. data/spec/fixtures/responses/whois.dns.hr/status_registered.expected +67 -0
  164. data/spec/fixtures/responses/whois.dns.hr/status_registered.txt +7 -0
  165. data/spec/fixtures/responses/whois.dns.lu/property_nameservers_with_ip.expected +5 -5
  166. data/spec/fixtures/responses/whois.dns.lu/status_available.expected +1 -1
  167. data/spec/fixtures/responses/whois.dns.lu/status_registered.expected +7 -7
  168. data/spec/fixtures/responses/whois.dns.pl/property_nameservers_with_ip.expected +4 -4
  169. data/spec/fixtures/responses/whois.dns.pl/status_available.expected +1 -1
  170. data/spec/fixtures/responses/whois.dns.pl/status_registered.expected +6 -6
  171. data/spec/fixtures/responses/whois.dns.pt/property_nameservers.expected +6 -6
  172. data/spec/fixtures/responses/whois.dns.pt/property_nameservers_without_host.expected +6 -6
  173. data/spec/fixtures/responses/whois.dns.pt/status_available.expected +1 -1
  174. data/spec/fixtures/responses/whois.dns.pt/status_inactive.expected +4 -4
  175. data/spec/fixtures/responses/whois.dns.pt/status_registered.expected +8 -8
  176. data/spec/fixtures/responses/whois.dns.pt/status_reserved.expected +2 -2
  177. data/spec/fixtures/responses/whois.domain-registry.nl/property_nameservers_with_ip.expected +4 -4
  178. data/spec/fixtures/responses/whois.domain-registry.nl/status_available.expected +1 -1
  179. data/spec/fixtures/responses/whois.domain-registry.nl/status_redemption.expected +1 -1
  180. data/spec/fixtures/responses/whois.domain-registry.nl/status_registered.expected +8 -8
  181. data/spec/fixtures/responses/whois.domain.kg/status_available.expected +1 -1
  182. data/spec/fixtures/responses/whois.domain.kg/status_registered.expected +7 -7
  183. data/spec/fixtures/responses/whois.domainregistry.ie/property_nameservers_with_ip.expected +8 -8
  184. data/spec/fixtures/responses/whois.domainregistry.ie/status_available.expected +1 -1
  185. data/spec/fixtures/responses/whois.domainregistry.ie/status_registered.expected +6 -6
  186. data/spec/fixtures/responses/whois.domainregistry.my/status_available.expected +1 -1
  187. data/spec/fixtures/responses/whois.domainregistry.my/status_registered.expected +7 -7
  188. data/spec/fixtures/responses/whois.domreg.lt/property_nameservers_with_ip.expected +6 -6
  189. data/spec/fixtures/responses/whois.domreg.lt/status_available.expected +1 -1
  190. data/spec/fixtures/responses/whois.domreg.lt/status_registered.expected +6 -6
  191. data/spec/fixtures/responses/whois.dot.tk/status_available.expected +1 -1
  192. data/spec/fixtures/responses/whois.dot.tk/status_registered.expected +8 -8
  193. data/spec/fixtures/responses/whois.dotmobiregistry.net/status_available.expected +4 -4
  194. data/spec/fixtures/responses/whois.dotmobiregistry.net/status_registered.expected +19 -19
  195. data/spec/fixtures/responses/whois.dreamhost.com/property_contact_private.expected +47 -0
  196. data/spec/fixtures/responses/whois.dreamhost.com/property_contact_private.txt +75 -0
  197. data/spec/fixtures/responses/whois.dreamhost.com/status_registered.expected +87 -0
  198. data/spec/fixtures/responses/whois.dreamhost.com/status_registered.txt +79 -0
  199. data/spec/fixtures/responses/whois.educause.edu/property_registrant_without_address.expected +3 -3
  200. data/spec/fixtures/responses/whois.educause.edu/property_registrant_without_zip.expected +3 -3
  201. data/spec/fixtures/responses/whois.educause.edu/status_available.expected +1 -1
  202. data/spec/fixtures/responses/whois.educause.edu/status_registered.expected +11 -11
  203. data/spec/fixtures/responses/whois.eenet.ee/status_available.expected +1 -1
  204. data/spec/fixtures/responses/whois.eenet.ee/status_registered.expected +6 -6
  205. data/spec/fixtures/responses/whois.eu/property_nameservers.expected +7 -7
  206. data/spec/fixtures/responses/whois.eu/status_available.expected +1 -1
  207. data/spec/fixtures/responses/whois.eu/status_registered.expected +6 -6
  208. data/spec/fixtures/responses/{whois.net.ua → whois.fi}/status_available.expected +3 -3
  209. data/spec/fixtures/responses/{whois.ficora.fi → whois.fi}/status_available.txt +0 -0
  210. data/spec/fixtures/responses/{whois.ficora.fi → whois.fi}/status_registered.expected +8 -8
  211. data/spec/fixtures/responses/{whois.ficora.fi → whois.fi}/status_registered.txt +0 -0
  212. data/spec/fixtures/responses/whois.gg/status_available.expected +1 -1
  213. data/spec/fixtures/responses/whois.gg/status_registered.expected +8 -8
  214. data/spec/fixtures/responses/whois.godaddy.com/status_registered.expected +22 -22
  215. data/spec/fixtures/responses/whois.godaddy.com/status_registered.txt +11 -11
  216. data/spec/fixtures/responses/whois.gov.za/status_registered.expected +1 -1
  217. data/spec/fixtures/responses/whois.hkirc.hk/status_available.expected +1 -1
  218. data/spec/fixtures/responses/whois.hkirc.hk/status_registered.expected +6 -6
  219. data/spec/fixtures/responses/whois.iam.net.ma/status_registered.expected +2 -2
  220. data/spec/fixtures/responses/whois.iana.org/int/status_available.expected +4 -4
  221. data/spec/fixtures/responses/whois.iana.org/int/status_registered.expected +17 -17
  222. data/spec/fixtures/responses/whois.iana.org/tld/status_not_assigned.expected +5 -5
  223. data/spec/fixtures/responses/whois.in.ua/status_available.expected +1 -1
  224. data/spec/fixtures/responses/whois.in.ua/status_registered.expected +7 -7
  225. data/spec/fixtures/responses/whois.isnic.is/status_available.expected +1 -1
  226. data/spec/fixtures/responses/whois.isnic.is/status_registered.expected +6 -6
  227. data/spec/fixtures/responses/whois.isoc.org.il/status_available.expected +1 -1
  228. data/spec/fixtures/responses/whois.isoc.org.il/status_registered.expected +9 -9
  229. data/spec/fixtures/responses/whois.ja.net/ac.uk/status_available.expected +1 -1
  230. data/spec/fixtures/responses/whois.ja.net/ac.uk/status_registered.expected +9 -9
  231. data/spec/fixtures/responses/whois.ja.net/gov.uk/status_available.expected +1 -1
  232. data/spec/fixtures/responses/whois.ja.net/gov.uk/status_registered.expected +13 -13
  233. data/spec/fixtures/responses/whois.je/status_available.expected +1 -1
  234. data/spec/fixtures/responses/whois.je/status_registered.expected +8 -8
  235. data/spec/fixtures/responses/whois.jprs.jp/jp/property_updates_on_error_out-of-range.expected +1 -1
  236. data/spec/fixtures/responses/whois.jprs.jp/jp/status_available.expected +1 -1
  237. data/spec/fixtures/responses/whois.jprs.jp/jp/status_registered.expected +9 -9
  238. data/spec/fixtures/responses/whois.jprs.jp/jp/status_reserved.expected +2 -2
  239. data/spec/fixtures/responses/whois.jprs.jp/ne.jp/status_available.expected +1 -1
  240. data/spec/fixtures/responses/whois.jprs.jp/ne.jp/status_registered.expected +8 -8
  241. data/spec/fixtures/responses/whois.kenic.or.ke/status_available.expected +1 -1
  242. data/spec/fixtures/responses/whois.kenic.or.ke/status_registered.expected +9 -9
  243. data/spec/fixtures/responses/whois.kr/property_nameservers_with_ip.expected +4 -4
  244. data/spec/fixtures/responses/whois.kr/status_available.expected +1 -1
  245. data/spec/fixtures/responses/whois.kr/status_registered.expected +7 -7
  246. data/spec/fixtures/responses/whois.markmonitor.com/property_contacts_are_blank.expected +7 -7
  247. data/spec/fixtures/responses/whois.markmonitor.com/status_registered.expected +19 -19
  248. data/spec/fixtures/responses/whois.meregistry.net/property_nameservers_is_blank.expected +1 -1
  249. data/spec/fixtures/responses/whois.meregistry.net/status_available.expected +4 -4
  250. data/spec/fixtures/responses/whois.meregistry.net/status_registered.expected +19 -19
  251. data/spec/fixtures/responses/whois.museum/status_available.expected +1 -1
  252. data/spec/fixtures/responses/whois.museum/status_registered.expected +7 -7
  253. data/spec/fixtures/responses/whois.na-nic.com.na/status_available.expected +1 -1
  254. data/spec/fixtures/responses/whois.na-nic.com.na/status_registered.expected +7 -7
  255. data/spec/fixtures/responses/whois.nc/status_available.expected +55 -0
  256. data/spec/fixtures/responses/whois.nc/status_available.txt +6 -0
  257. data/spec/fixtures/responses/whois.nc/status_registered.expected +76 -0
  258. data/spec/fixtures/responses/whois.nc/status_registered.txt +24 -0
  259. data/spec/fixtures/responses/whois.netcom.cm/status_available.expected +1 -1
  260. data/spec/fixtures/responses/whois.netcom.cm/status_registered.expected +9 -9
  261. data/spec/fixtures/responses/whois.nic-se.se/property_datetime_is_dash.expected +2 -2
  262. data/spec/fixtures/responses/whois.nic-se.se/property_nameservers_with_ip.expected +6 -6
  263. data/spec/fixtures/responses/whois.nic-se.se/status_available.expected +1 -1
  264. data/spec/fixtures/responses/whois.nic-se.se/status_registered.expected +9 -9
  265. data/spec/fixtures/responses/whois.nic.af/status_available.expected +1 -1
  266. data/spec/fixtures/responses/whois.nic.af/status_registered.expected +7 -7
  267. data/spec/fixtures/responses/whois.nic.ag/status_available.expected +4 -4
  268. data/spec/fixtures/responses/whois.nic.ag/status_registered.expected +19 -19
  269. data/spec/fixtures/responses/whois.nic.am/status_available.expected +1 -1
  270. data/spec/fixtures/responses/whois.nic.am/status_registered.expected +9 -9
  271. data/spec/fixtures/responses/whois.nic.as/status_available.expected +1 -1
  272. data/spec/fixtures/responses/whois.nic.as/status_registered.expected +6 -6
  273. data/spec/fixtures/responses/whois.nic.asia/status_available.expected +4 -4
  274. data/spec/fixtures/responses/whois.nic.asia/status_registered.expected +17 -17
  275. data/spec/fixtures/responses/whois.nic.at/status_available.expected +1 -1
  276. data/spec/fixtures/responses/whois.nic.at/status_registered.expected +7 -7
  277. data/spec/fixtures/responses/whois.nic.bo/status_registered.expected +2 -2
  278. data/spec/fixtures/responses/whois.nic.cc/property_nameserver_no_nameserver.expected +1 -1
  279. data/spec/fixtures/responses/whois.nic.cc/status_available.expected +1 -1
  280. data/spec/fixtures/responses/whois.nic.cc/status_registered.expected +9 -9
  281. data/spec/fixtures/responses/whois.nic.cd/status_available.expected +1 -1
  282. data/spec/fixtures/responses/whois.nic.cd/status_registered.expected +8 -8
  283. data/spec/fixtures/responses/whois.nic.ch/property_nameservers_with_ip.expected +4 -4
  284. data/spec/fixtures/responses/whois.nic.ch/status_available.expected +1 -1
  285. data/spec/fixtures/responses/whois.nic.ch/status_registered.expected +6 -6
  286. data/spec/fixtures/responses/whois.nic.ci/status_available.expected +1 -1
  287. data/spec/fixtures/responses/whois.nic.ci/status_registered.expected +8 -8
  288. data/spec/fixtures/responses/whois.nic.ck/status_available.expected +1 -1
  289. data/spec/fixtures/responses/whois.nic.ck/status_registered.expected +6 -6
  290. data/spec/fixtures/responses/whois.nic.cl/status_available.expected +1 -1
  291. data/spec/fixtures/responses/whois.nic.cl/status_registered.expected +6 -6
  292. data/spec/fixtures/responses/whois.nic.co/status_available.expected +1 -1
  293. data/spec/fixtures/responses/whois.nic.co/status_registered.expected +9 -9
  294. data/spec/fixtures/responses/whois.nic.coop/status_available.expected +1 -1
  295. data/spec/fixtures/responses/whois.nic.coop/status_registered.expected +7 -7
  296. data/spec/fixtures/responses/whois.nic.cx/status_available.expected +1 -1
  297. data/spec/fixtures/responses/whois.nic.cx/status_registered.expected +9 -9
  298. data/spec/fixtures/responses/whois.nic.cz/property_nameservers_with_ip.expected +5 -5
  299. data/spec/fixtures/responses/whois.nic.cz/status_available.expected +1 -1
  300. data/spec/fixtures/responses/whois.nic.cz/status_registered.expected +9 -9
  301. data/spec/fixtures/responses/whois.nic.ec/status_available.expected +1 -1
  302. data/spec/fixtures/responses/whois.nic.ec/status_registered.expected +9 -9
  303. data/spec/fixtures/responses/whois.nic.fr/fr/property_contact_without_address.expected +2 -2
  304. data/spec/fixtures/responses/whois.nic.fr/fr/property_nameservers.expected +6 -6
  305. data/spec/fixtures/responses/whois.nic.fr/fr/property_nameservers_multiple_ipv4.expected +4 -4
  306. data/spec/fixtures/responses/whois.nic.fr/fr/property_nameservers_with_ipv4_and_some_ipv6.expected +8 -8
  307. data/spec/fixtures/responses/whois.nic.fr/fr/status_available.expected +4 -4
  308. data/spec/fixtures/responses/whois.nic.fr/fr/status_registered.expected +17 -17
  309. data/spec/fixtures/responses/whois.nic.fr/pm/property_nameservers_with_ipv4_and_ipv6.expected +5 -5
  310. data/spec/fixtures/responses/whois.nic.fr/pm/status_available.expected +4 -4
  311. data/spec/fixtures/responses/whois.nic.fr/pm/status_registered.expected +13 -13
  312. data/spec/fixtures/responses/whois.nic.fr/re/property_nameservers_with_ipv4_and_ipv6.expected +5 -5
  313. data/spec/fixtures/responses/whois.nic.fr/re/status_available.expected +4 -4
  314. data/spec/fixtures/responses/whois.nic.fr/re/status_registered.expected +13 -13
  315. data/spec/fixtures/responses/whois.nic.fr/tf/status_available.expected +4 -4
  316. data/spec/fixtures/responses/whois.nic.fr/tf/status_registered.expected +16 -16
  317. data/spec/fixtures/responses/whois.nic.fr/wf/status_available.expected +4 -4
  318. data/spec/fixtures/responses/whois.nic.fr/wf/status_registered.expected +16 -16
  319. data/spec/fixtures/responses/whois.nic.fr/yt/status_available.expected +4 -4
  320. data/spec/fixtures/responses/whois.nic.fr/yt/status_registered.expected +16 -16
  321. data/spec/fixtures/responses/whois.nic.gl/property_status_active.expected +8 -0
  322. data/spec/fixtures/responses/whois.nic.gl/property_status_active.txt +47 -0
  323. data/spec/fixtures/responses/whois.nic.gl/property_status_delegated.expected +8 -0
  324. data/spec/fixtures/responses/whois.nic.gl/property_status_delegated.txt +48 -0
  325. data/spec/fixtures/responses/whois.nic.gl/status_available.expected +1 -1
  326. data/spec/fixtures/responses/whois.nic.gl/status_registered.expected +9 -9
  327. data/spec/fixtures/responses/whois.nic.gl/status_registered.txt +9 -5
  328. data/spec/fixtures/responses/whois.nic.gs/status_available.expected +1 -1
  329. data/spec/fixtures/responses/whois.nic.gs/status_registered.expected +7 -7
  330. data/spec/fixtures/responses/whois.nic.ht/status_available.expected +1 -1
  331. data/spec/fixtures/responses/whois.nic.ht/status_registered.expected +9 -9
  332. data/spec/fixtures/responses/whois.nic.hu/schema-1.99/property_contact_company.expected +3 -3
  333. data/spec/fixtures/responses/whois.nic.hu/schema-1.99/property_contact_company.txt +2 -2
  334. data/spec/fixtures/responses/whois.nic.hu/schema-1.99/property_contact_private_person.expected +2 -2
  335. data/spec/fixtures/responses/whois.nic.hu/schema-1.99/property_contact_private_person.txt +1 -1
  336. data/spec/fixtures/responses/whois.nic.hu/schema-1.99/property_contact_without_address.expected +3 -3
  337. data/spec/fixtures/responses/whois.nic.hu/schema-1.99/property_contact_without_address.txt +1 -1
  338. data/spec/fixtures/responses/whois.nic.hu/schema-1.99/status_available.expected +4 -4
  339. data/spec/fixtures/responses/whois.nic.hu/schema-1.99/status_in_progress.expected +3 -3
  340. data/spec/fixtures/responses/whois.nic.hu/schema-1.99/status_registered.expected +23 -23
  341. data/spec/fixtures/responses/whois.nic.hu/schema-1.99/status_registered.txt +2 -2
  342. data/spec/fixtures/responses/whois.nic.hu/schema-current/status_available.expected +4 -4
  343. data/spec/fixtures/responses/whois.nic.hu/schema-current/status_registered.expected +4 -4
  344. data/spec/fixtures/responses/whois.nic.im/status_available.expected +1 -1
  345. data/spec/fixtures/responses/whois.nic.im/status_registered.expected +7 -7
  346. data/spec/fixtures/responses/whois.nic.ir/status_available.expected +1 -1
  347. data/spec/fixtures/responses/whois.nic.ir/status_registered.expected +7 -7
  348. data/spec/fixtures/responses/whois.nic.it/property_contact_province.expected +3 -3
  349. data/spec/fixtures/responses/whois.nic.it/property_contact_with_company_in_address.expected +3 -3
  350. data/spec/fixtures/responses/whois.nic.it/property_contact_with_organization.expected +3 -3
  351. data/spec/fixtures/responses/whois.nic.it/property_status_pending-delete.expected +8 -0
  352. data/spec/fixtures/responses/whois.nic.it/property_status_pending-delete.txt +54 -0
  353. data/spec/fixtures/responses/whois.nic.it/property_status_pendingupdate_autorenewperiod.expected +8 -0
  354. data/spec/fixtures/responses/whois.nic.it/property_status_pendingupdate_autorenewperiod.txt +62 -0
  355. data/spec/fixtures/responses/whois.nic.it/property_technical_contact.expected +3 -3
  356. data/spec/fixtures/responses/whois.nic.it/status_available.expected +4 -4
  357. data/spec/fixtures/responses/whois.nic.it/status_registered.expected +19 -19
  358. data/spec/fixtures/responses/whois.nic.ki/status_available.expected +1 -1
  359. data/spec/fixtures/responses/whois.nic.ki/status_registered.expected +9 -9
  360. data/spec/fixtures/responses/whois.nic.kz/status_available.expected +1 -1
  361. data/spec/fixtures/responses/whois.nic.kz/status_registered.expected +6 -6
  362. data/spec/fixtures/responses/whois.nic.la/status_available.expected +4 -4
  363. data/spec/fixtures/responses/whois.nic.la/status_registered.expected +19 -19
  364. data/spec/fixtures/responses/whois.nic.li/status_available.expected +1 -1
  365. data/spec/fixtures/responses/whois.nic.li/status_registered.expected +6 -6
  366. data/spec/fixtures/responses/whois.nic.lk/lk/status_available.expected +55 -0
  367. data/spec/fixtures/responses/whois.nic.lk/lk/status_available.txt +1 -0
  368. data/spec/fixtures/responses/whois.nic.lk/lk/status_registered.expected +70 -0
  369. data/spec/fixtures/responses/whois.nic.lk/lk/status_registered.txt +24 -0
  370. data/spec/fixtures/responses/whois.nic.lk/xn--fzc2c9e2c/status_available.txt +0 -0
  371. data/spec/fixtures/responses/whois.nic.lk/xn--fzc2c9e2c/status_registered.txt +18 -0
  372. data/spec/fixtures/responses/whois.nic.lk/xn--xkc2al3hye2a/status_available.txt +0 -0
  373. data/spec/fixtures/responses/whois.nic.lk/xn--xkc2al3hye2a/status_registered.txt +18 -0
  374. data/spec/fixtures/responses/whois.nic.lv/status_available.expected +1 -1
  375. data/spec/fixtures/responses/whois.nic.lv/status_registered.expected +7 -7
  376. data/spec/fixtures/responses/whois.nic.ly/status_available.expected +1 -1
  377. data/spec/fixtures/responses/whois.nic.ly/status_registered.expected +9 -9
  378. data/spec/fixtures/responses/whois.nic.md/status_available.expected +2 -2
  379. data/spec/fixtures/responses/whois.nic.md/status_registered.expected +9 -9
  380. data/spec/fixtures/responses/whois.nic.mg/property_status_active.expected +8 -0
  381. data/spec/fixtures/responses/whois.nic.mg/property_status_active.txt +65 -0
  382. data/spec/fixtures/responses/whois.nic.mg/property_status_delegated.expected +8 -0
  383. data/spec/fixtures/responses/whois.nic.mg/property_status_delegated.txt +78 -0
  384. data/spec/fixtures/responses/whois.nic.mg/status_available.expected +1 -1
  385. data/spec/fixtures/responses/whois.nic.mg/status_registered.expected +9 -9
  386. data/spec/fixtures/responses/whois.nic.ms/status_available.expected +1 -1
  387. data/spec/fixtures/responses/whois.nic.ms/status_registered.expected +7 -7
  388. data/spec/fixtures/responses/whois.nic.mu/status_available.expected +1 -1
  389. data/spec/fixtures/responses/whois.nic.mu/status_registered.expected +9 -9
  390. data/spec/fixtures/responses/whois.nic.mx/property_nameservers_with_ip.expected +4 -4
  391. data/spec/fixtures/responses/whois.nic.mx/status_available.expected +1 -1
  392. data/spec/fixtures/responses/whois.nic.mx/status_registered.expected +8 -8
  393. data/spec/fixtures/responses/whois.nic.net.nf/status_available.expected +1 -1
  394. data/spec/fixtures/responses/whois.nic.net.nf/status_registered.expected +9 -9
  395. data/spec/fixtures/responses/whois.nic.net.ng/status_available.expected +1 -1
  396. data/spec/fixtures/responses/whois.nic.net.ng/status_registered.expected +9 -9
  397. data/spec/fixtures/responses/whois.nic.net.sa/status_available.expected +1 -1
  398. data/spec/fixtures/responses/whois.nic.net.sa/status_registered.expected +5 -5
  399. data/spec/fixtures/responses/whois.nic.net.sb/status_available.expected +1 -1
  400. data/spec/fixtures/responses/whois.nic.net.sb/status_registered.expected +7 -7
  401. data/spec/fixtures/responses/whois.nic.nu/status_available.expected +1 -1
  402. data/spec/fixtures/responses/whois.nic.nu/status_registered.expected +9 -9
  403. data/spec/fixtures/responses/whois.nic.org.uy/status_available.expected +1 -1
  404. data/spec/fixtures/responses/whois.nic.org.uy/status_registered.expected +6 -6
  405. data/spec/fixtures/responses/whois.nic.pr/status_registered.expected +2 -2
  406. data/spec/fixtures/responses/whois.nic.priv.at/status_registered.expected +1 -1
  407. data/spec/fixtures/responses/whois.nic.sl/status_available.expected +1 -1
  408. data/spec/fixtures/responses/whois.nic.sl/status_registered.expected +8 -8
  409. data/spec/fixtures/responses/whois.nic.sm/status_available.expected +1 -1
  410. data/spec/fixtures/responses/whois.nic.sm/status_registered.expected +8 -8
  411. data/spec/fixtures/responses/whois.nic.sn/status_available.expected +4 -4
  412. data/spec/fixtures/responses/whois.nic.sn/status_registered.expected +17 -17
  413. data/spec/fixtures/responses/whois.nic.so/status_available.expected +1 -1
  414. data/spec/fixtures/responses/whois.nic.so/status_registered.expected +9 -9
  415. data/spec/fixtures/responses/whois.nic.st/status_available.expected +1 -1
  416. data/spec/fixtures/responses/whois.nic.st/status_registered.expected +8 -8
  417. data/spec/fixtures/responses/whois.nic.tel/status_available.expected +1 -1
  418. data/spec/fixtures/responses/whois.nic.tel/status_registered.expected +10 -10
  419. data/spec/fixtures/responses/whois.nic.tl/status_available.expected +1 -1
  420. data/spec/fixtures/responses/whois.nic.tl/status_registered.expected +7 -7
  421. data/spec/fixtures/responses/whois.nic.tr/property_nameservers_with_ip.expected +5 -5
  422. data/spec/fixtures/responses/whois.nic.tr/property_nameservers_with_trailing_space.expected +4 -4
  423. data/spec/fixtures/responses/whois.nic.tr/status_available.expected +1 -1
  424. data/spec/fixtures/responses/whois.nic.tr/status_registered.expected +6 -6
  425. data/spec/fixtures/responses/whois.nic.travel/status_available.expected +1 -1
  426. data/spec/fixtures/responses/whois.nic.travel/status_registered.expected +7 -7
  427. data/spec/fixtures/responses/whois.nic.tv/property_nameserver_no_nameserver.expected +1 -1
  428. data/spec/fixtures/responses/whois.nic.tv/status_available.expected +1 -1
  429. data/spec/fixtures/responses/whois.nic.tv/status_registered.expected +7 -7
  430. data/spec/fixtures/responses/whois.nic.uk/property_nameservers_with_ip.expected +4 -4
  431. data/spec/fixtures/responses/whois.nic.uk/property_registrar_without_trading_name.expected +1 -1
  432. data/spec/fixtures/responses/whois.nic.uk/property_status_no_status_listed.expected +8 -0
  433. data/spec/fixtures/responses/whois.nic.uk/property_status_no_status_listed.txt +48 -0
  434. data/spec/fixtures/responses/whois.nic.uk/status_available.expected +1 -1
  435. data/spec/fixtures/responses/whois.nic.uk/status_registered.expected +13 -13
  436. data/spec/fixtures/responses/whois.nic.uk/status_reserved.expected +71 -0
  437. data/spec/fixtures/responses/whois.nic.uk/status_reserved.txt +48 -0
  438. data/spec/fixtures/responses/whois.nic.uk/status_suspended.expected +5 -5
  439. data/spec/fixtures/responses/whois.nic.us/status_available.expected +1 -1
  440. data/spec/fixtures/responses/whois.nic.us/status_registered.expected +9 -9
  441. data/spec/fixtures/responses/whois.nic.ve/property_nameservers.expected +4 -4
  442. data/spec/fixtures/responses/whois.nic.ve/property_nameservers_missing.expected +1 -1
  443. data/spec/fixtures/responses/whois.nic.ve/property_updated_on.expected +1 -1
  444. data/spec/fixtures/responses/whois.nic.ve/status_available.expected +1 -1
  445. data/spec/fixtures/responses/whois.nic.ve/status_inactive.expected +7 -7
  446. data/spec/fixtures/responses/whois.nic.ve/status_registered.expected +3 -3
  447. data/spec/fixtures/responses/whois.nic.xxx/status_available.expected +4 -4
  448. data/spec/fixtures/responses/whois.nic.xxx/status_registered.expected +16 -16
  449. data/spec/fixtures/responses/whois.norid.no/status_registered.expected +2 -2
  450. data/spec/fixtures/responses/whois.pandi.or.id/status_available.expected +1 -1
  451. data/spec/fixtures/responses/whois.pandi.or.id/status_registered.expected +9 -9
  452. data/spec/fixtures/responses/whois.pnina.ps/property_nameservers_with_nodns.expected +3 -3
  453. data/spec/fixtures/responses/whois.pnina.ps/status_available.expected +1 -1
  454. data/spec/fixtures/responses/whois.pnina.ps/status_registered.expected +7 -7
  455. data/spec/fixtures/responses/whois.publicinterestregistry.net/status_available.expected +4 -4
  456. data/spec/fixtures/responses/whois.publicinterestregistry.net/status_registered.expected +19 -19
  457. data/spec/fixtures/responses/whois.register.bg/property_nameservers_with_ip.expected +4 -4
  458. data/spec/fixtures/responses/whois.register.bg/status_available.expected +1 -1
  459. data/spec/fixtures/responses/whois.register.bg/status_registered.expected +8 -8
  460. data/spec/fixtures/responses/whois.registro.br/property_nameservers_with_ip.expected +6 -6
  461. data/spec/fixtures/responses/whois.registro.br/status_available.expected +1 -1
  462. data/spec/fixtures/responses/whois.registro.br/status_registered.expected +7 -7
  463. data/spec/fixtures/responses/whois.registry.gy/status_available.expected +1 -1
  464. data/spec/fixtures/responses/whois.registry.gy/status_registered.expected +9 -9
  465. data/spec/fixtures/responses/whois.registry.hm/status_available.expected +1 -1
  466. data/spec/fixtures/responses/whois.registry.hm/status_registered.expected +6 -6
  467. data/spec/fixtures/responses/whois.registry.in/status_available.expected +4 -4
  468. data/spec/fixtures/responses/whois.registry.in/status_registered.expected +15 -15
  469. data/spec/fixtures/responses/whois.registry.qa/property_nameservers_without_ips.expected +12 -0
  470. data/spec/fixtures/responses/whois.registry.qa/property_nameservers_without_ips.txt +22 -0
  471. data/spec/fixtures/responses/whois.registry.qa/{qa/status_available.expected → status_available.expected} +3 -3
  472. data/spec/fixtures/responses/whois.registry.qa/{qa/status_available.txt → status_available.txt} +0 -0
  473. data/spec/fixtures/responses/whois.registry.qa/{qa/status_registered.expected → status_registered.expected} +11 -11
  474. data/spec/fixtures/responses/whois.registry.qa/{qa/status_registered.txt → status_registered.txt} +0 -0
  475. data/spec/fixtures/responses/whois.registrypro.pro/status_available.expected +1 -1
  476. data/spec/fixtures/responses/whois.registrypro.pro/status_registered.expected +9 -9
  477. data/spec/fixtures/responses/whois.ripe.net/fo/status_available.expected +1 -1
  478. data/spec/fixtures/responses/whois.ripe.net/fo/status_registered.expected +4 -4
  479. data/spec/fixtures/responses/whois.ripe.net/gm/status_available.expected +1 -1
  480. data/spec/fixtures/responses/whois.ripe.net/gm/status_registered.expected +4 -4
  481. data/spec/fixtures/responses/whois.ripe.net/mc/status_available.expected +1 -1
  482. data/spec/fixtures/responses/whois.ripe.net/mc/status_registered.expected +5 -5
  483. data/spec/fixtures/responses/whois.ripe.net/va/status_available.expected +1 -1
  484. data/spec/fixtures/responses/whois.ripe.net/va/status_registered.expected +7 -7
  485. data/spec/fixtures/responses/whois.rnids.rs/status_available.expected +57 -0
  486. data/spec/fixtures/responses/whois.rnids.rs/status_available.txt +1 -0
  487. data/spec/fixtures/responses/whois.rnids.rs/status_registered.expected +94 -0
  488. data/spec/fixtures/responses/whois.rnids.rs/status_registered.txt +44 -0
  489. data/spec/fixtures/responses/whois.rotld.ro/status_available.expected +1 -1
  490. data/spec/fixtures/responses/whois.rotld.ro/status_registered.expected +6 -6
  491. data/spec/fixtures/responses/whois.samoanic.ws/status_available.expected +1 -1
  492. data/spec/fixtures/responses/whois.samoanic.ws/status_registered.expected +9 -9
  493. data/spec/fixtures/responses/whois.sgnic.sg/property_nameservers_schema_1.expected +6 -6
  494. data/spec/fixtures/responses/whois.sgnic.sg/property_nameservers_schema_1_with_ip.expected +5 -5
  495. data/spec/fixtures/responses/whois.sgnic.sg/property_nameservers_schema_2.expected +6 -6
  496. data/spec/fixtures/responses/whois.sgnic.sg/status_available.expected +1 -1
  497. data/spec/fixtures/responses/whois.sgnic.sg/status_registered.expected +8 -8
  498. data/spec/fixtures/responses/whois.sk-nic.sk/status_available.expected +1 -1
  499. data/spec/fixtures/responses/whois.sk-nic.sk/status_registered.expected +8 -8
  500. data/spec/fixtures/responses/whois.smallregistry.net/status_available.expected +4 -4
  501. data/spec/fixtures/responses/whois.smallregistry.net/status_registered.expected +16 -16
  502. data/spec/fixtures/responses/whois.srs.net.nz/status_available.expected +1 -1
  503. data/spec/fixtures/responses/whois.srs.net.nz/status_invalid.expected +1 -1
  504. data/spec/fixtures/responses/whois.srs.net.nz/status_registered.expected +9 -9
  505. data/spec/fixtures/responses/whois.tcinet.ru/ru/property_nameservers_with_ip.expected +5 -5
  506. data/spec/fixtures/responses/whois.tcinet.ru/ru/status_available.expected +2 -2
  507. data/spec/fixtures/responses/whois.tcinet.ru/ru/status_registered.expected +12 -12
  508. data/spec/fixtures/responses/whois.tcinet.ru/su/status_available.expected +2 -2
  509. data/spec/fixtures/responses/whois.tcinet.ru/su/status_registered.expected +10 -10
  510. data/spec/fixtures/responses/whois.tcinet.ru/xn--p1ai/status_available.expected +2 -2
  511. data/spec/fixtures/responses/whois.tcinet.ru/xn--p1ai/status_registered.expected +11 -11
  512. data/spec/fixtures/responses/whois.thnic.co.th/status_available.expected +1 -1
  513. data/spec/fixtures/responses/whois.thnic.co.th/status_registered.expected +9 -9
  514. data/spec/fixtures/responses/whois.tld.ee/status_available.expected +3 -3
  515. data/spec/fixtures/responses/whois.tld.ee/status_expired.expected +6 -6
  516. data/spec/fixtures/responses/whois.tld.ee/status_registered.expected +14 -14
  517. data/spec/fixtures/responses/whois.twnic.net.tw/status_available.expected +1 -1
  518. data/spec/fixtures/responses/whois.twnic.net.tw/status_registered.expected +8 -8
  519. data/spec/fixtures/responses/whois.tznic.or.tz/status_available.expected +1 -1
  520. data/spec/fixtures/responses/whois.tznic.or.tz/status_registered.expected +7 -7
  521. data/spec/fixtures/responses/whois.ua/property_nameservers_uppercase.expected +9 -0
  522. data/spec/fixtures/responses/{whois.net.ua → whois.ua}/property_nameservers_uppercase.txt +0 -0
  523. data/spec/fixtures/responses/{whois.net.ua → whois.ua}/redirect_to_whois.in.ua.txt +0 -0
  524. data/spec/fixtures/responses/{whois.ficora.fi → whois.ua}/status_available.expected +3 -3
  525. data/spec/fixtures/responses/{whois.net.ua → whois.ua}/status_available.txt +0 -0
  526. data/spec/fixtures/responses/{whois.net.ua → whois.ua}/status_registered.expected +8 -8
  527. data/spec/fixtures/responses/{whois.net.ua → whois.ua}/status_registered.txt +0 -0
  528. data/spec/fixtures/responses/whois.usp.ac.fj/status_available.expected +1 -1
  529. data/spec/fixtures/responses/whois.usp.ac.fj/status_registered.expected +5 -5
  530. data/spec/fixtures/responses/whois.za.net/status_available.expected +1 -1
  531. data/spec/fixtures/responses/whois.za.net/status_registered.expected +6 -6
  532. data/spec/fixtures/responses/whois.za.org/status_available.expected +1 -1
  533. data/spec/fixtures/responses/whois.za.org/status_registered.expected +7 -7
  534. data/spec/spec_helper.rb +1 -1
  535. data/spec/support/helpers/connectivity_helper.rb +2 -2
  536. data/spec/support/helpers/spec_helper.rb +20 -25
  537. data/spec/tlds +22 -18
  538. data/spec/whois/client_spec.rb +16 -9
  539. data/spec/whois/record/parser/base_spec.rb +8 -8
  540. data/spec/whois/record/parser/responses/whois.dns.hr/status_available_spec.rb +105 -0
  541. data/spec/whois/record/parser/responses/whois.dns.hr/status_registered_spec.rb +118 -0
  542. data/spec/whois/record/parser/responses/whois.dreamhost.com/property_contact_private_spec.rb +78 -0
  543. data/spec/whois/record/parser/responses/whois.dreamhost.com/status_registered_spec.rb +131 -0
  544. data/spec/whois/record/parser/responses/whois.fi/status_available_spec.rb +60 -0
  545. data/spec/whois/record/parser/responses/whois.fi/status_registered_spec.rb +70 -0
  546. data/spec/whois/record/parser/responses/whois.godaddy.com/status_registered_spec.rb +7 -7
  547. data/spec/whois/record/parser/responses/whois.nc/status_available_spec.rb +106 -0
  548. data/spec/whois/record/parser/responses/whois.nc/status_registered_spec.rb +127 -0
  549. data/spec/whois/record/parser/responses/whois.nic.gl/property_status_active_spec.rb +39 -0
  550. data/spec/whois/record/parser/responses/whois.nic.gl/property_status_delegated_spec.rb +39 -0
  551. data/spec/whois/record/parser/responses/whois.nic.gl/status_registered_spec.rb +2 -2
  552. data/spec/whois/record/parser/responses/whois.nic.hu/schema-1.99/status_registered_spec.rb +3 -3
  553. data/spec/whois/record/parser/responses/whois.nic.it/property_status_pending-delete_spec.rb +39 -0
  554. data/spec/whois/record/parser/responses/whois.nic.it/property_status_pendingupdate_autorenewperiod_spec.rb +39 -0
  555. data/spec/whois/record/parser/responses/whois.nic.lk/lk/status_available_spec.rb +106 -0
  556. data/spec/whois/record/parser/responses/whois.nic.lk/lk/status_registered_spec.rb +121 -0
  557. data/spec/whois/record/parser/responses/whois.nic.mg/property_status_active_spec.rb +39 -0
  558. data/spec/whois/record/parser/responses/whois.nic.mg/property_status_delegated_spec.rb +39 -0
  559. data/spec/whois/record/parser/responses/whois.nic.uk/property_status_no_status_listed_spec.rb +39 -0
  560. data/spec/whois/record/parser/responses/whois.nic.uk/status_reserved_spec.rb +114 -0
  561. data/spec/whois/record/parser/responses/whois.registry.qa/property_nameservers_without_ips_spec.rb +39 -0
  562. data/spec/whois/record/parser/responses/whois.registry.qa/{qa/status_available_spec.rb → status_available_spec.rb} +2 -2
  563. data/spec/whois/record/parser/responses/whois.registry.qa/{qa/status_registered_spec.rb → status_registered_spec.rb} +2 -2
  564. data/spec/whois/record/parser/responses/whois.rnids.rs/status_available_spec.rb +108 -0
  565. data/spec/whois/record/parser/responses/whois.rnids.rs/status_registered_spec.rb +145 -0
  566. data/spec/whois/record/parser/responses/whois.ua/property_nameservers_uppercase_spec.rb +36 -0
  567. data/spec/whois/record/parser/responses/whois.ua/status_available_spec.rb +60 -0
  568. data/spec/whois/record/parser/responses/whois.ua/status_registered_spec.rb +70 -0
  569. data/spec/whois/record/parser_spec.rb +46 -25
  570. data/spec/whois/record_spec.rb +11 -3
  571. data/whois.gemspec +4 -4
  572. metadata +111 -35
  573. data/spec/fixtures/responses/whois.net.ua/property_nameservers_uppercase.expected +0 -9
@@ -0,0 +1,41 @@
1
+ #--
2
+ # Ruby Whois
3
+ #
4
+ # An intelligent pure Ruby WHOIS client and parser.
5
+ #
6
+ # Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
7
+ #++
8
+
9
+
10
+ require 'whois/record/parser/scanners/base'
11
+
12
+
13
+ module Whois
14
+ class Record
15
+ class Parser
16
+ module Scanners
17
+
18
+ # Scanner for the whois.dns.hr record.
19
+ #
20
+ # @since RELEASE
21
+ class WhoisDnsHr < Base
22
+
23
+ self.tokenizers += [
24
+ :skip_empty_line,
25
+ :scan_available,
26
+ :scan_keyvalue,
27
+ ]
28
+
29
+
30
+ tokenizer :scan_available do
31
+ if @input.skip(/^%ERROR: no entries found\n/)
32
+ @ast["status:available"] = true
33
+ end
34
+ end
35
+
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,48 @@
1
+ #--
2
+ # Ruby Whois
3
+ #
4
+ # An intelligent pure Ruby WHOIS client and parser.
5
+ #
6
+ # Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
7
+ #++
8
+
9
+
10
+ require 'whois/record/parser/scanners/base'
11
+
12
+
13
+ module Whois
14
+ class Record
15
+ class Parser
16
+ module Scanners
17
+
18
+ # Scanner for the whois.nc record.
19
+ #
20
+ # @since RELEASE
21
+ class WhoisNc < Base
22
+
23
+ self.tokenizers += [
24
+ :skip_empty_line,
25
+ :skip_more,
26
+ :scan_available,
27
+ :scan_keyvalue,
28
+ ]
29
+
30
+
31
+ MORES = ['Whois \.NC', 'more details on']
32
+
33
+ tokenizer :scan_available do
34
+ if @input.skip(/^No entries found .+\n/)
35
+ @ast["status:available"] = true
36
+ end
37
+ end
38
+
39
+ tokenizer :skip_more do
40
+ MORES.any? { |more| @input.skip(/^#{more}.*\n/) }
41
+ end
42
+
43
+ end
44
+
45
+ end
46
+ end
47
+ end
48
+ end
@@ -38,7 +38,7 @@ module Whois
38
38
  # FIXME: Requires UTF-8 Encoding (see #11)
39
39
  tokenizer :scan_available do
40
40
  if @input.match?(/Nincs (.*?) \/ No match\n/)
41
- @input.scan(/Nincs (.*?) \/ No match\n/)
41
+ @input.skip(/Nincs (.*?) \/ No match\n/)
42
42
  @ast["status:available"] = true
43
43
  end
44
44
  end
@@ -46,7 +46,7 @@ module Whois
46
46
  # FIXME: Requires UTF-8 Encoding (see #11)
47
47
  tokenizer :scan_in_progress do
48
48
  if @input.match?(/(.*?) folyamatban \/ Registration in progress\n/)
49
- @input.scan(/(.*?) folyamatban \/ Registration in progress\n/)
49
+ @input.skip(/(.*?) folyamatban \/ Registration in progress\n/)
50
50
  @ast["status:inprogress"] = true
51
51
  end
52
52
  end
@@ -0,0 +1,78 @@
1
+ #--
2
+ # Ruby Whois
3
+ #
4
+ # An intelligent pure Ruby WHOIS client and parser.
5
+ #
6
+ # Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
7
+ #++
8
+
9
+
10
+ require 'whois/record/parser/scanners/base'
11
+
12
+
13
+ module Whois
14
+ class Record
15
+ class Parser
16
+ module Scanners
17
+
18
+ # Scanner for the whois.rnids.rs record.
19
+ #
20
+ # @since RELEASE
21
+ class WhoisRnidsRs < Base
22
+
23
+ self.tokenizers += [
24
+ :scan_available,
25
+ :skip_comment,
26
+ :flag_group_start,
27
+ :scan_group_keyvalue,
28
+ :flag_group_end,
29
+ :skip_empty_line,
30
+ ]
31
+
32
+
33
+ GROUPS = ["Owner", "Administrative contact", "Technical contact"]
34
+
35
+ tokenizer :scan_available do
36
+ if @input.scan(/^%ERROR:103: Domain is not registered/)
37
+ @ast["status:available"] = true
38
+ end
39
+ end
40
+
41
+ tokenizer :flag_group_start do
42
+ if GROUPS.any? { |group| @input.check(/^(#{group}):/) }
43
+ @tmp["group"] = @input[1]
44
+ end
45
+ false
46
+ end
47
+
48
+ tokenizer :flag_group_end do
49
+ if @input.match?(/^\n/)
50
+ @tmp.delete("group")
51
+ end
52
+ end
53
+
54
+ tokenizer :scan_group_keyvalue do
55
+ if @input.scan(/(.+?):(.*?)\n/)
56
+ key, value = @input[1].strip, @input[2].strip
57
+
58
+ target = @tmp["group"] ? (@ast[@tmp["group"]] ||= {}) : @ast
59
+
60
+ if target[key].nil?
61
+ target[key] = value
62
+ else
63
+ target[key] = Array.wrap(target[key])
64
+ target[key] << value
65
+ end
66
+ end
67
+ end
68
+
69
+ tokenizer :skip_comment do
70
+ @input.skip(/^%.*\n/)
71
+ end
72
+
73
+ end
74
+
75
+ end
76
+ end
77
+ end
78
+ end
@@ -66,7 +66,7 @@ module Whois
66
66
 
67
67
 
68
68
  property_supported :registrar do
69
- node("Sponsoring Registrar") do |raw|
69
+ node("Sponsoring Registrar") do |str|
70
70
  Record::Registrar.new(
71
71
  :id => node("Sponsoring Registrar IANA ID"),
72
72
  :name => node("Sponsoring Registrar")
@@ -108,7 +108,7 @@ module Whois
108
108
  private
109
109
 
110
110
  def build_contact(element, type)
111
- node("#{element} ID") do |raw|
111
+ node("#{element} ID") do |str|
112
112
  Record::Contact.new(
113
113
  :type => type,
114
114
  :id => node("#{element} ID"),
@@ -0,0 +1,112 @@
1
+ #--
2
+ # Ruby Whois
3
+ #
4
+ # An intelligent pure Ruby WHOIS client and parser.
5
+ #
6
+ # Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
7
+ #++
8
+
9
+
10
+ require 'whois/record/parser/base'
11
+ require 'whois/record/parser/scanners/whois.dns.hr.rb'
12
+
13
+
14
+ module Whois
15
+ class Record
16
+ class Parser
17
+
18
+ # Parser for the whois.dns.hr server.
19
+ #
20
+ # @see Whois::Record::Parser::Example
21
+ # The Example parser for the list of all available methods.
22
+ #
23
+ # @since RELEASE
24
+ class WhoisDnsHr < Base
25
+ include Scanners::Ast
26
+
27
+ property_not_supported :disclaimer
28
+
29
+
30
+ property_supported :domain do
31
+ node("domain")
32
+ end
33
+
34
+ property_not_supported :domain_id
35
+
36
+
37
+ property_not_supported :referral_whois
38
+
39
+ property_not_supported :referral_url
40
+
41
+
42
+ property_supported :status do
43
+ if available?
44
+ :available
45
+ else
46
+ :registered
47
+ end
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_not_supported :created_on
60
+
61
+ property_not_supported :updated_on
62
+
63
+ property_supported :expires_on do
64
+ node("expires") { |value| Time.parse(value) }
65
+ end
66
+
67
+
68
+ property_not_supported :registrar
69
+
70
+
71
+ property_supported :registrant_contacts do
72
+ node("descr") do |array|
73
+ fuffa, zip, city = array[2].match(/([\d\s]+) (.+)/).to_a
74
+ Record::Contact.new(
75
+ :type => Whois::Record::Contact::TYPE_REGISTRANT,
76
+ :id => nil,
77
+ :name => array[0],
78
+ :organization => nil,
79
+ :address => array[1],
80
+ :city => city,
81
+ :zip => zip,
82
+ :state => nil,
83
+ :country => nil,
84
+ :phone => nil,
85
+ :fax => nil,
86
+ :email => nil
87
+ )
88
+ end
89
+ end
90
+
91
+ property_not_supported :admin_contacts
92
+
93
+ property_not_supported :technical_contacts
94
+
95
+
96
+ property_not_supported :nameservers
97
+
98
+
99
+ # Initializes a new {Scanners::WhoisDnsHr} instance
100
+ # passing the {#content_for_scanner}
101
+ # and calls +parse+ on it.
102
+ #
103
+ # @return [Hash]
104
+ def parse
105
+ Scanners::WhoisDnsHr.new(content_for_scanner).parse
106
+ end
107
+
108
+ end
109
+
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,120 @@
1
+ #--
2
+ # Ruby Whois
3
+ #
4
+ # An intelligent pure Ruby WHOIS client and parser.
5
+ #
6
+ # Copyright (c) 2009-2012 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
+ # Parser for the whois.dreamhost.com server.
18
+ #
19
+ # @see Whois::Record::Parser::Example
20
+ # The Example parser for the list of all available methods.
21
+ #
22
+ # @since RELEASE
23
+ class WhoisDreamhostCom < Base
24
+
25
+ property_not_supported :status
26
+
27
+ # The server is contacted only in case of a registered domain.
28
+ property_supported :available? do
29
+ false
30
+ end
31
+
32
+ property_supported :registered? do
33
+ !available?
34
+ end
35
+
36
+
37
+ property_supported :created_on do
38
+ if content_for_scanner =~ /Record created on (.+)\.\n/
39
+ Time.parse($1)
40
+ end
41
+ end
42
+
43
+ property_not_supported :updated_on
44
+
45
+ property_supported :expires_on do
46
+ if content_for_scanner =~ /Record expires on (.+)\.\n/
47
+ Time.parse($1)
48
+ end
49
+ end
50
+
51
+
52
+ property_supported :registrar do
53
+ Record::Registrar.new(
54
+ :name => "DreamHost",
55
+ :organization => "New Dream Network, LLC.",
56
+ :url => "http://www.dreamhost.com/"
57
+ )
58
+ end
59
+
60
+ property_supported :registrant_contacts do
61
+ build_contact('Registrant Contact:', Record::Contact::TYPE_REGISTRANT)
62
+ end
63
+
64
+ property_supported :admin_contacts do
65
+ build_contact('Administrative Contact:', Record::Contact::TYPE_ADMIN)
66
+ end
67
+
68
+ property_supported :technical_contacts do
69
+ build_contact('Technical Contact:', Record::Contact::TYPE_TECHNICAL)
70
+ end
71
+
72
+
73
+ property_supported :nameservers do
74
+ if content_for_scanner =~ /Domain servers in listed order:\n\n((?:\s*[^\s\n]+\n)+)/
75
+ $1.split("\n").map do |line|
76
+ Record::Nameserver.new(line.strip)
77
+ end
78
+ end
79
+ end
80
+
81
+
82
+ private
83
+
84
+ def build_contact(element, type)
85
+ match = content_for_scanner.slice(/#{element}\n((.+\n)+)\n/, 1)
86
+ return unless match
87
+
88
+ lines = match.split("\n").map(&:strip)
89
+
90
+ # 0 Name Email
91
+ # 1 Company
92
+ # 2 Address
93
+ # ? Address
94
+ # 3 City, State Zip
95
+ # 4 CountryCode
96
+ # 5 Phone
97
+
98
+ name, email = lines[0].split(/\s{5,}/)
99
+ address = lines[2..-4].join("\n")
100
+ city, state, zip = lines[-3].scan(/^(.+), ([A-Z]{2}) ([0-9]+)$/).first
101
+ Record::Contact.new(
102
+ :type => type,
103
+ :name => name,
104
+ :organization => lines[1],
105
+ :address => address,
106
+ :city => city,
107
+ :state => state,
108
+ :zip => zip,
109
+ :country_code => lines[-2],
110
+ :email => email,
111
+ :phone => lines[-1],
112
+ :fax => nil
113
+ )
114
+ end
115
+
116
+ end
117
+
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,76 @@
1
+ #--
2
+ # Ruby Whois
3
+ #
4
+ # An intelligent pure Ruby WHOIS client and parser.
5
+ #
6
+ # Copyright (c) 2009-2012 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
+ # Parser for the whois.fi server.
18
+ #
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.
25
+ #
26
+ # @since RELEASE
27
+ class WhoisFi < Base
28
+
29
+ property_supported :status do
30
+ if content_for_scanner =~ /status:\s+(.+?)\n/
31
+ case $1.downcase
32
+ when "granted"
33
+ :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
+ (status == :available)
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 =~ /created:\s+(.+)\n/
53
+ Time.parse($1)
54
+ end
55
+ end
56
+
57
+ property_not_supported :updated_on
58
+
59
+ property_supported :expires_on do
60
+ if content_for_scanner =~ /expires:\s+(.+)\n/
61
+ Time.parse($1)
62
+ end
63
+ end
64
+
65
+
66
+ property_supported :nameservers do
67
+ content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map do |line|
68
+ Record::Nameserver.new(line.split(" ").first)
69
+ end
70
+ end
71
+
72
+ end
73
+
74
+ end
75
+ end
76
+ end