whois-parser 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +14 -8
  3. data/CONTRIBUTING.md +21 -7
  4. data/LICENSE.txt +1 -1
  5. data/README.md +1 -1
  6. data/lib/whois-parser.rb +1 -1
  7. data/lib/whois/parser.rb +16 -1
  8. data/lib/whois/parser/version.rb +1 -1
  9. data/lib/whois/parsers/base.rb +1 -1
  10. data/lib/whois/parsers/base_afilias.rb +2 -2
  11. data/lib/whois/parsers/base_afilias2.rb +1 -1
  12. data/lib/whois/parsers/base_cocca.rb +4 -4
  13. data/lib/whois/parsers/base_cocca2.rb +2 -2
  14. data/lib/whois/parsers/base_icann_compliant.rb +1 -1
  15. data/lib/whois/parsers/base_icb.rb +1 -1
  16. data/lib/whois/parsers/base_iisse.rb +1 -1
  17. data/lib/whois/parsers/base_nic_fr.rb +3 -3
  18. data/lib/whois/parsers/base_shared1.rb +1 -1
  19. data/lib/whois/parsers/base_shared2.rb +1 -1
  20. data/lib/whois/parsers/base_shared3.rb +1 -1
  21. data/lib/whois/parsers/base_verisign.rb +1 -1
  22. data/lib/whois/parsers/base_whoisd.rb +2 -2
  23. data/lib/whois/parsers/blank.rb +1 -1
  24. data/lib/whois/parsers/capetown-whois.registry.net.za.rb +1 -1
  25. data/lib/whois/parsers/ccwhois.ksregistry.net.rb +1 -1
  26. data/lib/whois/parsers/ccwhois.verisign-grs.com.rb +1 -1
  27. data/lib/whois/parsers/coza-whois.registry.net.za.rb +25 -0
  28. data/lib/whois/parsers/durban-whois.registry.net.za.rb +1 -1
  29. data/lib/whois/parsers/example.rb +1 -1
  30. data/lib/whois/parsers/joburg-whois.registry.net.za.rb +1 -1
  31. data/lib/whois/parsers/kero.yachay.pe.rb +3 -3
  32. data/lib/whois/parsers/org-whois.registry.net.za.rb +1 -1
  33. data/lib/whois/parsers/tvwhois.verisign-grs.com.rb +1 -1
  34. data/lib/whois/parsers/whois.1und1.info.rb +1 -1
  35. data/lib/whois/parsers/whois.35.com.rb +1 -1
  36. data/lib/whois/parsers/whois.aeda.net.ae.rb +2 -2
  37. data/lib/whois/parsers/whois.aero.rb +1 -1
  38. data/lib/whois/parsers/whois.afilias-grs.info.rb +1 -1
  39. data/lib/whois/parsers/whois.afilias.net.rb +1 -1
  40. data/lib/whois/parsers/whois.amnic.net.rb +2 -2
  41. data/lib/whois/parsers/whois.ascio.com.rb +1 -1
  42. data/lib/whois/parsers/whois.ati.tn.rb +1 -1
  43. data/lib/whois/parsers/whois.audns.net.au.rb +1 -1
  44. data/lib/whois/parsers/whois.ax.rb +1 -1
  45. data/lib/whois/parsers/whois.biz.rb +12 -3
  46. data/lib/whois/parsers/whois.bnnic.bn.rb +1 -1
  47. data/lib/whois/parsers/whois.cat.rb +1 -1
  48. data/lib/whois/parsers/whois.cctld.by.rb +1 -1
  49. data/lib/whois/parsers/whois.cctld.uz.rb +2 -2
  50. data/lib/whois/parsers/whois.cdmon.com.rb +1 -1
  51. data/lib/whois/parsers/whois.centralnic.com.rb +1 -1
  52. data/lib/whois/parsers/whois.cira.ca.rb +4 -4
  53. data/lib/whois/parsers/whois.cmc.iq.rb +1 -1
  54. data/lib/whois/parsers/whois.cnnic.cn.rb +1 -1
  55. data/lib/whois/parsers/whois.co.ca.rb +1 -1
  56. data/lib/whois/parsers/whois.co.pl.rb +1 -1
  57. data/lib/whois/parsers/whois.co.ug.rb +2 -2
  58. data/lib/whois/parsers/whois.comlaude.com.rb +1 -1
  59. data/lib/whois/parsers/whois.corporatedomains.com.rb +1 -1
  60. data/lib/whois/parsers/whois.denic.de.rb +2 -2
  61. data/lib/whois/parsers/whois.dk-hostmaster.dk.rb +2 -2
  62. data/lib/whois/parsers/whois.dns.be.rb +3 -3
  63. data/lib/whois/parsers/whois.dns.hr.rb +1 -1
  64. data/lib/whois/parsers/whois.dns.lu.rb +2 -2
  65. data/lib/whois/parsers/whois.dns.pl.rb +1 -1
  66. data/lib/whois/parsers/whois.dns.pt.rb +2 -2
  67. data/lib/whois/parsers/whois.domain-registry.nl.rb +2 -2
  68. data/lib/whois/parsers/whois.domain.kg.rb +1 -1
  69. data/lib/whois/parsers/whois.domainregistry.ie.rb +2 -2
  70. data/lib/whois/parsers/whois.domreg.lt.rb +1 -1
  71. data/lib/whois/parsers/whois.donuts.co.rb +1 -1
  72. data/lib/whois/parsers/whois.dot.cf.rb +1 -1
  73. data/lib/whois/parsers/whois.dot.tk.rb +1 -1
  74. data/lib/whois/parsers/whois.dotgov.gov.rb +2 -2
  75. data/lib/whois/parsers/whois.dotmobiregistry.net.rb +1 -1
  76. data/lib/whois/parsers/whois.dotpostregistry.net.rb +1 -1
  77. data/lib/whois/parsers/whois.dreamhost.com.rb +1 -1
  78. data/lib/whois/parsers/whois.educause.edu.rb +2 -2
  79. data/lib/whois/parsers/whois.eenet.ee.rb +1 -1
  80. data/lib/whois/parsers/whois.enom.com.rb +1 -1
  81. data/lib/whois/parsers/whois.eu.org.rb +1 -1
  82. data/lib/whois/parsers/whois.eu.rb +2 -2
  83. data/lib/whois/parsers/whois.fi.rb +2 -2
  84. data/lib/whois/parsers/whois.gandi.net.rb +1 -1
  85. data/lib/whois/parsers/whois.gg.rb +1 -1
  86. data/lib/whois/parsers/whois.godaddy.com.rb +1 -1
  87. data/lib/whois/parsers/whois.gov.za.rb +1 -1
  88. data/lib/whois/parsers/whois.hkirc.hk.rb +1 -1
  89. data/lib/whois/parsers/whois.iana.org.rb +1 -1
  90. data/lib/whois/parsers/whois.iis.nu.rb +1 -1
  91. data/lib/whois/parsers/whois.iis.se.rb +1 -1
  92. data/lib/whois/parsers/whois.in.ua.rb +2 -2
  93. data/lib/whois/parsers/whois.inregistry.net.rb +1 -1
  94. data/lib/whois/parsers/whois.isnic.is.rb +1 -1
  95. data/lib/whois/parsers/whois.isoc.org.il.rb +2 -2
  96. data/lib/whois/parsers/whois.ja.net.rb +1 -1
  97. data/lib/whois/parsers/whois.je.rb +1 -1
  98. data/lib/whois/parsers/whois.jprs.jp.rb +3 -3
  99. data/lib/whois/parsers/whois.kenic.or.ke.rb +3 -3
  100. data/lib/whois/parsers/whois.kr.rb +1 -1
  101. data/lib/whois/parsers/whois.markmonitor.com.rb +1 -1
  102. data/lib/whois/parsers/whois.monic.mo.rb +1 -1
  103. data/lib/whois/parsers/whois.museum.rb +1 -1
  104. data/lib/whois/parsers/whois.mynic.my.rb +1 -1
  105. data/lib/whois/parsers/whois.na-nic.com.na.rb +1 -1
  106. data/lib/whois/parsers/whois.nc.rb +1 -1
  107. data/lib/whois/parsers/whois.netcom.cm.rb +1 -1
  108. data/lib/whois/parsers/whois.networksolutions.com.rb +1 -1
  109. data/lib/whois/parsers/whois.nic.ac.rb +1 -1
  110. data/lib/whois/parsers/whois.nic.af.rb +1 -1
  111. data/lib/whois/parsers/whois.nic.ag.rb +1 -1
  112. data/lib/whois/parsers/{whois.ai.rb → whois.nic.ai.rb} +3 -3
  113. data/lib/whois/parsers/whois.nic.as.rb +1 -1
  114. data/lib/whois/parsers/whois.nic.asia.rb +1 -1
  115. data/lib/whois/parsers/whois.nic.at.rb +1 -1
  116. data/lib/whois/parsers/whois.nic.bj.rb +1 -1
  117. data/lib/whois/parsers/whois.nic.bo.rb +1 -1
  118. data/lib/whois/parsers/whois.nic.cd.rb +1 -1
  119. data/lib/whois/parsers/whois.nic.ch.rb +1 -1
  120. data/lib/whois/parsers/whois.nic.ci.rb +1 -1
  121. data/lib/whois/parsers/whois.nic.cl.rb +1 -1
  122. data/lib/whois/parsers/whois.nic.co.rb +1 -1
  123. data/lib/whois/parsers/whois.nic.college.rb +1 -1
  124. data/lib/whois/parsers/whois.nic.coop.rb +1 -1
  125. data/lib/whois/parsers/whois.nic.cx.rb +1 -1
  126. data/lib/whois/parsers/whois.nic.cz.rb +1 -1
  127. data/lib/whois/parsers/whois.nic.design.rb +1 -1
  128. data/lib/whois/parsers/whois.nic.dm.rb +1 -1
  129. data/lib/whois/parsers/whois.nic.dz.rb +1 -1
  130. data/lib/whois/parsers/whois.nic.ec.rb +2 -2
  131. data/lib/whois/parsers/whois.nic.es.rb +1 -1
  132. data/lib/whois/parsers/whois.nic.fm.rb +18 -0
  133. data/lib/whois/parsers/whois.nic.fo.rb +1 -1
  134. data/lib/whois/parsers/whois.nic.fr.rb +1 -1
  135. data/lib/whois/parsers/whois.nic.gd.rb +1 -1
  136. data/lib/whois/parsers/whois.nic.gl.rb +1 -1
  137. data/lib/whois/parsers/whois.nic.gs.rb +1 -1
  138. data/lib/whois/parsers/whois.nic.hn.rb +1 -1
  139. data/lib/whois/parsers/whois.nic.ht.rb +1 -1
  140. data/lib/whois/parsers/whois.nic.hu.rb +1 -1
  141. data/lib/whois/parsers/whois.nic.im.rb +1 -1
  142. data/lib/whois/parsers/whois.nic.io.rb +1 -1
  143. data/lib/whois/parsers/whois.nic.ir.rb +1 -1
  144. data/lib/whois/parsers/whois.nic.it.rb +2 -2
  145. data/lib/whois/parsers/whois.nic.jobs.rb +1 -1
  146. data/lib/whois/parsers/whois.nic.ki.rb +1 -1
  147. data/lib/whois/parsers/whois.nic.kz.rb +1 -1
  148. data/lib/whois/parsers/whois.nic.la.rb +1 -1
  149. data/lib/whois/parsers/whois.nic.li.rb +1 -1
  150. data/lib/whois/parsers/whois.nic.lk.rb +1 -1
  151. data/lib/whois/parsers/whois.nic.lv.rb +1 -1
  152. data/lib/whois/parsers/whois.nic.ly.rb +1 -1
  153. data/lib/whois/parsers/whois.nic.md.rb +1 -1
  154. data/lib/whois/parsers/whois.nic.me.rb +1 -1
  155. data/lib/whois/parsers/whois.nic.mg.rb +1 -1
  156. data/lib/whois/parsers/whois.nic.ms.rb +1 -1
  157. data/lib/whois/parsers/whois.nic.mu.rb +1 -1
  158. data/lib/whois/parsers/whois.nic.mx.rb +1 -1
  159. data/lib/whois/parsers/whois.nic.name.rb +1 -1
  160. data/lib/whois/parsers/whois.nic.net.ng.rb +1 -1
  161. data/lib/whois/parsers/whois.nic.net.sa.rb +1 -1
  162. data/lib/whois/parsers/whois.nic.net.sb.rb +1 -1
  163. data/lib/whois/parsers/whois.nic.nf.rb +1 -1
  164. data/lib/whois/parsers/whois.nic.org.uy.rb +2 -2
  165. data/lib/whois/parsers/whois.nic.pm.rb +1 -1
  166. data/lib/whois/parsers/whois.nic.pr.rb +1 -1
  167. data/lib/whois/parsers/whois.nic.priv.at.rb +1 -1
  168. data/lib/whois/parsers/whois.nic.pw.rb +1 -1
  169. data/lib/whois/parsers/whois.nic.re.rb +1 -1
  170. data/lib/whois/parsers/whois.nic.sh.rb +1 -1
  171. data/lib/whois/parsers/whois.nic.sl.rb +1 -1
  172. data/lib/whois/parsers/whois.nic.sm.rb +2 -2
  173. data/lib/whois/parsers/whois.nic.sn.rb +1 -1
  174. data/lib/whois/parsers/whois.nic.so.rb +1 -1
  175. data/lib/whois/parsers/whois.nic.space.rb +1 -1
  176. data/lib/whois/parsers/whois.nic.st.rb +10 -10
  177. data/lib/whois/parsers/whois.nic.tc.rb +1 -1
  178. data/lib/whois/parsers/whois.nic.tech.rb +1 -1
  179. data/lib/whois/parsers/whois.nic.tel.rb +1 -1
  180. data/lib/whois/parsers/whois.nic.tl.rb +1 -1
  181. data/lib/whois/parsers/whois.nic.tm.rb +1 -1
  182. data/lib/whois/parsers/whois.nic.tr.rb +1 -1
  183. data/lib/whois/parsers/whois.nic.travel.rb +1 -1
  184. data/lib/whois/parsers/whois.nic.uk.rb +2 -2
  185. data/lib/whois/parsers/whois.nic.us.rb +1 -1
  186. data/lib/whois/parsers/whois.nic.ve.rb +2 -2
  187. data/lib/whois/parsers/whois.nic.wf.rb +1 -1
  188. data/lib/whois/parsers/whois.nic.xxx.rb +1 -1
  189. data/lib/whois/parsers/whois.nic.xyz.rb +1 -1
  190. data/lib/whois/parsers/whois.norid.no.rb +1 -1
  191. data/lib/whois/parsers/whois.pairnic.com.rb +1 -1
  192. data/lib/whois/parsers/whois.pandi.or.id.rb +1 -1
  193. data/lib/whois/parsers/whois.pir.org.rb +1 -1
  194. data/lib/whois/parsers/whois.pnina.ps.rb +1 -1
  195. data/lib/whois/parsers/whois.register.bg.rb +2 -2
  196. data/lib/whois/parsers/whois.register.com.rb +1 -1
  197. data/lib/whois/parsers/whois.register.si.rb +2 -2
  198. data/lib/whois/parsers/whois.registre.ma.rb +7 -9
  199. data/lib/whois/parsers/whois.registro.br.rb +53 -9
  200. data/lib/whois/parsers/whois.registry.gy.rb +1 -1
  201. data/lib/whois/parsers/whois.registry.hm.rb +1 -1
  202. data/lib/whois/parsers/whois.registry.om.rb +1 -1
  203. data/lib/whois/parsers/whois.registry.qa.rb +1 -1
  204. data/lib/whois/parsers/whois.ripe.net.rb +1 -1
  205. data/lib/whois/parsers/whois.rnids.rs.rb +2 -2
  206. data/lib/whois/parsers/whois.rotld.ro.rb +2 -2
  207. data/lib/whois/parsers/whois.rrpproxy.net.rb +1 -1
  208. data/lib/whois/parsers/whois.safenames.net.rb +1 -1
  209. data/lib/whois/parsers/whois.schlund.info.rb +1 -1
  210. data/lib/whois/parsers/whois.sgnic.sg.rb +2 -2
  211. data/lib/whois/parsers/whois.sk-nic.sk.rb +2 -2
  212. data/lib/whois/parsers/whois.smallregistry.net.rb +2 -2
  213. data/lib/whois/parsers/whois.srs.net.nz.rb +3 -3
  214. data/lib/whois/parsers/whois.sx.rb +2 -2
  215. data/lib/whois/parsers/whois.tcinet.ru.rb +1 -1
  216. data/lib/whois/parsers/whois.thnic.co.th.rb +2 -2
  217. data/lib/whois/parsers/whois.tld.ee.rb +1 -1
  218. data/lib/whois/parsers/whois.tld.sy.rb +1 -1
  219. data/lib/whois/parsers/whois.tonic.to.rb +1 -1
  220. data/lib/whois/parsers/whois.tucows.com.rb +1 -1
  221. data/lib/whois/parsers/whois.twnic.net.tw.rb +1 -1
  222. data/lib/whois/parsers/whois.tznic.or.tz.rb +1 -1
  223. data/lib/whois/parsers/whois.ua.rb +3 -3
  224. data/lib/whois/parsers/whois.udag.net.rb +1 -1
  225. data/lib/whois/parsers/whois.uniregistry.net.rb +1 -1
  226. data/lib/whois/parsers/whois.usp.ac.fj.rb +2 -2
  227. data/lib/whois/parsers/whois.verisign-grs.com.rb +1 -1
  228. data/lib/whois/parsers/whois.website.ws.rb +1 -1
  229. data/lib/whois/parsers/whois.wildwestdomains.com.rb +1 -1
  230. data/lib/whois/parsers/whois.yoursrs.com.rb +1 -1
  231. data/lib/whois/parsers/whois.za.net.rb +1 -1
  232. data/lib/whois/parsers/whois.za.org.rb +1 -1
  233. data/lib/whois/parsers/whois1.nic.bi.rb +1 -1
  234. data/lib/whois/parsers/za_central_registry.rb +12 -1
  235. data/lib/whois/scanners/whois.cira.ca.rb +1 -1
  236. data/whois-parser.gemspec +3 -3
  237. metadata +10 -10
  238. data/lib/whois/parsers/whois.registry.net.za.rb +0 -139
  239. data/lib/whois/scanners/whois.registry.net.za.rb +0 -92
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -45,7 +45,7 @@ module Whois
45
45
  when "renewal required."
46
46
  :registered
47
47
  else
48
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
48
+ Whois::Parser.bug!(ParserError, "Unknown status `#{$1}'.")
49
49
  end
50
50
  elsif invalid?
51
51
  :invalid
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -34,7 +34,7 @@ module Whois
34
34
  when "suspendido"
35
35
  :inactive
36
36
  else
37
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
37
+ Whois::Parser.bug!(ParserError, "Unknown status `#{$1}'.")
38
38
  end
39
39
  else
40
40
  :available
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -30,7 +30,7 @@ module Whois
30
30
  when "registered"
31
31
  :registered
32
32
  else
33
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
33
+ Whois::Parser.bug!(ParserError, "Unknown status `#{$1}'.")
34
34
  end
35
35
  else
36
36
  :available
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -30,7 +30,7 @@ module Whois
30
30
  if statuses.include?("server_update_prohibited")
31
31
  :registered
32
32
  else
33
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
33
+ Whois::Parser.bug!(ParserError, "Unknown status `#{$1}'.")
34
34
  end
35
35
  else
36
36
  :available
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -13,16 +13,14 @@ require_relative 'base'
13
13
  module Whois
14
14
  class Parsers
15
15
 
16
- #
17
- # = whois.registre.ma parser
18
- #
19
16
  # Parser for the whois.registre.ma server.
20
17
  #
21
- # NOTE: This parser is just a stub and provides only a few basic methods
22
- # to check for domain availability and get domain status.
23
- # Please consider to contribute implementing missing methods.
24
- # See WhoisNicIt parser for an explanation of all available methods
25
- # and examples.
18
+ # @note This parser is just a stub and provides only a few basic methods
19
+ # to check for domain availability and get domain status.
20
+ # Please consider to contribute implementing missing methods.
21
+ #
22
+ # @see Whois::Parsers::Example
23
+ # The Example parser for the list of all available methods.
26
24
  #
27
25
  class WhoisRegistreMa < Base
28
26
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -13,16 +13,14 @@ require_relative 'base'
13
13
  module Whois
14
14
  class Parsers
15
15
 
16
- #
17
- # = whois.registro.br parser
18
- #
19
16
  # Parser for the whois.registro.br server.
20
17
  #
21
- # NOTE: This parser is just a stub and provides only a few basic methods
22
- # to check for domain availability and get domain status.
23
- # Please consider to contribute implementing missing methods.
24
- # See WhoisNicIt parser for an explanation of all available methods
25
- # and examples.
18
+ # @note This parser is just a stub and provides only a few basic methods
19
+ # to check for domain availability and get domain status.
20
+ # Please consider to contribute implementing missing methods.
21
+ #
22
+ # @see Whois::Parsers::Example
23
+ # The Example parser for the list of all available methods.
26
24
  #
27
25
  class WhoisRegistroBr < Base
28
26
 
@@ -42,6 +40,7 @@ module Whois
42
40
  !available?
43
41
  end
44
42
 
43
+
45
44
  property_supported :created_on do
46
45
  if content_for_scanner =~ /created:\s+(.+?)(\s+#.+)?\n/
47
46
  parse_time($1)
@@ -60,6 +59,20 @@ module Whois
60
59
  end
61
60
  end
62
61
 
62
+
63
+ property_supported :registrant_contacts do
64
+ parse_contact("owner-c", Parser::Contact::TYPE_REGISTRANT)
65
+ end
66
+
67
+ property_supported :admin_contacts do
68
+ parse_contact("admin-c", Parser::Contact::TYPE_ADMINISTRATIVE)
69
+ end
70
+
71
+ property_supported :technical_contacts do
72
+ parse_contact("tech-c", Parser::Contact::TYPE_TECHNICAL)
73
+ end
74
+
75
+
63
76
  property_supported :nameservers do
64
77
  content_for_scanner.scan(/nserver:\s+(.+)\n/).flatten.map do |line|
65
78
  name, ipv4 = line.strip.split(" ")
@@ -67,6 +80,37 @@ module Whois
67
80
  end
68
81
  end
69
82
 
83
+
84
+ private
85
+
86
+ def parse_contact(element, type)
87
+ return unless content_for_scanner =~ /#{element}:\s+(.+)\n/
88
+
89
+ id = $1
90
+ content_for_scanner.scan(/nic-hdl-br:\s+#{id}\n((.+\n)+)\n/).any? ||
91
+ Whois.bug!(ParserError, "Unable to parse contact block for nic-hdl-br: #{id}")
92
+ values = build_hash($1.scan(/(.+?):\s+(.+?)\n/))
93
+
94
+ created_on = values["created"] ? Time.utc(*values["created"][0..3],*values["created"][4..5],*values["created"][6..7]) : nil
95
+ updated_on = values["changed"] ? Time.utc(*values["changed"][0..3],*values["changed"][4..5],*values["changed"][6..7]) : nil
96
+
97
+ Parser::Contact.new({
98
+ type: type,
99
+ id: id,
100
+ name: values["person"],
101
+ email: values["e-mail"],
102
+ created_on: created_on,
103
+ updated_on: updated_on
104
+ })
105
+ end
106
+
107
+ def build_hash(tokens)
108
+ {}.tap do |hash|
109
+ tokens.each do |key, value|
110
+ hash[key] = value
111
+ end
112
+ end
113
+ end
70
114
  end
71
115
 
72
116
  end
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -48,7 +48,7 @@ module Whois
48
48
  when 'expired'
49
49
  :expired
50
50
  else
51
- Whois.bug!(ParserError, "Unknown status `#{node("Domain status")}'.")
51
+ Whois::Parser.bug!(ParserError, "Unknown status `#{node("Domain status")}'.")
52
52
  end
53
53
  end
54
54
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9
 
@@ -30,7 +30,7 @@ module Whois
30
30
  when "ok", "updateprohibited"
31
31
  :registered
32
32
  else
33
- Whois.bug!(ParserError, "Unknown status `#{$1}'.")
33
+ Whois::Parser.bug!(ParserError, "Unknown status `#{$1}'.")
34
34
  end
35
35
  else
36
36
  :available
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # An intelligent pure Ruby WHOIS client and parser.
5
5
  #
6
- # Copyright (c) 2009-2015 Simone Carletti <weppos@weppos.net>
6
+ # Copyright (c) 2009-2018 Simone Carletti <weppos@weppos.net>
7
7
  #++
8
8
 
9
9