whois 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +7 -0
- data/Manifest +2 -2
- data/lib/whois/answer/contact.rb +7 -2
- data/lib/whois/answer/parser/base.rb +3 -3
- data/lib/whois/answer/parser/whois.denic.de.rb +29 -21
- data/lib/whois/answer/parser/whois.nic.hu.rb +15 -13
- data/lib/whois/answer/parser/whois.nic.it.rb +12 -11
- data/lib/whois/answer/parser/whois.publicinterestregistry.net.rb +16 -15
- data/lib/whois/version.rb +1 -1
- data/test/answer/parser/base_test.rb +4 -4
- data/test/answer/parser/whois.denic.de_test.rb +1 -0
- data/test/answer/parser/whois.nic.hu_test.rb +25 -21
- data/test/answer/parser/whois.nic.it_test.rb +78 -34
- data/test/answer/parser/whois.publicinterestregistry.net_test.rb +161 -79
- data/test/testcases/responses/whois.nic.it/{status_active.txt → property_status_active.txt} +0 -0
- data/test/testcases/responses/whois.nic.it/{status_available.txt → property_status_available.txt} +0 -0
- data/whois.gemspec +2 -2
- metadata +4 -4
@@ -10,21 +10,28 @@ class AnswerParserWhoisNicItTest < Whois::Answer::Parser::TestCase
|
|
10
10
|
|
11
11
|
|
12
12
|
def test_disclaimer
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
parser = @klass.new(load_part('/registered.txt'))
|
14
|
+
expected = "Please note that the following result could be a subgroup of the data contained in the database. Additional information can be visualized at: http://www.nic.it/cgi-bin/Whois/whois.cgi"
|
15
|
+
assert_equal expected, parser.disclaimer
|
16
|
+
assert_equal expected, parser.instance_eval { @disclaimer }
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
|
18
|
+
parser = @klass.new(load_part('/available.txt'))
|
19
|
+
expected = nil
|
20
|
+
assert_equal expected, parser.disclaimer
|
21
|
+
assert_equal expected, parser.instance_eval { @disclaimer }
|
20
22
|
end
|
21
23
|
|
22
24
|
|
23
25
|
def test_domain
|
24
|
-
|
25
|
-
|
26
|
-
assert_equal
|
27
|
-
|
26
|
+
parser = @klass.new(load_part('/registered.txt'))
|
27
|
+
expected = "google.it"
|
28
|
+
assert_equal expected, parser.domain
|
29
|
+
assert_equal expected, parser.instance_eval { @domain }
|
30
|
+
|
31
|
+
parser = @klass.new(load_part('/available.txt'))
|
32
|
+
expected = "google.it"
|
33
|
+
assert_equal expected, parser.domain
|
34
|
+
assert_equal expected, parser.instance_eval { @domain }
|
28
35
|
end
|
29
36
|
|
30
37
|
def test_domain_id
|
@@ -34,10 +41,15 @@ class AnswerParserWhoisNicItTest < Whois::Answer::Parser::TestCase
|
|
34
41
|
|
35
42
|
|
36
43
|
def test_status
|
37
|
-
|
38
|
-
|
39
|
-
assert_equal
|
40
|
-
|
44
|
+
parser = @klass.new(load_part('/property_status_active.txt'))
|
45
|
+
expected = :active
|
46
|
+
assert_equal expected, parser.status
|
47
|
+
assert_equal expected, parser.instance_eval { @status }
|
48
|
+
|
49
|
+
parser = @klass.new(load_part('/property_status_available.txt'))
|
50
|
+
expected = :available
|
51
|
+
assert_equal expected, parser.status
|
52
|
+
assert_equal expected, parser.instance_eval { @status }
|
41
53
|
end
|
42
54
|
|
43
55
|
def test_available?
|
@@ -53,40 +65,69 @@ class AnswerParserWhoisNicItTest < Whois::Answer::Parser::TestCase
|
|
53
65
|
|
54
66
|
# NOTE: Unfortunately, the whois.nic.it response doesn't include TimeZone
|
55
67
|
def test_created_on
|
56
|
-
|
57
|
-
|
58
|
-
assert_equal
|
59
|
-
|
68
|
+
parser = @klass.new(load_part('/registered.txt'))
|
69
|
+
expected = Time.parse("1999-12-10 00:00:00")
|
70
|
+
assert_equal expected, parser.created_on
|
71
|
+
assert_equal expected, parser.instance_eval { @created_on }
|
72
|
+
|
73
|
+
parser = @klass.new(load_part('/available.txt'))
|
74
|
+
expected = nil
|
75
|
+
assert_equal expected, parser.created_on
|
76
|
+
assert_equal expected, parser.instance_eval { @created_on }
|
60
77
|
end
|
61
78
|
|
62
79
|
# NOTE: Unfortunately, the whois.nic.it response doesn't include TimeZone
|
63
80
|
def test_updated_on
|
64
|
-
|
65
|
-
|
66
|
-
assert_equal
|
67
|
-
|
81
|
+
parser = @klass.new(load_part('/registered.txt'))
|
82
|
+
expected = Time.parse("2008-11-27 16:47:22")
|
83
|
+
assert_equal expected, parser.updated_on
|
84
|
+
assert_equal expected, parser.instance_eval { @updated_on }
|
85
|
+
|
86
|
+
parser = @klass.new(load_part('/available.txt'))
|
87
|
+
expected = nil
|
88
|
+
assert_equal expected, parser.updated_on
|
89
|
+
assert_equal expected, parser.instance_eval { @updated_on }
|
68
90
|
end
|
69
91
|
|
70
92
|
# NOTE: Unfortunately, the whois.nic.it response doesn't include TimeZone
|
71
93
|
def test_expires_on
|
72
|
-
|
73
|
-
|
74
|
-
assert_equal
|
75
|
-
|
94
|
+
parser = @klass.new(load_part('/registered.txt'))
|
95
|
+
expected = Time.parse("2009-11-27 00:00:00")
|
96
|
+
assert_equal expected, parser.expires_on
|
97
|
+
assert_equal expected, parser.instance_eval { @expires_on }
|
98
|
+
|
99
|
+
parser = @klass.new(load_part('/available.txt'))
|
100
|
+
expected = nil
|
101
|
+
assert_equal expected, parser.expires_on
|
102
|
+
assert_equal expected, parser.instance_eval { @expires_on }
|
76
103
|
end
|
77
104
|
|
78
105
|
|
79
|
-
def
|
80
|
-
|
81
|
-
|
82
|
-
assert_equal
|
83
|
-
assert_equal
|
84
|
-
|
106
|
+
def test_registrar_with_registered
|
107
|
+
parser = @klass.new(load_part('/registered.txt'))
|
108
|
+
expected = parser.registrar
|
109
|
+
assert_equal expected, parser.registrar
|
110
|
+
assert_equal expected, parser.instance_eval { @registrar }
|
111
|
+
|
112
|
+
assert_instance_of Whois::Answer::Registrar, expected
|
113
|
+
assert_equal "REGISTER-MNT", expected.id
|
85
114
|
end
|
86
115
|
|
87
116
|
def test_registrar_with_available
|
88
|
-
|
89
|
-
|
117
|
+
parser = @klass.new(load_part('/available.txt'))
|
118
|
+
expected = nil
|
119
|
+
assert_equal expected, parser.registrar
|
120
|
+
assert_equal expected, parser.instance_eval { @registrar }
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_registrar
|
124
|
+
parser = @klass.new(load_part('/registered.txt'))
|
125
|
+
result = parser.registrar
|
126
|
+
|
127
|
+
assert_instance_of Whois::Answer::Registrar, result
|
128
|
+
assert_equal "REGISTER-MNT", result.id
|
129
|
+
assert_equal "REGISTER-MNT", result.name
|
130
|
+
assert_equal "Register.it s.p.a.", result.organization
|
90
131
|
end
|
91
132
|
|
92
133
|
|
@@ -113,6 +154,7 @@ class AnswerParserWhoisNicItTest < Whois::Answer::Parser::TestCase
|
|
113
154
|
|
114
155
|
assert_instance_of Whois::Answer::Contact, result
|
115
156
|
assert_equal "HTML1-ITNIC", result.id
|
157
|
+
assert_equal Whois::Answer::Contact::TYPE_REGISTRANT, result.type
|
116
158
|
assert_equal "HTML.it srl", result.name
|
117
159
|
assert_equal "HTML.it srl", result.organization
|
118
160
|
assert_equal "Viale Alessandrino, 595", result.address
|
@@ -147,6 +189,7 @@ class AnswerParserWhoisNicItTest < Whois::Answer::Parser::TestCase
|
|
147
189
|
|
148
190
|
assert_instance_of Whois::Answer::Contact, result
|
149
191
|
assert_equal "TT4277-ITNIC", result.id
|
192
|
+
assert_equal Whois::Answer::Contact::TYPE_ADMIN, result.type
|
150
193
|
assert_equal "Tsao Tu", result.name
|
151
194
|
assert_equal "Tu Tsao", result.organization
|
152
195
|
assert_equal "30 Herbert Street", result.address
|
@@ -181,6 +224,7 @@ class AnswerParserWhoisNicItTest < Whois::Answer::Parser::TestCase
|
|
181
224
|
|
182
225
|
assert_instance_of Whois::Answer::Contact, result
|
183
226
|
assert_equal "TS7016-ITNIC", result.id
|
227
|
+
assert_equal Whois::Answer::Contact::TYPE_TECHNICAL, result.type
|
184
228
|
assert_equal "Technical Services", result.name
|
185
229
|
assert_equal nil, result.organization
|
186
230
|
assert_equal nil, result.address
|
@@ -10,7 +10,8 @@ class AnswerParserWhoisPublicinterestregistryNetTest < Whois::Answer::Parser::Te
|
|
10
10
|
|
11
11
|
|
12
12
|
def test_disclaimer
|
13
|
-
|
13
|
+
parser = @klass.new(load_part('/registered.txt'))
|
14
|
+
expected = <<-EOS.strip
|
14
15
|
NOTICE: Access to .ORG WHOIS information is provided to assist persons in \
|
15
16
|
determining the contents of a domain name registration record in the Public Interest Registry \
|
16
17
|
registry database. The data in this record is provided by Public Interest Registry \
|
@@ -27,36 +28,51 @@ necessary to register domain names or modify existing registrations. All \
|
|
27
28
|
rights reserved. Public Interest Registry reserves the right to modify these terms at any \
|
28
29
|
time. By submitting this query, you agree to abide by this policy.
|
29
30
|
EOS
|
30
|
-
assert_equal expected,
|
31
|
-
|
32
|
-
end
|
31
|
+
assert_equal expected, parser.disclaimer
|
32
|
+
assert_equal expected, parser.instance_eval { @disclaimer }
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
parser = @klass.new(load_part('/available.txt'))
|
35
|
+
expected = nil
|
36
|
+
assert_equal expected, parser.disclaimer
|
37
|
+
assert_equal expected, parser.instance_eval { @disclaimer }
|
37
38
|
end
|
38
39
|
|
39
40
|
|
40
41
|
def test_domain
|
41
|
-
|
42
|
-
|
43
|
-
assert_equal
|
44
|
-
|
42
|
+
parser = @klass.new(load_part('/registered.txt'))
|
43
|
+
expected = "google.org"
|
44
|
+
assert_equal expected, parser.domain
|
45
|
+
assert_equal expected, parser.instance_eval { @domain }
|
46
|
+
|
47
|
+
parser = @klass.new(load_part('/available.txt'))
|
48
|
+
expected = nil
|
49
|
+
assert_equal expected, parser.domain
|
50
|
+
assert_equal expected, parser.instance_eval { @domain }
|
45
51
|
end
|
46
52
|
|
47
53
|
def test_domain_id
|
48
|
-
|
49
|
-
|
50
|
-
assert_equal
|
51
|
-
|
54
|
+
parser = @klass.new(load_part('/registered.txt'))
|
55
|
+
expected = "D2244233-LROR"
|
56
|
+
assert_equal expected, parser.domain_id
|
57
|
+
assert_equal expected, parser.instance_eval { @domain_id }
|
58
|
+
|
59
|
+
parser = @klass.new(load_part('/available.txt'))
|
60
|
+
expected = nil
|
61
|
+
assert_equal expected, parser.domain_id
|
62
|
+
assert_equal expected, parser.instance_eval { @domain_id }
|
52
63
|
end
|
53
64
|
|
54
65
|
|
55
66
|
def test_status
|
56
|
-
|
57
|
-
|
58
|
-
assert_equal
|
59
|
-
|
67
|
+
parser = @klass.new(load_part('/registered.txt'))
|
68
|
+
expected = ["CLIENT DELETE PROHIBITED", "CLIENT TRANSFER PROHIBITED", "CLIENT UPDATE PROHIBITED"]
|
69
|
+
assert_equal expected, parser.status
|
70
|
+
assert_equal expected, parser.instance_eval { @status }
|
71
|
+
|
72
|
+
parser = @klass.new(load_part('/available.txt'))
|
73
|
+
expected = nil
|
74
|
+
assert_equal expected, parser.status
|
75
|
+
assert_equal expected, parser.instance_eval { @status }
|
60
76
|
end
|
61
77
|
|
62
78
|
def test_available?
|
@@ -71,33 +87,50 @@ time. By submitting this query, you agree to abide by this policy.
|
|
71
87
|
|
72
88
|
|
73
89
|
def test_created_on
|
74
|
-
|
75
|
-
|
76
|
-
assert_equal
|
77
|
-
|
90
|
+
parser = @klass.new(load_part('/registered.txt'))
|
91
|
+
expected = Time.parse("1998-10-21 04:00:00 UTC")
|
92
|
+
assert_equal expected, parser.created_on
|
93
|
+
assert_equal expected, parser.instance_eval { @created_on }
|
94
|
+
|
95
|
+
parser = @klass.new(load_part('/available.txt'))
|
96
|
+
expected = nil
|
97
|
+
assert_equal expected, parser.created_on
|
98
|
+
assert_equal expected, parser.instance_eval { @created_on }
|
78
99
|
end
|
79
100
|
|
80
101
|
def test_updated_on
|
81
|
-
|
82
|
-
|
83
|
-
assert_equal
|
84
|
-
|
102
|
+
parser = @klass.new(load_part('/registered.txt'))
|
103
|
+
expected = Time.parse("2009-03-04 12:07:19 UTC")
|
104
|
+
assert_equal expected, parser.updated_on
|
105
|
+
assert_equal expected, parser.instance_eval { @updated_on }
|
106
|
+
|
107
|
+
parser = @klass.new(load_part('/available.txt'))
|
108
|
+
expected = nil
|
109
|
+
assert_equal expected, parser.updated_on
|
110
|
+
assert_equal expected, parser.instance_eval { @updated_on }
|
85
111
|
end
|
86
112
|
|
87
113
|
def test_expires_on
|
88
|
-
|
89
|
-
|
90
|
-
assert_equal
|
91
|
-
|
114
|
+
parser = @klass.new(load_part('/registered.txt'))
|
115
|
+
expected = Time.parse("2012-10-20 04:00:00 UTC")
|
116
|
+
assert_equal expected, parser.expires_on
|
117
|
+
assert_equal expected, parser.instance_eval { @expires_on }
|
118
|
+
|
119
|
+
parser = @klass.new(load_part('/available.txt'))
|
120
|
+
expected = nil
|
121
|
+
assert_equal expected, parser.expires_on
|
122
|
+
assert_equal expected, parser.instance_eval { @expires_on }
|
92
123
|
end
|
93
124
|
|
94
125
|
|
95
126
|
def test_registrar_with_registered
|
96
|
-
|
97
|
-
|
98
|
-
assert_equal
|
99
|
-
assert_equal
|
100
|
-
|
127
|
+
parser = @klass.new(load_part('/registered.txt'))
|
128
|
+
expected = parser.registrar
|
129
|
+
assert_equal expected, parser.registrar
|
130
|
+
assert_equal expected, parser.instance_eval { @registrar }
|
131
|
+
|
132
|
+
assert_instance_of Whois::Answer::Registrar, expected
|
133
|
+
assert_equal "R37-LROR", expected.id
|
101
134
|
end
|
102
135
|
|
103
136
|
def test_registrar_with_available
|
@@ -107,22 +140,25 @@ time. By submitting this query, you agree to abide by this policy.
|
|
107
140
|
assert_equal expected, parser.instance_eval { @registrar }
|
108
141
|
end
|
109
142
|
|
143
|
+
def test_registrar
|
144
|
+
parser = @klass.new(load_part('/registered.txt'))
|
145
|
+
result = parser.registrar
|
146
|
+
|
147
|
+
assert_instance_of Whois::Answer::Registrar, result
|
148
|
+
assert_equal "R37-LROR", result.id
|
149
|
+
assert_equal "MarkMonitor Inc.", result.name
|
150
|
+
assert_equal nil, result.organization
|
151
|
+
end
|
152
|
+
|
110
153
|
|
111
|
-
def
|
112
|
-
|
113
|
-
|
114
|
-
assert_equal
|
115
|
-
assert_equal
|
116
|
-
|
117
|
-
|
118
|
-
assert_equal "
|
119
|
-
assert_equal "CA", contact.state
|
120
|
-
assert_equal "94043", contact.zip
|
121
|
-
assert_equal nil, contact.country
|
122
|
-
assert_equal "US", contact.country_code
|
123
|
-
assert_equal "+1.6506234000", contact.phone
|
124
|
-
assert_equal "+1.6506188571", contact.fax
|
125
|
-
assert_equal "dns-admin@google.com", contact.email
|
154
|
+
def test_registrant_contact_with_registered
|
155
|
+
parser = @klass.new(load_part('/registered.txt'))
|
156
|
+
expected = parser.registrant_contact
|
157
|
+
assert_equal expected, parser.registrant_contact
|
158
|
+
assert_equal expected, parser.instance_eval { @registrant_contact }
|
159
|
+
|
160
|
+
assert_instance_of Whois::Answer::Contact, expected
|
161
|
+
assert_equal "mmr-32097", expected.id
|
126
162
|
end
|
127
163
|
|
128
164
|
def test_registrant_contact_with_available
|
@@ -132,21 +168,34 @@ time. By submitting this query, you agree to abide by this policy.
|
|
132
168
|
assert_equal expected, parser.instance_eval { @registrant_contact }
|
133
169
|
end
|
134
170
|
|
171
|
+
def test_registrant_contact
|
172
|
+
parser = @klass.new(load_part('/registered.txt'))
|
173
|
+
result = parser.registrant_contact
|
174
|
+
|
175
|
+
assert_instance_of Whois::Answer::Contact, result
|
176
|
+
assert_equal "mmr-32097", result.id
|
177
|
+
assert_equal Whois::Answer::Contact::TYPE_REGISTRANT, result.type
|
178
|
+
assert_equal "DNS Admin", result.name
|
179
|
+
assert_equal "Google Inc.", result.organization
|
180
|
+
assert_equal "1600 Amphitheatre Parkway", result.address
|
181
|
+
assert_equal "Mountain View", result.city
|
182
|
+
assert_equal "CA", result.state
|
183
|
+
assert_equal "94043", result.zip
|
184
|
+
assert_equal nil, result.country
|
185
|
+
assert_equal "US", result.country_code
|
186
|
+
assert_equal "+1.6506234000", result.phone
|
187
|
+
assert_equal "+1.6506188571", result.fax
|
188
|
+
assert_equal "dns-admin@google.com", result.email
|
189
|
+
end
|
190
|
+
|
135
191
|
def test_admin_contact_with_registered
|
136
|
-
|
137
|
-
|
138
|
-
assert_equal
|
139
|
-
assert_equal
|
140
|
-
|
141
|
-
|
142
|
-
assert_equal "
|
143
|
-
assert_equal "CA", contact.state
|
144
|
-
assert_equal "94043", contact.zip
|
145
|
-
assert_equal nil, contact.country
|
146
|
-
assert_equal "US", contact.country_code
|
147
|
-
assert_equal "+1.6506234000", contact.phone
|
148
|
-
assert_equal "+1.6506188571", contact.fax
|
149
|
-
assert_equal "dns-admin@google.com", contact.email
|
192
|
+
parser = @klass.new(load_part('/registered.txt'))
|
193
|
+
expected = parser.admin_contact
|
194
|
+
assert_equal expected, parser.admin_contact
|
195
|
+
assert_equal expected, parser.instance_eval { @admin_contact }
|
196
|
+
|
197
|
+
assert_instance_of Whois::Answer::Contact, expected
|
198
|
+
assert_equal "mmr-32097", expected.id
|
150
199
|
end
|
151
200
|
|
152
201
|
def test_admin_contact_with_available
|
@@ -156,21 +205,34 @@ time. By submitting this query, you agree to abide by this policy.
|
|
156
205
|
assert_equal expected, parser.instance_eval { @admin_contact }
|
157
206
|
end
|
158
207
|
|
208
|
+
def test_admin_contact
|
209
|
+
parser = @klass.new(load_part('/registered.txt'))
|
210
|
+
result = parser.admin_contact
|
211
|
+
|
212
|
+
assert_instance_of Whois::Answer::Contact, result
|
213
|
+
assert_equal "mmr-32097", result.id
|
214
|
+
assert_equal Whois::Answer::Contact::TYPE_ADMIN, result.type
|
215
|
+
assert_equal "DNS Admin", result.name
|
216
|
+
assert_equal "Google Inc.", result.organization
|
217
|
+
assert_equal "1600 Amphitheatre Parkway", result.address
|
218
|
+
assert_equal "Mountain View", result.city
|
219
|
+
assert_equal "CA", result.state
|
220
|
+
assert_equal "94043", result.zip
|
221
|
+
assert_equal nil, result.country
|
222
|
+
assert_equal "US", result.country_code
|
223
|
+
assert_equal "+1.6506234000", result.phone
|
224
|
+
assert_equal "+1.6506188571", result.fax
|
225
|
+
assert_equal "dns-admin@google.com", result.email
|
226
|
+
end
|
227
|
+
|
159
228
|
def test_technical_contact_with_registered
|
160
|
-
|
161
|
-
|
162
|
-
assert_equal
|
163
|
-
assert_equal
|
164
|
-
|
165
|
-
|
166
|
-
assert_equal "
|
167
|
-
assert_equal "CA", contact.state
|
168
|
-
assert_equal "94043", contact.zip
|
169
|
-
assert_equal nil, contact.country
|
170
|
-
assert_equal "US", contact.country_code
|
171
|
-
assert_equal "+1.6506234000", contact.phone
|
172
|
-
assert_equal "+1.6506188571", contact.fax
|
173
|
-
assert_equal "dns-admin@google.com", contact.email
|
229
|
+
parser = @klass.new(load_part('/registered.txt'))
|
230
|
+
expected = parser.technical_contact
|
231
|
+
assert_equal expected, parser.technical_contact
|
232
|
+
assert_equal expected, parser.instance_eval { @technical_contact }
|
233
|
+
|
234
|
+
assert_instance_of Whois::Answer::Contact, expected
|
235
|
+
assert_equal "mmr-32097", expected.id
|
174
236
|
end
|
175
237
|
|
176
238
|
def test_technical_contact_with_available
|
@@ -180,6 +242,26 @@ time. By submitting this query, you agree to abide by this policy.
|
|
180
242
|
assert_equal expected, parser.instance_eval { @technical_contact }
|
181
243
|
end
|
182
244
|
|
245
|
+
def test_technical_contact
|
246
|
+
parser = @klass.new(load_part('/registered.txt'))
|
247
|
+
result = parser.technical_contact
|
248
|
+
|
249
|
+
assert_instance_of Whois::Answer::Contact, result
|
250
|
+
assert_equal "mmr-32097", result.id
|
251
|
+
assert_equal Whois::Answer::Contact::TYPE_TECHNICAL, result.type
|
252
|
+
assert_equal "DNS Admin", result.name
|
253
|
+
assert_equal "Google Inc.", result.organization
|
254
|
+
assert_equal "1600 Amphitheatre Parkway", result.address
|
255
|
+
assert_equal "Mountain View", result.city
|
256
|
+
assert_equal "CA", result.state
|
257
|
+
assert_equal "94043", result.zip
|
258
|
+
assert_equal nil, result.country
|
259
|
+
assert_equal "US", result.country_code
|
260
|
+
assert_equal "+1.6506234000", result.phone
|
261
|
+
assert_equal "+1.6506188571", result.fax
|
262
|
+
assert_equal "dns-admin@google.com", result.email
|
263
|
+
end
|
264
|
+
|
183
265
|
|
184
266
|
def test_nameservers
|
185
267
|
parser = @klass.new(load_part('/registered.txt'))
|