whois 1.1.8 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +13 -0
- data/Manifest +116 -113
- data/lib/whois/answer.rb +15 -5
- data/lib/whois/answer/parser.rb +1 -1
- data/lib/whois/answer/parser/NOTES.txt +1 -0
- data/lib/whois/answer/parser/base.rb +13 -1
- data/lib/whois/answer/parser/whois.nic.hu.rb +101 -78
- data/lib/whois/answer/parser/whois.nic.tr.rb +1 -1
- data/lib/whois/answer/parser/whois.publicinterestregistry.net.rb +22 -11
- data/lib/whois/server.rb +19 -15
- data/lib/whois/server/adapters/afilias.rb +1 -1
- data/lib/whois/server/adapters/arpa.rb +6 -6
- data/lib/whois/server/adapters/base.rb +1 -1
- data/lib/whois/server/adapters/formatted.rb +4 -4
- data/lib/whois/server/adapters/none.rb +5 -6
- data/lib/whois/server/adapters/not_implemented.rb +6 -4
- data/lib/whois/server/adapters/pir.rb +1 -1
- data/lib/whois/server/adapters/standard.rb +2 -2
- data/lib/whois/server/adapters/verisign.rb +3 -3
- data/lib/whois/server/adapters/web.rb +6 -7
- data/lib/whois/version.rb +2 -2
- data/test/testcases/responses/UTF8.txt +2 -0
- data/test/testcases/responses/whois.dns.pt/registered.txt +3 -3
- data/test/testcases/responses/whois.nic.hu/current/available.txt +3 -0
- data/test/testcases/responses/whois.nic.hu/current/registered.txt +9 -0
- data/test/testcases/responses/whois.nic.hu/{available.txt → v1.99/available.txt} +0 -0
- data/test/testcases/responses/whois.nic.hu/{in_progress.txt → v1.99/in_progress.txt} +0 -0
- data/test/testcases/responses/whois.nic.hu/{property_registrant_as_company.txt → v1.99/property_registrant_as_company.txt} +0 -0
- data/test/testcases/responses/whois.nic.hu/{property_registrant_as_private_person.txt → v1.99/property_registrant_as_private_person.txt} +0 -0
- data/test/testcases/responses/whois.nic.hu/{property_registrant_without_address.txt → v1.99/property_registrant_without_address.txt} +0 -0
- data/test/testcases/responses/whois.nic.hu/{registered.txt → v1.99/registered.txt} +0 -0
- data/test/testcases/responses/whois.nic.tr/property_nameservers_with_trailing_space.txt +42 -0
- data/test/testcases/responses/whois.nic.tr/registered.txt +6 -6
- data/test/testcases/responses/whois.publicinterestregistry.net/throttle.txt +1 -0
- data/test/{answer → whois/answer}/contact_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/base_test.rb +5 -0
- data/test/{answer → whois/answer}/parser/blank_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/jobswhois.verisign-grs.com_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.adamsnames.tc_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.aeda.net.ae_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.aero_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.afilias-grs.info_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.afilias.info_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.ai_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.arnes.si_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.ausregistry.net.au_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.biz_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.cat_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.cira.ca_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.cnnic.cn_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.cnnic.net.cn_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.crsnic.net_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.denic.de_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.dk-hostmaster.dk_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.dns.be_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.dns.lu_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.dns.pt_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.domain-registry.nl_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.domainregistry.ie_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.domreg.lt_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.dot.tk_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.dotmobiregistry.net_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.educause.edu_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.eu.org_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.eu_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.hkdnr.net.hk_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.iana.org_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.in.ua_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.isnic.is_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.jprs.jp_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.meregistry.net_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.museum_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.net.ua_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic-se.se_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.ac_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.af_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.ag_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.am_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.as_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.asia_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.at_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.cc_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.cd_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.ch_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.coop_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.fr_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.gl_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.gov_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.ht_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.hu_test.rb +83 -54
- data/test/{answer → whois/answer}/parser/whois.nic.im_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.io_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.it_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.lv_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.ly_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.mu_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.mx_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.name_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.nu_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.or.kr_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.sn_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.st_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.tel_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.tl_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.tr_test.rb +7 -0
- data/test/{answer → whois/answer}/parser/whois.nic.travel_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.tv_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.uk_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.us_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.nic.ve_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.norid.no_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.pandi.or.id_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.publicinterestregistry.net_test.rb +6 -0
- data/test/{answer → whois/answer}/parser/whois.register.bg_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.registro.br_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.registry.in_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.registrypro.pro_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.ripe.net_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.ripn.net_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.rotld.ro_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.samoanic.ws_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.srs.net.nz_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.za.net_test.rb +0 -0
- data/test/{answer → whois/answer}/parser/whois.za.org_test.rb +0 -0
- data/test/{answer → whois/answer}/parser_test.rb +0 -0
- data/test/{testcases/responses → whois/answer}/super_struct_test.rb +0 -0
- data/test/{answer_test.rb → whois/answer_test.rb} +6 -0
- data/test/{client_test.rb → whois/client_test.rb} +0 -0
- data/test/{errors_test.rb → whois/errors_test.rb} +0 -0
- data/test/{integration_test.rb → whois/integration_test.rb} +0 -0
- data/test/{server → whois/server}/adapters/afilias_test.rb +1 -1
- data/test/{server → whois/server}/adapters/base_test.rb +0 -0
- data/test/{server → whois/server}/adapters/formatted_test.rb +0 -0
- data/test/{server → whois/server}/adapters/none_test.rb +0 -0
- data/test/{server → whois/server}/adapters/not_implemented_test.rb +0 -0
- data/test/{server → whois/server}/adapters/pir_test.rb +1 -1
- data/test/{server → whois/server}/adapters/standard_test.rb +0 -0
- data/test/{server → whois/server}/adapters/verisign_test.rb +3 -3
- data/test/{server → whois/server}/adapters/web_test.rb +0 -0
- data/test/{server_test.rb → whois/server_test.rb} +0 -0
- data/whois.gemspec +4 -4
- metadata +227 -225
- data/test/deprecated_test.rb +0 -61
data/CHANGELOG.rdoc
CHANGED
@@ -1,6 +1,19 @@
|
|
1
1
|
= Changelog
|
2
2
|
|
3
3
|
|
4
|
+
== Release 1.2.0
|
5
|
+
|
6
|
+
* NEW: Whois::Answer#throttle? returns true in case of throttle response (see whois.publicinternetregistry.com for a real example)
|
7
|
+
|
8
|
+
* FIXED: With some .tr domains, whois.nic.tr parser returns inconsistent values for nameservers.
|
9
|
+
|
10
|
+
* FIXED: Unexpected token error when trying to parse a .hu whois response. The whois.nic.hu has changed response format.
|
11
|
+
|
12
|
+
* FIXED: RuntimeError "Unexpected token: WHOIS LIMIT EXCEEDED - SEE WWW.PIR.ORG/WHOIS FOR DETAILS" for whois.publicinternetregistry.com
|
13
|
+
|
14
|
+
* CHANGED: Lazy-load adapters using Ruby autoload feature.
|
15
|
+
|
16
|
+
|
4
17
|
== Release 1.1.8
|
5
18
|
|
6
19
|
* NEW: Added simple .pt TLD parser (whois.dns.pt).
|
data/Manifest
CHANGED
@@ -132,113 +132,7 @@ lib/whois/server/adapters/verisign.rb
|
|
132
132
|
lib/whois/server/adapters/web.rb
|
133
133
|
lib/whois/version.rb
|
134
134
|
tasks/server.rake
|
135
|
-
test/answer/contact_test.rb
|
136
|
-
test/answer/parser/base_test.rb
|
137
|
-
test/answer/parser/blank_test.rb
|
138
|
-
test/answer/parser/jobswhois.verisign-grs.com_test.rb
|
139
|
-
test/answer/parser/whois.adamsnames.tc_test.rb
|
140
|
-
test/answer/parser/whois.aeda.net.ae_test.rb
|
141
|
-
test/answer/parser/whois.aero_test.rb
|
142
|
-
test/answer/parser/whois.afilias-grs.info_test.rb
|
143
|
-
test/answer/parser/whois.afilias.info_test.rb
|
144
|
-
test/answer/parser/whois.ai_test.rb
|
145
|
-
test/answer/parser/whois.arnes.si_test.rb
|
146
|
-
test/answer/parser/whois.ausregistry.net.au_test.rb
|
147
|
-
test/answer/parser/whois.biz_test.rb
|
148
|
-
test/answer/parser/whois.cat_test.rb
|
149
|
-
test/answer/parser/whois.cira.ca_test.rb
|
150
|
-
test/answer/parser/whois.cnnic.cn_test.rb
|
151
|
-
test/answer/parser/whois.cnnic.net.cn_test.rb
|
152
|
-
test/answer/parser/whois.crsnic.net_test.rb
|
153
|
-
test/answer/parser/whois.denic.de_test.rb
|
154
|
-
test/answer/parser/whois.dk-hostmaster.dk_test.rb
|
155
|
-
test/answer/parser/whois.dns.be_test.rb
|
156
|
-
test/answer/parser/whois.dns.lu_test.rb
|
157
|
-
test/answer/parser/whois.dns.pt_test.rb
|
158
|
-
test/answer/parser/whois.domain-registry.nl_test.rb
|
159
|
-
test/answer/parser/whois.domainregistry.ie_test.rb
|
160
|
-
test/answer/parser/whois.domreg.lt_test.rb
|
161
|
-
test/answer/parser/whois.dot.tk_test.rb
|
162
|
-
test/answer/parser/whois.dotmobiregistry.net_test.rb
|
163
|
-
test/answer/parser/whois.educause.edu_test.rb
|
164
|
-
test/answer/parser/whois.eu.org_test.rb
|
165
|
-
test/answer/parser/whois.eu_test.rb
|
166
|
-
test/answer/parser/whois.hkdnr.net.hk_test.rb
|
167
|
-
test/answer/parser/whois.iana.org_test.rb
|
168
|
-
test/answer/parser/whois.in.ua_test.rb
|
169
|
-
test/answer/parser/whois.isnic.is_test.rb
|
170
|
-
test/answer/parser/whois.jprs.jp_test.rb
|
171
|
-
test/answer/parser/whois.meregistry.net_test.rb
|
172
|
-
test/answer/parser/whois.museum_test.rb
|
173
|
-
test/answer/parser/whois.net.ua_test.rb
|
174
|
-
test/answer/parser/whois.nic-se.se_test.rb
|
175
|
-
test/answer/parser/whois.nic.ac_test.rb
|
176
|
-
test/answer/parser/whois.nic.af_test.rb
|
177
|
-
test/answer/parser/whois.nic.ag_test.rb
|
178
|
-
test/answer/parser/whois.nic.am_test.rb
|
179
|
-
test/answer/parser/whois.nic.as_test.rb
|
180
|
-
test/answer/parser/whois.nic.asia_test.rb
|
181
|
-
test/answer/parser/whois.nic.at_test.rb
|
182
|
-
test/answer/parser/whois.nic.cc_test.rb
|
183
|
-
test/answer/parser/whois.nic.cd_test.rb
|
184
|
-
test/answer/parser/whois.nic.ch_test.rb
|
185
|
-
test/answer/parser/whois.nic.coop_test.rb
|
186
|
-
test/answer/parser/whois.nic.fr_test.rb
|
187
|
-
test/answer/parser/whois.nic.gl_test.rb
|
188
|
-
test/answer/parser/whois.nic.gov_test.rb
|
189
|
-
test/answer/parser/whois.nic.ht_test.rb
|
190
|
-
test/answer/parser/whois.nic.hu_test.rb
|
191
|
-
test/answer/parser/whois.nic.im_test.rb
|
192
|
-
test/answer/parser/whois.nic.io_test.rb
|
193
|
-
test/answer/parser/whois.nic.it_test.rb
|
194
|
-
test/answer/parser/whois.nic.lv_test.rb
|
195
|
-
test/answer/parser/whois.nic.ly_test.rb
|
196
|
-
test/answer/parser/whois.nic.mu_test.rb
|
197
|
-
test/answer/parser/whois.nic.mx_test.rb
|
198
|
-
test/answer/parser/whois.nic.name_test.rb
|
199
|
-
test/answer/parser/whois.nic.nu_test.rb
|
200
|
-
test/answer/parser/whois.nic.or.kr_test.rb
|
201
|
-
test/answer/parser/whois.nic.sn_test.rb
|
202
|
-
test/answer/parser/whois.nic.st_test.rb
|
203
|
-
test/answer/parser/whois.nic.tel_test.rb
|
204
|
-
test/answer/parser/whois.nic.tl_test.rb
|
205
|
-
test/answer/parser/whois.nic.tr_test.rb
|
206
|
-
test/answer/parser/whois.nic.travel_test.rb
|
207
|
-
test/answer/parser/whois.nic.tv_test.rb
|
208
|
-
test/answer/parser/whois.nic.uk_test.rb
|
209
|
-
test/answer/parser/whois.nic.us_test.rb
|
210
|
-
test/answer/parser/whois.nic.ve_test.rb
|
211
|
-
test/answer/parser/whois.norid.no_test.rb
|
212
|
-
test/answer/parser/whois.pandi.or.id_test.rb
|
213
|
-
test/answer/parser/whois.publicinterestregistry.net_test.rb
|
214
|
-
test/answer/parser/whois.register.bg_test.rb
|
215
|
-
test/answer/parser/whois.registro.br_test.rb
|
216
|
-
test/answer/parser/whois.registry.in_test.rb
|
217
|
-
test/answer/parser/whois.registrypro.pro_test.rb
|
218
|
-
test/answer/parser/whois.ripe.net_test.rb
|
219
|
-
test/answer/parser/whois.ripn.net_test.rb
|
220
|
-
test/answer/parser/whois.rotld.ro_test.rb
|
221
|
-
test/answer/parser/whois.samoanic.ws_test.rb
|
222
|
-
test/answer/parser/whois.srs.net.nz_test.rb
|
223
|
-
test/answer/parser/whois.za.net_test.rb
|
224
|
-
test/answer/parser/whois.za.org_test.rb
|
225
|
-
test/answer/parser_test.rb
|
226
|
-
test/answer_test.rb
|
227
|
-
test/client_test.rb
|
228
|
-
test/deprecated_test.rb
|
229
|
-
test/errors_test.rb
|
230
|
-
test/integration_test.rb
|
231
135
|
test/list_tld
|
232
|
-
test/server/adapters/afilias_test.rb
|
233
|
-
test/server/adapters/base_test.rb
|
234
|
-
test/server/adapters/formatted_test.rb
|
235
|
-
test/server/adapters/none_test.rb
|
236
|
-
test/server/adapters/not_implemented_test.rb
|
237
|
-
test/server/adapters/pir_test.rb
|
238
|
-
test/server/adapters/standard_test.rb
|
239
|
-
test/server/adapters/verisign_test.rb
|
240
|
-
test/server/adapters/web_test.rb
|
241
|
-
test/server_test.rb
|
242
136
|
test/test_helper.rb
|
243
137
|
test/testcases/referrals/afilias.bz.txt
|
244
138
|
test/testcases/referrals/crsnic.com.txt
|
@@ -250,7 +144,6 @@ test/testcases/responses/UTF8.txt
|
|
250
144
|
test/testcases/responses/jobswhois.verisign-grs.com/available.txt
|
251
145
|
test/testcases/responses/jobswhois.verisign-grs.com/property_registrar.txt
|
252
146
|
test/testcases/responses/jobswhois.verisign-grs.com/registered.txt
|
253
|
-
test/testcases/responses/super_struct_test.rb
|
254
147
|
test/testcases/responses/whois.adamsnames.tc/gd/available.txt
|
255
148
|
test/testcases/responses/whois.adamsnames.tc/gd/registered.txt
|
256
149
|
test/testcases/responses/whois.adamsnames.tc/tc/available.txt
|
@@ -391,12 +284,14 @@ test/testcases/responses/whois.nic.gov/available.txt
|
|
391
284
|
test/testcases/responses/whois.nic.gov/registered.txt
|
392
285
|
test/testcases/responses/whois.nic.ht/available.txt
|
393
286
|
test/testcases/responses/whois.nic.ht/registered.txt
|
394
|
-
test/testcases/responses/whois.nic.hu/available.txt
|
395
|
-
test/testcases/responses/whois.nic.hu/
|
396
|
-
test/testcases/responses/whois.nic.hu/
|
397
|
-
test/testcases/responses/whois.nic.hu/
|
398
|
-
test/testcases/responses/whois.nic.hu/
|
399
|
-
test/testcases/responses/whois.nic.hu/
|
287
|
+
test/testcases/responses/whois.nic.hu/current/available.txt
|
288
|
+
test/testcases/responses/whois.nic.hu/current/registered.txt
|
289
|
+
test/testcases/responses/whois.nic.hu/v1.99/available.txt
|
290
|
+
test/testcases/responses/whois.nic.hu/v1.99/in_progress.txt
|
291
|
+
test/testcases/responses/whois.nic.hu/v1.99/property_registrant_as_company.txt
|
292
|
+
test/testcases/responses/whois.nic.hu/v1.99/property_registrant_as_private_person.txt
|
293
|
+
test/testcases/responses/whois.nic.hu/v1.99/property_registrant_without_address.txt
|
294
|
+
test/testcases/responses/whois.nic.hu/v1.99/registered.txt
|
400
295
|
test/testcases/responses/whois.nic.im/available.txt
|
401
296
|
test/testcases/responses/whois.nic.im/registered.txt
|
402
297
|
test/testcases/responses/whois.nic.io/available.txt
|
@@ -434,6 +329,7 @@ test/testcases/responses/whois.nic.tel/registered.txt
|
|
434
329
|
test/testcases/responses/whois.nic.tl/available.txt
|
435
330
|
test/testcases/responses/whois.nic.tl/registered.txt
|
436
331
|
test/testcases/responses/whois.nic.tr/available.txt
|
332
|
+
test/testcases/responses/whois.nic.tr/property_nameservers_with_trailing_space.txt
|
437
333
|
test/testcases/responses/whois.nic.tr/registered.txt
|
438
334
|
test/testcases/responses/whois.nic.travel/available.txt
|
439
335
|
test/testcases/responses/whois.nic.travel/registered.txt
|
@@ -452,6 +348,7 @@ test/testcases/responses/whois.pandi.or.id/available.txt
|
|
452
348
|
test/testcases/responses/whois.pandi.or.id/registered.txt
|
453
349
|
test/testcases/responses/whois.publicinterestregistry.net/available.txt
|
454
350
|
test/testcases/responses/whois.publicinterestregistry.net/registered.txt
|
351
|
+
test/testcases/responses/whois.publicinterestregistry.net/throttle.txt
|
455
352
|
test/testcases/responses/whois.register.bg/available.txt
|
456
353
|
test/testcases/responses/whois.register.bg/property_nameservers_with_ip.txt
|
457
354
|
test/testcases/responses/whois.register.bg/registered.txt
|
@@ -487,5 +384,111 @@ test/testcases/responses/whois.za.net/available.txt
|
|
487
384
|
test/testcases/responses/whois.za.net/registered.txt
|
488
385
|
test/testcases/responses/whois.za.org/available.txt
|
489
386
|
test/testcases/responses/whois.za.org/registered.txt
|
387
|
+
test/whois/answer/contact_test.rb
|
388
|
+
test/whois/answer/parser/base_test.rb
|
389
|
+
test/whois/answer/parser/blank_test.rb
|
390
|
+
test/whois/answer/parser/jobswhois.verisign-grs.com_test.rb
|
391
|
+
test/whois/answer/parser/whois.adamsnames.tc_test.rb
|
392
|
+
test/whois/answer/parser/whois.aeda.net.ae_test.rb
|
393
|
+
test/whois/answer/parser/whois.aero_test.rb
|
394
|
+
test/whois/answer/parser/whois.afilias-grs.info_test.rb
|
395
|
+
test/whois/answer/parser/whois.afilias.info_test.rb
|
396
|
+
test/whois/answer/parser/whois.ai_test.rb
|
397
|
+
test/whois/answer/parser/whois.arnes.si_test.rb
|
398
|
+
test/whois/answer/parser/whois.ausregistry.net.au_test.rb
|
399
|
+
test/whois/answer/parser/whois.biz_test.rb
|
400
|
+
test/whois/answer/parser/whois.cat_test.rb
|
401
|
+
test/whois/answer/parser/whois.cira.ca_test.rb
|
402
|
+
test/whois/answer/parser/whois.cnnic.cn_test.rb
|
403
|
+
test/whois/answer/parser/whois.cnnic.net.cn_test.rb
|
404
|
+
test/whois/answer/parser/whois.crsnic.net_test.rb
|
405
|
+
test/whois/answer/parser/whois.denic.de_test.rb
|
406
|
+
test/whois/answer/parser/whois.dk-hostmaster.dk_test.rb
|
407
|
+
test/whois/answer/parser/whois.dns.be_test.rb
|
408
|
+
test/whois/answer/parser/whois.dns.lu_test.rb
|
409
|
+
test/whois/answer/parser/whois.dns.pt_test.rb
|
410
|
+
test/whois/answer/parser/whois.domain-registry.nl_test.rb
|
411
|
+
test/whois/answer/parser/whois.domainregistry.ie_test.rb
|
412
|
+
test/whois/answer/parser/whois.domreg.lt_test.rb
|
413
|
+
test/whois/answer/parser/whois.dot.tk_test.rb
|
414
|
+
test/whois/answer/parser/whois.dotmobiregistry.net_test.rb
|
415
|
+
test/whois/answer/parser/whois.educause.edu_test.rb
|
416
|
+
test/whois/answer/parser/whois.eu.org_test.rb
|
417
|
+
test/whois/answer/parser/whois.eu_test.rb
|
418
|
+
test/whois/answer/parser/whois.hkdnr.net.hk_test.rb
|
419
|
+
test/whois/answer/parser/whois.iana.org_test.rb
|
420
|
+
test/whois/answer/parser/whois.in.ua_test.rb
|
421
|
+
test/whois/answer/parser/whois.isnic.is_test.rb
|
422
|
+
test/whois/answer/parser/whois.jprs.jp_test.rb
|
423
|
+
test/whois/answer/parser/whois.meregistry.net_test.rb
|
424
|
+
test/whois/answer/parser/whois.museum_test.rb
|
425
|
+
test/whois/answer/parser/whois.net.ua_test.rb
|
426
|
+
test/whois/answer/parser/whois.nic-se.se_test.rb
|
427
|
+
test/whois/answer/parser/whois.nic.ac_test.rb
|
428
|
+
test/whois/answer/parser/whois.nic.af_test.rb
|
429
|
+
test/whois/answer/parser/whois.nic.ag_test.rb
|
430
|
+
test/whois/answer/parser/whois.nic.am_test.rb
|
431
|
+
test/whois/answer/parser/whois.nic.as_test.rb
|
432
|
+
test/whois/answer/parser/whois.nic.asia_test.rb
|
433
|
+
test/whois/answer/parser/whois.nic.at_test.rb
|
434
|
+
test/whois/answer/parser/whois.nic.cc_test.rb
|
435
|
+
test/whois/answer/parser/whois.nic.cd_test.rb
|
436
|
+
test/whois/answer/parser/whois.nic.ch_test.rb
|
437
|
+
test/whois/answer/parser/whois.nic.coop_test.rb
|
438
|
+
test/whois/answer/parser/whois.nic.fr_test.rb
|
439
|
+
test/whois/answer/parser/whois.nic.gl_test.rb
|
440
|
+
test/whois/answer/parser/whois.nic.gov_test.rb
|
441
|
+
test/whois/answer/parser/whois.nic.ht_test.rb
|
442
|
+
test/whois/answer/parser/whois.nic.hu_test.rb
|
443
|
+
test/whois/answer/parser/whois.nic.im_test.rb
|
444
|
+
test/whois/answer/parser/whois.nic.io_test.rb
|
445
|
+
test/whois/answer/parser/whois.nic.it_test.rb
|
446
|
+
test/whois/answer/parser/whois.nic.lv_test.rb
|
447
|
+
test/whois/answer/parser/whois.nic.ly_test.rb
|
448
|
+
test/whois/answer/parser/whois.nic.mu_test.rb
|
449
|
+
test/whois/answer/parser/whois.nic.mx_test.rb
|
450
|
+
test/whois/answer/parser/whois.nic.name_test.rb
|
451
|
+
test/whois/answer/parser/whois.nic.nu_test.rb
|
452
|
+
test/whois/answer/parser/whois.nic.or.kr_test.rb
|
453
|
+
test/whois/answer/parser/whois.nic.sn_test.rb
|
454
|
+
test/whois/answer/parser/whois.nic.st_test.rb
|
455
|
+
test/whois/answer/parser/whois.nic.tel_test.rb
|
456
|
+
test/whois/answer/parser/whois.nic.tl_test.rb
|
457
|
+
test/whois/answer/parser/whois.nic.tr_test.rb
|
458
|
+
test/whois/answer/parser/whois.nic.travel_test.rb
|
459
|
+
test/whois/answer/parser/whois.nic.tv_test.rb
|
460
|
+
test/whois/answer/parser/whois.nic.uk_test.rb
|
461
|
+
test/whois/answer/parser/whois.nic.us_test.rb
|
462
|
+
test/whois/answer/parser/whois.nic.ve_test.rb
|
463
|
+
test/whois/answer/parser/whois.norid.no_test.rb
|
464
|
+
test/whois/answer/parser/whois.pandi.or.id_test.rb
|
465
|
+
test/whois/answer/parser/whois.publicinterestregistry.net_test.rb
|
466
|
+
test/whois/answer/parser/whois.register.bg_test.rb
|
467
|
+
test/whois/answer/parser/whois.registro.br_test.rb
|
468
|
+
test/whois/answer/parser/whois.registry.in_test.rb
|
469
|
+
test/whois/answer/parser/whois.registrypro.pro_test.rb
|
470
|
+
test/whois/answer/parser/whois.ripe.net_test.rb
|
471
|
+
test/whois/answer/parser/whois.ripn.net_test.rb
|
472
|
+
test/whois/answer/parser/whois.rotld.ro_test.rb
|
473
|
+
test/whois/answer/parser/whois.samoanic.ws_test.rb
|
474
|
+
test/whois/answer/parser/whois.srs.net.nz_test.rb
|
475
|
+
test/whois/answer/parser/whois.za.net_test.rb
|
476
|
+
test/whois/answer/parser/whois.za.org_test.rb
|
477
|
+
test/whois/answer/parser_test.rb
|
478
|
+
test/whois/answer/super_struct_test.rb
|
479
|
+
test/whois/answer_test.rb
|
480
|
+
test/whois/client_test.rb
|
481
|
+
test/whois/errors_test.rb
|
482
|
+
test/whois/integration_test.rb
|
483
|
+
test/whois/server/adapters/afilias_test.rb
|
484
|
+
test/whois/server/adapters/base_test.rb
|
485
|
+
test/whois/server/adapters/formatted_test.rb
|
486
|
+
test/whois/server/adapters/none_test.rb
|
487
|
+
test/whois/server/adapters/not_implemented_test.rb
|
488
|
+
test/whois/server/adapters/pir_test.rb
|
489
|
+
test/whois/server/adapters/standard_test.rb
|
490
|
+
test/whois/server/adapters/verisign_test.rb
|
491
|
+
test/whois/server/adapters/web_test.rb
|
492
|
+
test/whois/server_test.rb
|
490
493
|
utils/bm_delegation_vs_inheritance.rb
|
491
494
|
utils/bm_shell_vs_pure.rb
|
data/lib/whois/answer.rb
CHANGED
@@ -134,8 +134,8 @@ module Whois
|
|
134
134
|
|
135
135
|
# Delegates all method calls to the internal parser.
|
136
136
|
def method_missing(method, *args, &block)
|
137
|
-
if
|
138
|
-
self.class.class_eval
|
137
|
+
if Parser::PROPERTIES.include?(method)
|
138
|
+
self.class.class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
139
139
|
def #{method}(*args, &block)
|
140
140
|
if property_supported?(:#{method})
|
141
141
|
parser.#{method}(*args, &block)
|
@@ -143,15 +143,25 @@ module Whois
|
|
143
143
|
nil
|
144
144
|
end
|
145
145
|
end
|
146
|
-
|
146
|
+
RUBY
|
147
|
+
send(method, *args, &block)
|
148
|
+
|
149
|
+
elsif Parser::METHODS.include?(method)
|
150
|
+
self.class.class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
151
|
+
def #{method}(*args, &block)
|
152
|
+
if parser.respond_to?(:#{method})
|
153
|
+
parser.#{method}(*args, &block)
|
154
|
+
end
|
155
|
+
end
|
156
|
+
RUBY
|
147
157
|
send(method, *args, &block)
|
148
158
|
|
149
159
|
elsif method.to_s =~ /([a-z_]+)\?/ and (Parser::PROPERTIES + Parser::METHODS).include?($1.to_sym)
|
150
|
-
self.class.class_eval
|
160
|
+
self.class.class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
151
161
|
def #{$1}?
|
152
162
|
!#{$1}.nil?
|
153
163
|
end
|
154
|
-
|
164
|
+
RUBY
|
155
165
|
send($1)
|
156
166
|
|
157
167
|
else
|
data/lib/whois/answer/parser.rb
CHANGED
@@ -221,7 +221,9 @@ module Whois
|
|
221
221
|
end
|
222
222
|
|
223
223
|
|
224
|
-
#
|
224
|
+
# Gets all supported contacts merged into a single Array.
|
225
|
+
#
|
226
|
+
# Returns an Array of Whois::Aswer::Contact.
|
225
227
|
def contacts
|
226
228
|
contacts = []
|
227
229
|
contacts.concat(registrant_contact.is_a?(Array) ? registrant_contact : [registrant_contact]) if property_supported?(:registrant_contact)
|
@@ -230,6 +232,16 @@ module Whois
|
|
230
232
|
contacts.compact
|
231
233
|
end
|
232
234
|
|
235
|
+
# Checks whether this is a throttle response.
|
236
|
+
# The default implementation always returns false.
|
237
|
+
#
|
238
|
+
# This method is intended to be overrridden by child classes.
|
239
|
+
#
|
240
|
+
# Returns false by default.
|
241
|
+
def throttle?
|
242
|
+
false
|
243
|
+
end
|
244
|
+
|
233
245
|
|
234
246
|
# @deprecated {#registrant} is deprecated
|
235
247
|
# and will be removed in a future version.
|
@@ -30,12 +30,12 @@ module Whois
|
|
30
30
|
include Ast
|
31
31
|
|
32
32
|
property_supported :disclaimer do
|
33
|
-
node(
|
33
|
+
node("disclaimer")
|
34
34
|
end
|
35
35
|
|
36
36
|
|
37
37
|
property_supported :domain do
|
38
|
-
node(
|
38
|
+
@domain ||= node("domain")
|
39
39
|
end
|
40
40
|
|
41
41
|
property_supported :domain_id do
|
@@ -172,7 +172,6 @@ module Whois
|
|
172
172
|
def parse
|
173
173
|
@ast = {}
|
174
174
|
while !@input.eos?
|
175
|
-
trim_newline ||
|
176
175
|
parse_content
|
177
176
|
end
|
178
177
|
@ast
|
@@ -180,37 +179,59 @@ module Whois
|
|
180
179
|
|
181
180
|
private
|
182
181
|
|
183
|
-
def
|
184
|
-
@input.scan(
|
182
|
+
def trim_empty_line
|
183
|
+
@input.scan(/^\n/)
|
185
184
|
end
|
186
185
|
|
187
186
|
def parse_content
|
187
|
+
parse_version ||
|
188
188
|
parse_disclaimer ||
|
189
189
|
parse_domain ||
|
190
190
|
parse_not_found ||
|
191
191
|
parse_in_progress ||
|
192
|
+
|
193
|
+
# v2.0
|
194
|
+
parse_moreinfo ||
|
195
|
+
|
196
|
+
# v1.99
|
192
197
|
parse_domain_data ||
|
193
198
|
parse_contacts ||
|
194
|
-
|
199
|
+
|
200
|
+
trim_empty_line ||
|
195
201
|
error("Unexpected token")
|
196
202
|
end
|
197
203
|
|
198
|
-
|
204
|
+
|
205
|
+
def parse_version
|
199
206
|
if @input.match?(/% Whois server .*\n/)
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
207
|
+
p("whois.nic.hu: parse_version") if 1 == 2 || $DEBUG
|
208
|
+
@input.scan(/% Whois server ([\w\d\.]*).*?\n/)
|
209
|
+
@ast["version"] = @input[1]
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
213
|
+
# FIXME: Requires UTF-8 Encoding (see #11)
|
214
|
+
def parse_moreinfo
|
215
|
+
if @input.match?(/Tov.* ld\.:\n/)
|
216
|
+
p("whois.nic.hu: parse_moreinfo") if 1 == 2 || $DEBUG
|
217
|
+
@ast["moreinfo"] = @input.scan_until(/^\n/)
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
def parse_disclaimer
|
222
|
+
if @input.match?(/^Rights.*\n/)
|
223
|
+
p("whois.nic.hu: parse_disclaimer") if 1 == 2 || $DEBUG
|
224
|
+
lines = @input.scan_until(/^\n/)
|
225
|
+
@ast["disclaimer"] = lines.strip
|
206
226
|
true
|
207
227
|
end
|
208
228
|
false
|
209
229
|
end
|
210
230
|
|
211
231
|
def parse_domain
|
212
|
-
if @input.match?(
|
213
|
-
|
232
|
+
if @input.match?(/^domain:\s+(.*)\n/) && @input.scan(/^domain:\s+(.*?)\n/)
|
233
|
+
p("whois.nic.hu: parse_domain") if 1 == 2 || $DEBUG
|
234
|
+
@ast["domain"] = @input[1].strip
|
214
235
|
true
|
215
236
|
end
|
216
237
|
false
|
@@ -218,8 +239,9 @@ module Whois
|
|
218
239
|
|
219
240
|
# FIXME: Requires UTF-8 Encoding (see #11)
|
220
241
|
def parse_not_found
|
221
|
-
if @input.match?(
|
222
|
-
|
242
|
+
if @input.match?(/Nincs (.*?) \/ No match\n/)
|
243
|
+
p("whois.nic.hu: parse_not_found") if 1 == 2 || $DEBUG
|
244
|
+
@input.scan(/Nincs (.*?) \/ No match\n/)
|
223
245
|
return @ast['NotFound'] = true
|
224
246
|
end
|
225
247
|
@ast['NotFound'] = false
|
@@ -228,15 +250,17 @@ module Whois
|
|
228
250
|
# FIXME: Requires UTF-8 Encoding (see #11)
|
229
251
|
def parse_in_progress
|
230
252
|
if @input.match?(/(.*?) folyamatban \/ Registration in progress\n/)
|
231
|
-
|
232
|
-
|
253
|
+
p("whois.nic.hu: parse_in_progress") if 1 == 2 || $DEBUG
|
254
|
+
@input.scan(/(.*?) folyamatban \/ Registration in progress\n/)
|
255
|
+
return @ast['InProgress'] = true
|
233
256
|
end
|
234
257
|
@ast['InProgress'] = false
|
235
258
|
end
|
236
259
|
|
237
260
|
def parse_domain_data
|
238
|
-
if @input.match?(
|
239
|
-
|
261
|
+
if @input.match?(/(.+?):\s+(.*)\n/)
|
262
|
+
p("whois.nic.hu: parse_domain_data") if 1 == 2 || $DEBUG
|
263
|
+
while @input.scan(/(.+?):\s+(.*)\n/)
|
240
264
|
key, value = @input[1].strip, @input[2].strip
|
241
265
|
if key == 'person'
|
242
266
|
@ast['name'] = value
|
@@ -262,9 +286,10 @@ module Whois
|
|
262
286
|
end
|
263
287
|
|
264
288
|
def parse_contacts
|
265
|
-
if @input.match?(/\n
|
266
|
-
|
267
|
-
|
289
|
+
if @input.match?(/\n(person|org):/)
|
290
|
+
p("whois.nic.hu: parse_contacts") if 1 == 2 || $DEBUG
|
291
|
+
@input.scan(/\n/)
|
292
|
+
while @input.match?(/(.+?):\s+(.*)\n/)
|
268
293
|
parse_contact
|
269
294
|
end
|
270
295
|
true
|
@@ -274,71 +299,69 @@ module Whois
|
|
274
299
|
end
|
275
300
|
|
276
301
|
def parse_contact
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
else
|
321
|
-
contact['org'] = value
|
322
|
-
end
|
323
|
-
elsif key == 'address' && !contact['address'].nil?
|
324
|
-
contact['address'] = [contact['address'], value].flatten
|
302
|
+
contact ||= {}
|
303
|
+
p("whois.nic.hu: parse_contact") if 1 == 2 || $DEBUG
|
304
|
+
while @input.scan(/(.+?):\s+(.*)\n/)
|
305
|
+
key, value = @input[1].strip, @input[2].strip
|
306
|
+
if key == 'hun-id'
|
307
|
+
a1 = contact['address'][1].split(/\s/)
|
308
|
+
zip = a1.shift
|
309
|
+
city = a1.join(' ')
|
310
|
+
# we should keep the old values if this is an already
|
311
|
+
# defined contact
|
312
|
+
if @ast[value].nil?
|
313
|
+
@ast[value] = {
|
314
|
+
"id" => value,
|
315
|
+
"name" => contact['name'],
|
316
|
+
"organization" => contact['org'],
|
317
|
+
"address" => contact['address'][0],
|
318
|
+
"city" => city,
|
319
|
+
"zip" => zip,
|
320
|
+
"country_code" => contact['address'][2],
|
321
|
+
"phone" => contact['phone'],
|
322
|
+
"fax" => contact['fax-no'],
|
323
|
+
"email" => contact['e-mail']
|
324
|
+
}
|
325
|
+
else
|
326
|
+
@ast[value]["id"] ||= value
|
327
|
+
@ast[value]["name"] ||= contact['name']
|
328
|
+
@ast[value]["organization"] ||= contact['org']
|
329
|
+
@ast[value]["address"] ||= contact['address'][0]
|
330
|
+
@ast[value]["city"] ||= city
|
331
|
+
@ast[value]["zip"] ||= zip
|
332
|
+
@ast[value]["country_code"] ||= contact['address'][2]
|
333
|
+
@ast[value]["phone"] ||= contact['phone']
|
334
|
+
@ast[value]["fax"] ||= contact['fax-no']
|
335
|
+
@ast[value]["email"] ||= contact['e-mail']
|
336
|
+
end
|
337
|
+
contact = {}
|
338
|
+
elsif key == 'person'
|
339
|
+
contact['name'] = value
|
340
|
+
elsif key == 'org'
|
341
|
+
if value =~ /org_name_hun:\s+(.*)\Z/
|
342
|
+
contact['name'] = $1
|
343
|
+
elsif value =~ /org_name_eng:\s+(.*)\Z/
|
344
|
+
contact['org'] = $1
|
325
345
|
else
|
326
|
-
contact[
|
346
|
+
contact['org'] = value
|
327
347
|
end
|
348
|
+
elsif key == 'address' && !contact['address'].nil?
|
349
|
+
contact['address'] = [contact['address'], value].flatten
|
350
|
+
else
|
351
|
+
contact[key] = value
|
328
352
|
end
|
329
|
-
true
|
330
353
|
end
|
331
|
-
|
354
|
+
true
|
332
355
|
end
|
333
356
|
|
334
357
|
def error(message)
|
335
|
-
raise "#{message}:
|
358
|
+
raise "#{message}: `#{@input.peek(@input.string.length)}'"
|
336
359
|
end
|
337
360
|
|
338
361
|
end
|
339
|
-
|
362
|
+
|
340
363
|
end
|
341
364
|
|
342
365
|
end
|
343
366
|
end
|
344
|
-
end
|
367
|
+
end
|