whois-parser-next 0.1.0 → 0.3.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 (285) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +59 -1
  3. data/README.md +31 -12
  4. data/RELEASING.md +2 -2
  5. data/ROADMAP.md +20 -15
  6. data/SECURITY.md +2 -2
  7. data/lib/whois/parser/version.rb +1 -1
  8. data/lib/whois/parsers/base_centralnic_icann.rb +12 -0
  9. data/lib/whois/parsers/base_cira_registry.rb +19 -0
  10. data/lib/whois/parsers/base_icann_compliant.rb +1 -1
  11. data/lib/whois/parsers/base_identity_digital.rb +12 -0
  12. data/lib/whois/parsers/base_jwhois.rb +48 -0
  13. data/lib/whois/parsers/base_nic_reserved_available.rb +17 -0
  14. data/lib/whois/parsers/base_reserved_registry.rb +27 -0
  15. data/lib/whois/parsers/base_top1000_icann.rb +39 -0
  16. data/lib/whois/parsers/base_top1000_retired.rb +26 -0
  17. data/lib/whois/parsers/base_unsupported_registry.rb +1 -1
  18. data/lib/whois/parsers/cwhois.cnnic.cn.rb +10 -0
  19. data/lib/whois/parsers/registry_response_safety.rb +2 -0
  20. data/lib/whois/parsers/whois.ax.rb +15 -3
  21. data/lib/whois/parsers/whois.cctld.uz.rb +50 -14
  22. data/lib/whois/parsers/whois.cnnic.cn.rb +31 -3
  23. data/lib/whois/parsers/whois.dominio.gq.rb +11 -0
  24. data/lib/whois/parsers/whois.dotukr.com.rb +23 -0
  25. data/lib/whois/parsers/whois.gtld.knet.cn.rb +10 -0
  26. data/lib/whois/parsers/whois.kyregistry.ky.rb +10 -0
  27. data/lib/whois/parsers/whois.madrid.rs.corenic.net.rb +8 -0
  28. data/lib/whois/parsers/whois.mediaserv.net.rb +9 -0
  29. data/lib/whois/parsers/whois.ngtld.cn.rb +8 -0
  30. data/lib/whois/parsers/whois.nic.academy.rb +8 -0
  31. data/lib/whois/parsers/whois.nic.accountant.rb +8 -0
  32. data/lib/whois/parsers/whois.nic.actor.rb +8 -0
  33. data/lib/whois/parsers/whois.nic.agency.rb +8 -0
  34. data/lib/whois/parsers/whois.nic.airforce.rb +8 -0
  35. data/lib/whois/parsers/whois.nic.amsterdam.rb +8 -0
  36. data/lib/whois/parsers/whois.nic.apartments.rb +8 -0
  37. data/lib/whois/parsers/whois.nic.army.rb +8 -0
  38. data/lib/whois/parsers/whois.nic.associates.rb +8 -0
  39. data/lib/whois/parsers/whois.nic.auction.rb +8 -0
  40. data/lib/whois/parsers/whois.nic.aw.rb +33 -0
  41. data/lib/whois/parsers/whois.nic.baby.rb +8 -0
  42. data/lib/whois/parsers/whois.nic.bank.rb +29 -0
  43. data/lib/whois/parsers/whois.nic.bar.rb +8 -0
  44. data/lib/whois/parsers/whois.nic.barcelona.rb +8 -0
  45. data/lib/whois/parsers/whois.nic.barclays.rb +8 -0
  46. data/lib/whois/parsers/whois.nic.bargains.rb +8 -0
  47. data/lib/whois/parsers/whois.nic.basketball.rb +8 -0
  48. data/lib/whois/parsers/whois.nic.bayern.rb +8 -0
  49. data/lib/whois/parsers/whois.nic.beauty.rb +8 -0
  50. data/lib/whois/parsers/whois.nic.beer.rb +8 -0
  51. data/lib/whois/parsers/whois.nic.berlin.rb +8 -0
  52. data/lib/whois/parsers/whois.nic.bible.rb +8 -0
  53. data/lib/whois/parsers/whois.nic.bid.rb +8 -0
  54. data/lib/whois/parsers/whois.nic.bike.rb +8 -0
  55. data/lib/whois/parsers/whois.nic.bingo.rb +8 -0
  56. data/lib/whois/parsers/whois.nic.blog.rb +34 -0
  57. data/lib/whois/parsers/whois.nic.bmw.rb +8 -0
  58. data/lib/whois/parsers/whois.nic.bond.rb +8 -0
  59. data/lib/whois/parsers/whois.nic.boston.rb +8 -0
  60. data/lib/whois/parsers/whois.nic.broker.rb +8 -0
  61. data/lib/whois/parsers/whois.nic.build.rb +8 -0
  62. data/lib/whois/parsers/whois.nic.builders.rb +8 -0
  63. data/lib/whois/parsers/whois.nic.buzz.rb +8 -0
  64. data/lib/whois/parsers/whois.nic.bzh.rb +32 -0
  65. data/lib/whois/parsers/whois.nic.cafe.rb +8 -0
  66. data/lib/whois/parsers/whois.nic.cam.rb +8 -0
  67. data/lib/whois/parsers/whois.nic.camera.rb +8 -0
  68. data/lib/whois/parsers/whois.nic.canon.rb +11 -0
  69. data/lib/whois/parsers/whois.nic.capital.rb +8 -0
  70. data/lib/whois/parsers/whois.nic.cards.rb +8 -0
  71. data/lib/whois/parsers/whois.nic.careers.rb +8 -0
  72. data/lib/whois/parsers/whois.nic.casa.rb +8 -0
  73. data/lib/whois/parsers/whois.nic.cash.rb +8 -0
  74. data/lib/whois/parsers/whois.nic.center.rb +8 -0
  75. data/lib/whois/parsers/whois.nic.ceo.rb +8 -0
  76. data/lib/whois/parsers/whois.nic.ch.rb +6 -2
  77. data/lib/whois/parsers/whois.nic.charity.rb +8 -0
  78. data/lib/whois/parsers/whois.nic.city.rb +8 -0
  79. data/lib/whois/parsers/whois.nic.claims.rb +8 -0
  80. data/lib/whois/parsers/whois.nic.cleaning.rb +8 -0
  81. data/lib/whois/parsers/whois.nic.coach.rb +8 -0
  82. data/lib/whois/parsers/whois.nic.codes.rb +8 -0
  83. data/lib/whois/parsers/whois.nic.coffee.rb +8 -0
  84. data/lib/whois/parsers/whois.nic.computer.rb +8 -0
  85. data/lib/whois/parsers/whois.nic.condos.rb +8 -0
  86. data/lib/whois/parsers/whois.nic.construction.rb +8 -0
  87. data/lib/whois/parsers/whois.nic.contractors.rb +8 -0
  88. data/lib/whois/parsers/whois.nic.cooking.rb +8 -0
  89. data/lib/whois/parsers/whois.nic.cool.rb +8 -0
  90. data/lib/whois/parsers/whois.nic.coop.rb +18 -3
  91. data/lib/whois/parsers/whois.nic.creditcard.rb +8 -0
  92. data/lib/whois/parsers/whois.nic.cruises.rb +8 -0
  93. data/lib/whois/parsers/whois.nic.cyou.rb +8 -0
  94. data/lib/whois/parsers/whois.nic.dance.rb +8 -0
  95. data/lib/whois/parsers/whois.nic.data.rb +8 -0
  96. data/lib/whois/parsers/whois.nic.deals.rb +8 -0
  97. data/lib/whois/parsers/whois.nic.degree.rb +8 -0
  98. data/lib/whois/parsers/whois.nic.democrat.rb +8 -0
  99. data/lib/whois/parsers/whois.nic.diamonds.rb +8 -0
  100. data/lib/whois/parsers/whois.nic.digital.rb +8 -0
  101. data/lib/whois/parsers/whois.nic.directory.rb +8 -0
  102. data/lib/whois/parsers/whois.nic.doctor.rb +8 -0
  103. data/lib/whois/parsers/whois.nic.dog.rb +8 -0
  104. data/lib/whois/parsers/whois.nic.dvag.rb +8 -0
  105. data/lib/whois/parsers/whois.nic.eco.rb +8 -0
  106. data/lib/whois/parsers/whois.nic.education.rb +8 -0
  107. data/lib/whois/parsers/whois.nic.email.rb +8 -0
  108. data/lib/whois/parsers/whois.nic.energy.rb +8 -0
  109. data/lib/whois/parsers/whois.nic.engineer.rb +8 -0
  110. data/lib/whois/parsers/whois.nic.equipment.rb +8 -0
  111. data/lib/whois/parsers/whois.nic.estate.rb +8 -0
  112. data/lib/whois/parsers/whois.nic.eus.rb +8 -0
  113. data/lib/whois/parsers/whois.nic.expert.rb +8 -0
  114. data/lib/whois/parsers/whois.nic.exposed.rb +8 -0
  115. data/lib/whois/parsers/whois.nic.express.rb +8 -0
  116. data/lib/whois/parsers/whois.nic.family.rb +8 -0
  117. data/lib/whois/parsers/whois.nic.fan.rb +8 -0
  118. data/lib/whois/parsers/whois.nic.fans.rb +8 -0
  119. data/lib/whois/parsers/whois.nic.feedback.rb +8 -0
  120. data/lib/whois/parsers/whois.nic.film.rb +8 -0
  121. data/lib/whois/parsers/whois.nic.fish.rb +8 -0
  122. data/lib/whois/parsers/whois.nic.fishing.rb +8 -0
  123. data/lib/whois/parsers/whois.nic.florist.rb +8 -0
  124. data/lib/whois/parsers/whois.nic.football.rb +8 -0
  125. data/lib/whois/parsers/whois.nic.forex.rb +8 -0
  126. data/lib/whois/parsers/whois.nic.foundation.rb +8 -0
  127. data/lib/whois/parsers/whois.nic.fox.rb +8 -0
  128. data/lib/whois/parsers/whois.nic.fr.rb +3 -0
  129. data/lib/whois/parsers/whois.nic.frl.rb +8 -0
  130. data/lib/whois/parsers/whois.nic.furniture.rb +8 -0
  131. data/lib/whois/parsers/whois.nic.futbol.rb +8 -0
  132. data/lib/whois/parsers/whois.nic.fyi.rb +8 -0
  133. data/lib/whois/parsers/whois.nic.gal.rb +8 -0
  134. data/lib/whois/parsers/whois.nic.gd.rb +4 -0
  135. data/lib/whois/parsers/whois.nic.ge.rb +74 -0
  136. data/lib/whois/parsers/whois.nic.gent.rb +8 -0
  137. data/lib/whois/parsers/whois.nic.giving.rb +8 -0
  138. data/lib/whois/parsers/whois.nic.glass.rb +8 -0
  139. data/lib/whois/parsers/whois.nic.gmbh.rb +8 -0
  140. data/lib/whois/parsers/whois.nic.graphics.rb +8 -0
  141. data/lib/whois/parsers/whois.nic.gratis.rb +8 -0
  142. data/lib/whois/parsers/whois.nic.guru.rb +8 -0
  143. data/lib/whois/parsers/whois.nic.hamburg.rb +8 -0
  144. data/lib/whois/parsers/whois.nic.haus.rb +8 -0
  145. data/lib/whois/parsers/whois.nic.holdings.rb +8 -0
  146. data/lib/whois/parsers/whois.nic.holiday.rb +8 -0
  147. data/lib/whois/parsers/whois.nic.house.rb +8 -0
  148. data/lib/whois/parsers/whois.nic.immo.rb +8 -0
  149. data/lib/whois/parsers/whois.nic.immobilien.rb +8 -0
  150. data/lib/whois/parsers/whois.nic.inc.rb +8 -0
  151. data/lib/whois/parsers/whois.nic.institute.rb +8 -0
  152. data/lib/whois/parsers/whois.nic.insure.rb +8 -0
  153. data/lib/whois/parsers/whois.nic.international.rb +8 -0
  154. data/lib/whois/parsers/whois.nic.jewelry.rb +8 -0
  155. data/lib/whois/parsers/whois.nic.kaufen.rb +8 -0
  156. data/lib/whois/parsers/whois.nic.kiwi.rb +8 -0
  157. data/lib/whois/parsers/whois.nic.kn.rb +8 -0
  158. data/lib/whois/parsers/whois.nic.kyoto.rb +8 -0
  159. data/lib/whois/parsers/whois.nic.land.rb +8 -0
  160. data/lib/whois/parsers/whois.nic.lat.rb +8 -0
  161. data/lib/whois/parsers/whois.nic.lawyer.rb +8 -0
  162. data/lib/whois/parsers/whois.nic.lease.rb +8 -0
  163. data/lib/whois/parsers/whois.nic.legal.rb +8 -0
  164. data/lib/whois/parsers/whois.nic.limited.rb +8 -0
  165. data/lib/whois/parsers/whois.nic.limo.rb +8 -0
  166. data/lib/whois/parsers/whois.nic.live.rb +8 -0
  167. data/lib/whois/parsers/whois.nic.london.rb +8 -0
  168. data/lib/whois/parsers/whois.nic.love.rb +8 -0
  169. data/lib/whois/parsers/whois.nic.luxury.rb +8 -0
  170. data/lib/whois/parsers/whois.nic.maison.rb +8 -0
  171. data/lib/whois/parsers/whois.nic.makeup.rb +8 -0
  172. data/lib/whois/parsers/whois.nic.man.rb +8 -0
  173. data/lib/whois/parsers/whois.nic.management.rb +8 -0
  174. data/lib/whois/parsers/whois.nic.mba.rb +8 -0
  175. data/lib/whois/parsers/whois.nic.media.rb +8 -0
  176. data/lib/whois/parsers/whois.nic.memorial.rb +8 -0
  177. data/lib/whois/parsers/whois.nic.men.rb +8 -0
  178. data/lib/whois/parsers/whois.nic.miami.rb +8 -0
  179. data/lib/whois/parsers/whois.nic.mobile.rb +8 -0
  180. data/lib/whois/parsers/whois.nic.moda.rb +8 -0
  181. data/lib/whois/parsers/whois.nic.moe.rb +8 -0
  182. data/lib/whois/parsers/whois.nic.money.rb +8 -0
  183. data/lib/whois/parsers/whois.nic.monster.rb +8 -0
  184. data/lib/whois/parsers/whois.nic.mortgage.rb +8 -0
  185. data/lib/whois/parsers/whois.nic.moscow.rb +8 -0
  186. data/lib/whois/parsers/whois.nic.museum.rb +8 -0
  187. data/lib/whois/parsers/whois.nic.net.sa.rb +28 -9
  188. data/lib/whois/parsers/whois.nic.network.rb +8 -0
  189. data/lib/whois/parsers/whois.nic.nrw.rb +8 -0
  190. data/lib/whois/parsers/whois.nic.observer.rb +8 -0
  191. data/lib/whois/parsers/whois.nic.okinawa.rb +17 -0
  192. data/lib/whois/parsers/whois.nic.ooo.rb +8 -0
  193. data/lib/whois/parsers/whois.nic.partners.rb +8 -0
  194. data/lib/whois/parsers/whois.nic.photography.rb +8 -0
  195. data/lib/whois/parsers/whois.nic.photos.rb +8 -0
  196. data/lib/whois/parsers/whois.nic.pizza.rb +8 -0
  197. data/lib/whois/parsers/whois.nic.place.rb +8 -0
  198. data/lib/whois/parsers/whois.nic.plumbing.rb +8 -0
  199. data/lib/whois/parsers/whois.nic.pm.rb +3 -0
  200. data/lib/whois/parsers/whois.nic.press.rb +8 -0
  201. data/lib/whois/parsers/whois.nic.properties.rb +8 -0
  202. data/lib/whois/parsers/whois.nic.quebec.rb +8 -0
  203. data/lib/whois/parsers/whois.nic.quest.rb +8 -0
  204. data/lib/whois/parsers/whois.nic.racing.rb +8 -0
  205. data/lib/whois/parsers/whois.nic.radio.rb +8 -0
  206. data/lib/whois/parsers/whois.nic.realty.rb +8 -0
  207. data/lib/whois/parsers/whois.nic.recipes.rb +8 -0
  208. data/lib/whois/parsers/whois.nic.reisen.rb +8 -0
  209. data/lib/whois/parsers/whois.nic.rent.rb +8 -0
  210. data/lib/whois/parsers/whois.nic.rentals.rb +8 -0
  211. data/lib/whois/parsers/whois.nic.republican.rb +8 -0
  212. data/lib/whois/parsers/whois.nic.rest.rb +8 -0
  213. data/lib/whois/parsers/whois.nic.restaurant.rb +8 -0
  214. data/lib/whois/parsers/whois.nic.review.rb +8 -0
  215. data/lib/whois/parsers/whois.nic.rip.rb +8 -0
  216. data/lib/whois/parsers/whois.nic.rodeo.rb +8 -0
  217. data/lib/whois/parsers/whois.nic.ruhr.rb +8 -0
  218. data/lib/whois/parsers/whois.nic.saarland.rb +8 -0
  219. data/lib/whois/parsers/whois.nic.salon.rb +8 -0
  220. data/lib/whois/parsers/whois.nic.sap.rb +8 -0
  221. data/lib/whois/parsers/whois.nic.sarl.rb +8 -0
  222. data/lib/whois/parsers/whois.nic.sbs.rb +8 -0
  223. data/lib/whois/parsers/whois.nic.schule.rb +8 -0
  224. data/lib/whois/parsers/whois.nic.schwarz.rb +8 -0
  225. data/lib/whois/parsers/whois.nic.scot.rb +8 -0
  226. data/lib/whois/parsers/whois.nic.security.rb +8 -0
  227. data/lib/whois/parsers/whois.nic.select.rb +8 -0
  228. data/lib/whois/parsers/whois.nic.services.rb +8 -0
  229. data/lib/whois/parsers/whois.nic.shoes.rb +8 -0
  230. data/lib/whois/parsers/whois.nic.shopping.rb +8 -0
  231. data/lib/whois/parsers/whois.nic.skin.rb +8 -0
  232. data/lib/whois/parsers/whois.nic.soccer.rb +8 -0
  233. data/lib/whois/parsers/whois.nic.solar.rb +8 -0
  234. data/lib/whois/parsers/whois.nic.sport.rb +8 -0
  235. data/lib/whois/parsers/whois.nic.ss.rb +36 -0
  236. data/lib/whois/parsers/whois.nic.storage.rb +8 -0
  237. data/lib/whois/parsers/whois.nic.study.rb +8 -0
  238. data/lib/whois/parsers/whois.nic.style.rb +8 -0
  239. data/lib/whois/parsers/whois.nic.support.rb +8 -0
  240. data/lib/whois/parsers/whois.nic.surf.rb +8 -0
  241. data/lib/whois/parsers/whois.nic.surgery.rb +8 -0
  242. data/lib/whois/parsers/whois.nic.swiss.rb +8 -0
  243. data/lib/whois/parsers/whois.nic.taipei.rb +8 -0
  244. data/lib/whois/parsers/whois.nic.tatar.rb +19 -0
  245. data/lib/whois/parsers/whois.nic.team.rb +8 -0
  246. data/lib/whois/parsers/whois.nic.tennis.rb +8 -0
  247. data/lib/whois/parsers/whois.nic.theater.rb +8 -0
  248. data/lib/whois/parsers/whois.nic.tickets.rb +8 -0
  249. data/lib/whois/parsers/whois.nic.tienda.rb +8 -0
  250. data/lib/whois/parsers/whois.nic.tips.rb +8 -0
  251. data/lib/whois/parsers/whois.nic.tires.rb +8 -0
  252. data/lib/whois/parsers/whois.nic.tirol.rb +8 -0
  253. data/lib/whois/parsers/whois.nic.top.rb +15 -0
  254. data/lib/whois/parsers/whois.nic.town.rb +8 -0
  255. data/lib/whois/parsers/whois.nic.toyota.rb +8 -0
  256. data/lib/whois/parsers/whois.nic.toys.rb +8 -0
  257. data/lib/whois/parsers/whois.nic.trade.rb +8 -0
  258. data/lib/whois/parsers/whois.nic.training.rb +8 -0
  259. data/lib/whois/parsers/whois.nic.university.rb +8 -0
  260. data/lib/whois/parsers/whois.nic.uno.rb +8 -0
  261. data/lib/whois/parsers/whois.nic.us.rb +30 -0
  262. data/lib/whois/parsers/whois.nic.vet.rb +8 -0
  263. data/lib/whois/parsers/whois.nic.viajes.rb +8 -0
  264. data/lib/whois/parsers/whois.nic.villas.rb +8 -0
  265. data/lib/whois/parsers/whois.nic.voyage.rb +8 -0
  266. data/lib/whois/parsers/whois.nic.webcam.rb +8 -0
  267. data/lib/whois/parsers/whois.nic.wedding.rb +8 -0
  268. data/lib/whois/parsers/whois.nic.wien.rb +8 -0
  269. data/lib/whois/parsers/whois.nic.wiki.rb +8 -0
  270. data/lib/whois/parsers/whois.nic.wtf.rb +8 -0
  271. data/lib/whois/parsers/whois.nic.xin.rb +8 -0
  272. data/lib/whois/parsers/whois.nic.xn--80adxhks.rb +8 -0
  273. data/lib/whois/parsers/whois.nic.xn--d1acj3b.rb +15 -0
  274. data/lib/whois/parsers/whois.nic.xn--mk1bu44c.rb +13 -0
  275. data/lib/whois/parsers/whois.nic.xn--t60b56a.rb +8 -0
  276. data/lib/whois/parsers/whois.nic.xn--tckwe.rb +39 -0
  277. data/lib/whois/parsers/whois.nic.yoga.rb +8 -0
  278. data/lib/whois/parsers/whois.nic.yokohama.rb +8 -0
  279. data/lib/whois/parsers/whois.nic.yt.rb +24 -0
  280. data/lib/whois/parsers/whois.online.rs.corenic.net.rb +8 -0
  281. data/lib/whois/parsers/whois.pknic.net.pk.rb +70 -0
  282. data/lib/whois/parsers/whois.publicinterestregistry.net.rb +8 -0
  283. data/lib/whois/parsers/whois.ryce-rsp.com.rb +13 -0
  284. data/lib/whois/parsers/whois.teleinfo.cn.rb +16 -0
  285. metadata +285 -1
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCareers < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_top1000_icann'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCasa < BaseTop1000Icann
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCash < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCenter < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_top1000_icann'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCeo < BaseTop1000Icann
6
+ end
7
+ end
8
+ end
@@ -8,6 +8,7 @@
8
8
 
9
9
 
10
10
  require_relative 'base'
11
+ require_relative 'registry_response_safety'
11
12
 
12
13
  module Whois
13
14
  class Parsers
@@ -24,12 +25,15 @@ module Whois
24
25
  # and examples.
25
26
  #
26
27
  class WhoisNicCh < Base
28
+ include RegistryResponseSafety
27
29
 
28
30
  property_supported :status do
29
31
  if available?
30
32
  :available
31
- else
33
+ elsif content_for_scanner.match?(/^Domain name:\s*\S+/i)
32
34
  :registered
35
+ else
36
+ Whois::Parser.bug!(ParserError, "Unable to parse .ch response status.")
33
37
  end
34
38
  end
35
39
 
@@ -38,7 +42,7 @@ module Whois
38
42
  end
39
43
 
40
44
  property_supported :registered? do
41
- !available?
45
+ status == :registered
42
46
  end
43
47
 
44
48
 
@@ -0,0 +1,8 @@
1
+ require_relative 'base_reserved_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCharity < BaseReservedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCity < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicClaims < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCleaning < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCoach < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCodes < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCoffee < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicComputer < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCondos < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicConstruction < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicContractors < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_top1000_icann'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCooking < BaseTop1000Icann
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCool < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -8,6 +8,7 @@
8
8
 
9
9
 
10
10
  require_relative 'base'
11
+ require_relative 'registry_response_safety'
11
12
 
12
13
 
13
14
  module Whois
@@ -25,17 +26,24 @@ module Whois
25
26
  # and examples.
26
27
  #
27
28
  class WhoisNicCoop < Base
29
+ include RegistryResponseSafety
28
30
 
29
31
  property_supported :status do
30
- content_for_scanner.scan(/Status:\s+(.+?)\n/).flatten
32
+ statuses = content_for_scanner.scan(/Status:\s+(.+?)\n/).flatten
33
+ if statuses.empty? && !available?
34
+ :unknown
35
+ else
36
+ statuses
37
+ end
31
38
  end
32
39
 
33
40
  property_supported :available? do
34
- !!(content_for_scanner =~ /No domain records were found to match/)
41
+ !!(content_for_scanner =~ /^No domain records were found to match\s+"[^"]+"\s*$/i ||
42
+ content_for_scanner =~ /^>>> Domain \S+ is available for registration\s*$/i)
35
43
  end
36
44
 
37
45
  property_supported :registered? do
38
- !available?
46
+ !available? && registered_evidence?
39
47
  end
40
48
 
41
49
 
@@ -64,6 +72,13 @@ module Whois
64
72
  end
65
73
  end
66
74
 
75
+ private
76
+
77
+ def registered_evidence?
78
+ content_for_scanner.match?(/^Domain Name:\s+\S+/i) &&
79
+ content_for_scanner.match?(/^(?:Domain ID|Created):\s+\S+/i)
80
+ end
81
+
67
82
  end
68
83
 
69
84
  end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCreditcard < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCruises < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_centralnic_icann'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicCyou < BaseCentralnicIcann
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicDance < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_top1000_icann'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicData < BaseTop1000Icann
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicDeals < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicDegree < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicDemocrat < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicDiamonds < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicDigital < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicDirectory < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicDoctor < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicDog < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_identity_digital'
2
+ module Whois
3
+ class Parsers
4
+ class WhoisNicDvag < BaseIdentityDigital
5
+ self.scanner = Scanners::BaseIcannCompliant, { pattern_available: /^The queried object does not exist: DOMAIN NOT FOUND\s*$/i }
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_cira_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicEco < BaseCiraRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicEducation < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicEmail < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicEnergy < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicEngineer < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicEquipment < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicEstate < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'whois.nic.cat'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicEus < WhoisNicCat
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicExpert < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicExposed < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicExpress < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFamily < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFan < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'whois.centralnic.com'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFans < WhoisCentralnicCom
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_top1000_icann'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFeedback < BaseTop1000Icann
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_reserved_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFilm < BaseReservedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFish < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_top1000_icann'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFishing < BaseTop1000Icann
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFlorist < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFootball < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicForex < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_icann_compliant'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFoundation < BaseIcannCompliant
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_top1000_icann'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFox < BaseTop1000Icann
6
+ end
7
+ end
8
+ end
@@ -19,6 +19,9 @@ module Whois
19
19
  # The Example parser for the list of all available methods.
20
20
  #
21
21
  class WhoisNicFr < BaseNicFr
22
+ property_supported :available? do
23
+ super() || !!(content_for_scanner =~ /^(?:%% NOT FOUND|%% No entries found in the AFNIC Database\.)\s*$/i)
24
+ end
22
25
  end
23
26
 
24
27
  end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_identity_digital'
2
+ module Whois
3
+ class Parsers
4
+ class WhoisNicFrl < BaseIdentityDigital
5
+ self.scanner = Scanners::BaseIcannCompliant, { pattern_available: /^The queried object does not exist: DOMAIN NOT FOUND\s*$/i }
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require_relative 'base_unsupported_registry'
2
+
3
+ module Whois
4
+ class Parsers
5
+ class WhoisNicFurniture < BaseUnsupportedRegistry
6
+ end
7
+ end
8
+ end