mechanize 2.7.7 → 2.8.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of mechanize might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.github/workflows/ci-test.yml +24 -4
- data/.yardopts +8 -0
- data/{CHANGELOG.rdoc → CHANGELOG.md} +81 -66
- data/Gemfile +1 -6
- data/{LICENSE.rdoc → LICENSE.txt} +4 -0
- data/README.md +79 -0
- data/Rakefile +18 -3
- data/lib/mechanize.rb +1 -0
- data/lib/mechanize/chunked_termination_error.rb +1 -0
- data/lib/mechanize/content_type_error.rb +1 -0
- data/lib/mechanize/cookie.rb +1 -13
- data/lib/mechanize/cookie_jar.rb +2 -10
- data/lib/mechanize/directory_saver.rb +1 -0
- data/lib/mechanize/download.rb +1 -0
- data/lib/mechanize/element_matcher.rb +1 -0
- data/lib/mechanize/element_not_found_error.rb +1 -0
- data/lib/mechanize/file.rb +1 -0
- data/lib/mechanize/file_connection.rb +5 -3
- data/lib/mechanize/file_request.rb +1 -0
- data/lib/mechanize/file_response.rb +3 -0
- data/lib/mechanize/file_saver.rb +1 -0
- data/lib/mechanize/form.rb +1 -9
- data/lib/mechanize/form/button.rb +1 -0
- data/lib/mechanize/form/check_box.rb +1 -0
- data/lib/mechanize/form/field.rb +1 -0
- data/lib/mechanize/form/file_upload.rb +1 -0
- data/lib/mechanize/form/hidden.rb +1 -0
- data/lib/mechanize/form/image_button.rb +1 -0
- data/lib/mechanize/form/keygen.rb +1 -0
- data/lib/mechanize/form/multi_select_list.rb +1 -0
- data/lib/mechanize/form/option.rb +1 -0
- data/lib/mechanize/form/radio_button.rb +1 -0
- data/lib/mechanize/form/reset.rb +1 -0
- data/lib/mechanize/form/select_list.rb +1 -0
- data/lib/mechanize/form/submit.rb +1 -0
- data/lib/mechanize/form/text.rb +1 -0
- data/lib/mechanize/form/textarea.rb +1 -0
- data/lib/mechanize/headers.rb +1 -0
- data/lib/mechanize/history.rb +1 -0
- data/lib/mechanize/http.rb +1 -0
- data/lib/mechanize/http/agent.rb +16 -8
- data/lib/mechanize/http/auth_challenge.rb +1 -0
- data/lib/mechanize/http/auth_realm.rb +1 -0
- data/lib/mechanize/http/auth_store.rb +1 -0
- data/lib/mechanize/http/content_disposition_parser.rb +14 -2
- data/lib/mechanize/http/www_authenticate_parser.rb +3 -3
- data/lib/mechanize/image.rb +1 -0
- data/lib/mechanize/page.rb +1 -0
- data/lib/mechanize/page/base.rb +1 -0
- data/lib/mechanize/page/frame.rb +1 -0
- data/lib/mechanize/page/image.rb +1 -0
- data/lib/mechanize/page/label.rb +1 -0
- data/lib/mechanize/page/link.rb +8 -1
- data/lib/mechanize/page/meta_refresh.rb +1 -0
- data/lib/mechanize/parser.rb +1 -0
- data/lib/mechanize/pluggable_parsers.rb +1 -0
- data/lib/mechanize/prependable.rb +1 -0
- data/lib/mechanize/redirect_limit_reached_error.rb +1 -0
- data/lib/mechanize/redirect_not_get_or_head_error.rb +1 -0
- data/lib/mechanize/response_code_error.rb +2 -1
- data/lib/mechanize/response_read_error.rb +1 -0
- data/lib/mechanize/robots_disallowed_error.rb +1 -0
- data/lib/mechanize/test_case.rb +32 -27
- data/lib/mechanize/test_case/bad_chunking_servlet.rb +1 -0
- data/lib/mechanize/test_case/basic_auth_servlet.rb +1 -0
- data/lib/mechanize/test_case/content_type_servlet.rb +1 -0
- data/lib/mechanize/test_case/digest_auth_servlet.rb +1 -0
- data/lib/mechanize/test_case/file_upload_servlet.rb +1 -0
- data/lib/mechanize/test_case/form_servlet.rb +1 -0
- data/lib/mechanize/test_case/gzip_servlet.rb +1 -0
- data/lib/mechanize/test_case/header_servlet.rb +1 -0
- data/lib/mechanize/test_case/http_refresh_servlet.rb +1 -0
- data/lib/mechanize/test_case/infinite_redirect_servlet.rb +1 -0
- data/lib/mechanize/test_case/infinite_refresh_servlet.rb +1 -0
- data/lib/mechanize/test_case/many_cookies_as_string_servlet.rb +1 -0
- data/lib/mechanize/test_case/many_cookies_servlet.rb +1 -0
- data/lib/mechanize/test_case/modified_since_servlet.rb +1 -0
- data/lib/mechanize/test_case/ntlm_servlet.rb +1 -0
- data/lib/mechanize/test_case/one_cookie_no_spaces_servlet.rb +1 -0
- data/lib/mechanize/test_case/one_cookie_servlet.rb +1 -0
- data/lib/mechanize/test_case/quoted_value_cookie_servlet.rb +1 -0
- data/lib/mechanize/test_case/redirect_servlet.rb +1 -0
- data/lib/mechanize/test_case/referer_servlet.rb +1 -0
- data/lib/mechanize/test_case/refresh_with_empty_url.rb +1 -0
- data/lib/mechanize/test_case/refresh_without_url.rb +1 -0
- data/lib/mechanize/test_case/response_code_servlet.rb +1 -0
- data/lib/mechanize/test_case/robots_txt_servlet.rb +1 -0
- data/lib/mechanize/test_case/send_cookies_servlet.rb +1 -0
- data/lib/mechanize/test_case/server.rb +1 -0
- data/lib/mechanize/test_case/servlets.rb +1 -0
- data/lib/mechanize/test_case/verb_servlet.rb +1 -0
- data/lib/mechanize/unauthorized_error.rb +1 -0
- data/lib/mechanize/unsupported_scheme_error.rb +1 -0
- data/lib/mechanize/util.rb +2 -1
- data/lib/mechanize/version.rb +2 -1
- data/lib/mechanize/xml_file.rb +1 -0
- data/mechanize.gemspec +38 -31
- data/test/htdocs/dir with spaces/foo.html +1 -0
- data/test/test_mechanize.rb +5 -4
- data/test/test_mechanize_cookie_jar.rb +2 -0
- data/test/test_mechanize_download.rb +1 -0
- data/test/test_mechanize_file.rb +1 -0
- data/test/test_mechanize_file_connection.rb +21 -3
- data/test/test_mechanize_file_response.rb +6 -0
- data/test/test_mechanize_http_agent.rb +47 -7
- data/test/test_mechanize_http_content_disposition_parser.rb +27 -0
- data/test/test_mechanize_link.rb +24 -0
- metadata +134 -52
- data/README.rdoc +0 -77
data/test/test_mechanize_link.rb
CHANGED
@@ -135,6 +135,30 @@ class TestMechanizeLink < Mechanize::TestCase
|
|
135
135
|
assert_equal 'http://foo.bar/%20baz', link.uri.to_s
|
136
136
|
end
|
137
137
|
|
138
|
+
def test_uri_weird_with_fragment
|
139
|
+
doc = Nokogiri::HTML::Document.new
|
140
|
+
|
141
|
+
node = Nokogiri::XML::Node.new('foo', doc)
|
142
|
+
node['href'] = 'http://foo.bar/ baz#уважение'
|
143
|
+
|
144
|
+
link = Mechanize::Page::Link.new(node, nil, nil)
|
145
|
+
|
146
|
+
assert_equal '%D1%83%D0%B2%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5', link.uri.fragment
|
147
|
+
end
|
148
|
+
|
149
|
+
def test_bad_uri_raise_compatible_exception
|
150
|
+
doc = Nokogiri::HTML::Document.new
|
151
|
+
|
152
|
+
node = Nokogiri::XML::Node.new('foo', doc)
|
153
|
+
node['href'] = 'http://http:foo.bar/ baz'
|
154
|
+
|
155
|
+
link = Mechanize::Page::Link.new(node, nil, nil)
|
156
|
+
|
157
|
+
assert_raises URI::InvalidURIError do
|
158
|
+
link.uri
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
138
162
|
def test_resolving_full_uri
|
139
163
|
page = @mech.get("http://localhost/frame_test.html")
|
140
164
|
link = page.link_with(:text => "Form Test")
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mechanize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eric Hodel
|
@@ -12,144 +12,156 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2021-
|
15
|
+
date: 2021-04-01 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
|
-
name:
|
18
|
+
name: addressable
|
19
19
|
requirement: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 1.1.1
|
24
21
|
- - "~>"
|
25
22
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
23
|
+
version: '2.7'
|
27
24
|
type: :runtime
|
28
25
|
prerelease: false
|
29
26
|
version_requirements: !ruby/object:Gem::Requirement
|
30
27
|
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 1.1.1
|
34
28
|
- - "~>"
|
35
29
|
- !ruby/object:Gem::Version
|
36
|
-
version: '
|
30
|
+
version: '2.7'
|
37
31
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
32
|
+
name: domain_name
|
39
33
|
requirement: !ruby/object:Gem::Requirement
|
40
34
|
requirements:
|
41
35
|
- - ">="
|
42
36
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
37
|
+
version: 0.5.20190701
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.5'
|
44
41
|
type: :runtime
|
45
42
|
prerelease: false
|
46
43
|
version_requirements: !ruby/object:Gem::Requirement
|
47
44
|
requirements:
|
48
45
|
- - ">="
|
49
46
|
- !ruby/object:Gem::Version
|
50
|
-
version:
|
47
|
+
version: 0.5.20190701
|
48
|
+
- - "~>"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0.5'
|
51
51
|
- !ruby/object:Gem::Dependency
|
52
|
-
name:
|
52
|
+
name: http-cookie
|
53
53
|
requirement: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - ">="
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version:
|
57
|
+
version: 1.0.3
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '1.0'
|
58
61
|
type: :runtime
|
59
62
|
prerelease: false
|
60
63
|
version_requirements: !ruby/object:Gem::Requirement
|
61
64
|
requirements:
|
62
65
|
- - ">="
|
63
66
|
- !ruby/object:Gem::Version
|
64
|
-
version:
|
67
|
+
version: 1.0.3
|
68
|
+
- - "~>"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '1.0'
|
65
71
|
- !ruby/object:Gem::Dependency
|
66
|
-
name:
|
72
|
+
name: mime-types
|
67
73
|
requirement: !ruby/object:Gem::Requirement
|
68
74
|
requirements:
|
69
75
|
- - "~>"
|
70
76
|
- !ruby/object:Gem::Version
|
71
|
-
version: '
|
77
|
+
version: '3.0'
|
72
78
|
type: :runtime
|
73
79
|
prerelease: false
|
74
80
|
version_requirements: !ruby/object:Gem::Requirement
|
75
81
|
requirements:
|
76
82
|
- - "~>"
|
77
83
|
- !ruby/object:Gem::Version
|
78
|
-
version: '
|
84
|
+
version: '3.0'
|
79
85
|
- !ruby/object:Gem::Dependency
|
80
|
-
name:
|
86
|
+
name: net-http-digest_auth
|
81
87
|
requirement: !ruby/object:Gem::Requirement
|
82
88
|
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: 1.4.1
|
83
92
|
- - "~>"
|
84
93
|
- !ruby/object:Gem::Version
|
85
|
-
version: '1.
|
94
|
+
version: '1.4'
|
86
95
|
type: :runtime
|
87
96
|
prerelease: false
|
88
97
|
version_requirements: !ruby/object:Gem::Requirement
|
89
98
|
requirements:
|
99
|
+
- - ">="
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 1.4.1
|
90
102
|
- - "~>"
|
91
103
|
- !ruby/object:Gem::Version
|
92
|
-
version: '1.
|
104
|
+
version: '1.4'
|
93
105
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
106
|
+
name: net-http-persistent
|
95
107
|
requirement: !ruby/object:Gem::Requirement
|
96
108
|
requirements:
|
97
109
|
- - ">="
|
98
110
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
100
|
-
- - "
|
111
|
+
version: 2.5.2
|
112
|
+
- - "<"
|
101
113
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
114
|
+
version: 5.0.dev
|
103
115
|
type: :runtime
|
104
116
|
prerelease: false
|
105
117
|
version_requirements: !ruby/object:Gem::Requirement
|
106
118
|
requirements:
|
107
119
|
- - ">="
|
108
120
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
110
|
-
- - "
|
121
|
+
version: 2.5.2
|
122
|
+
- - "<"
|
111
123
|
- !ruby/object:Gem::Version
|
112
|
-
version:
|
124
|
+
version: 5.0.dev
|
113
125
|
- !ruby/object:Gem::Dependency
|
114
|
-
name:
|
126
|
+
name: nokogiri
|
115
127
|
requirement: !ruby/object:Gem::Requirement
|
116
128
|
requirements:
|
117
|
-
- - "<"
|
118
|
-
- !ruby/object:Gem::Version
|
119
|
-
version: '0.2'
|
120
129
|
- - ">="
|
121
130
|
- !ruby/object:Gem::Version
|
122
|
-
version:
|
131
|
+
version: 1.11.2
|
132
|
+
- - "~>"
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '1.11'
|
123
135
|
type: :runtime
|
124
136
|
prerelease: false
|
125
137
|
version_requirements: !ruby/object:Gem::Requirement
|
126
138
|
requirements:
|
127
|
-
- - "<"
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
version: '0.2'
|
130
139
|
- - ">="
|
131
140
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
141
|
+
version: 1.11.2
|
142
|
+
- - "~>"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '1.11'
|
133
145
|
- !ruby/object:Gem::Dependency
|
134
|
-
name:
|
146
|
+
name: rubyntlm
|
135
147
|
requirement: !ruby/object:Gem::Requirement
|
136
148
|
requirements:
|
137
149
|
- - ">="
|
138
150
|
- !ruby/object:Gem::Version
|
139
|
-
version: 0.
|
151
|
+
version: 0.6.3
|
140
152
|
- - "~>"
|
141
153
|
- !ruby/object:Gem::Version
|
142
|
-
version: '0.
|
154
|
+
version: '0.6'
|
143
155
|
type: :runtime
|
144
156
|
prerelease: false
|
145
157
|
version_requirements: !ruby/object:Gem::Requirement
|
146
158
|
requirements:
|
147
159
|
- - ">="
|
148
160
|
- !ruby/object:Gem::Version
|
149
|
-
version: 0.
|
161
|
+
version: 0.6.3
|
150
162
|
- - "~>"
|
151
163
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0.
|
164
|
+
version: '0.6'
|
153
165
|
- !ruby/object:Gem::Dependency
|
154
166
|
name: webrick
|
155
167
|
requirement: !ruby/object:Gem::Requirement
|
@@ -164,6 +176,76 @@ dependencies:
|
|
164
176
|
- - "~>"
|
165
177
|
- !ruby/object:Gem::Version
|
166
178
|
version: '1.7'
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
name: webrobots
|
181
|
+
requirement: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - "~>"
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: 0.1.2
|
186
|
+
type: :runtime
|
187
|
+
prerelease: false
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - "~>"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 0.1.2
|
193
|
+
- !ruby/object:Gem::Dependency
|
194
|
+
name: minitest
|
195
|
+
requirement: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - "~>"
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '5.14'
|
200
|
+
type: :development
|
201
|
+
prerelease: false
|
202
|
+
version_requirements: !ruby/object:Gem::Requirement
|
203
|
+
requirements:
|
204
|
+
- - "~>"
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '5.14'
|
207
|
+
- !ruby/object:Gem::Dependency
|
208
|
+
name: rake
|
209
|
+
requirement: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
211
|
+
- - "~>"
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '13.0'
|
214
|
+
type: :development
|
215
|
+
prerelease: false
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
requirements:
|
218
|
+
- - "~>"
|
219
|
+
- !ruby/object:Gem::Version
|
220
|
+
version: '13.0'
|
221
|
+
- !ruby/object:Gem::Dependency
|
222
|
+
name: rdoc
|
223
|
+
requirement: !ruby/object:Gem::Requirement
|
224
|
+
requirements:
|
225
|
+
- - "~>"
|
226
|
+
- !ruby/object:Gem::Version
|
227
|
+
version: '6.3'
|
228
|
+
type: :development
|
229
|
+
prerelease: false
|
230
|
+
version_requirements: !ruby/object:Gem::Requirement
|
231
|
+
requirements:
|
232
|
+
- - "~>"
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: '6.3'
|
235
|
+
- !ruby/object:Gem::Dependency
|
236
|
+
name: rubocop
|
237
|
+
requirement: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - "~>"
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '1.12'
|
242
|
+
type: :development
|
243
|
+
prerelease: false
|
244
|
+
version_requirements: !ruby/object:Gem::Requirement
|
245
|
+
requirements:
|
246
|
+
- - "~>"
|
247
|
+
- !ruby/object:Gem::Version
|
248
|
+
version: '1.12'
|
167
249
|
description: |-
|
168
250
|
The Mechanize library is used for automating interaction with websites.
|
169
251
|
Mechanize automatically stores and sends cookies, follows redirects,
|
@@ -181,19 +263,19 @@ extensions: []
|
|
181
263
|
extra_rdoc_files:
|
182
264
|
- GUIDE.rdoc
|
183
265
|
- EXAMPLES.rdoc
|
184
|
-
-
|
185
|
-
- CHANGELOG.
|
186
|
-
- README.rdoc
|
266
|
+
- README.md
|
267
|
+
- CHANGELOG.md
|
187
268
|
files:
|
188
269
|
- ".autotest"
|
189
270
|
- ".github/workflows/ci-test.yml"
|
190
271
|
- ".gitignore"
|
191
|
-
-
|
272
|
+
- ".yardopts"
|
273
|
+
- CHANGELOG.md
|
192
274
|
- EXAMPLES.rdoc
|
193
275
|
- GUIDE.rdoc
|
194
276
|
- Gemfile
|
195
|
-
- LICENSE.
|
196
|
-
- README.
|
277
|
+
- LICENSE.txt
|
278
|
+
- README.md
|
197
279
|
- Rakefile
|
198
280
|
- examples/flickr_upload.rb
|
199
281
|
- examples/mech-dump.rb
|
@@ -399,14 +481,14 @@ metadata: {}
|
|
399
481
|
post_install_message:
|
400
482
|
rdoc_options:
|
401
483
|
- "--main"
|
402
|
-
- README.
|
484
|
+
- README.md
|
403
485
|
require_paths:
|
404
486
|
- lib
|
405
487
|
required_ruby_version: !ruby/object:Gem::Requirement
|
406
488
|
requirements:
|
407
489
|
- - ">="
|
408
490
|
- !ruby/object:Gem::Version
|
409
|
-
version:
|
491
|
+
version: 2.5.0
|
410
492
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
411
493
|
requirements:
|
412
494
|
- - ">="
|
data/README.rdoc
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
= Mechanize {<img src="https://secure.travis-ci.org/sparklemotion/mechanize.svg?rvm=2.3.3" />}[http://travis-ci.org/sparklemotion/mechanize]
|
2
|
-
|
3
|
-
* http://docs.seattlerb.org/mechanize
|
4
|
-
* https://github.com/sparklemotion/mechanize
|
5
|
-
|
6
|
-
== Description
|
7
|
-
|
8
|
-
The Mechanize library is used for automating interaction with websites.
|
9
|
-
Mechanize automatically stores and sends cookies, follows redirects,
|
10
|
-
and can follow links and submit forms. Form fields can be populated and
|
11
|
-
submitted. Mechanize also keeps track of the sites that you have visited as
|
12
|
-
a history.
|
13
|
-
|
14
|
-
== Dependencies
|
15
|
-
|
16
|
-
* ruby 1.9.2 or newer
|
17
|
-
* nokogiri[https://github.com/sparklemotion/nokogiri]
|
18
|
-
|
19
|
-
== Support:
|
20
|
-
|
21
|
-
The bug tracker is available here:
|
22
|
-
|
23
|
-
* https://github.com/sparklemotion/mechanize/issues
|
24
|
-
|
25
|
-
== Examples
|
26
|
-
|
27
|
-
If you are just starting, check out the GUIDE[http://docs.seattlerb.org/mechanize/GUIDE_rdoc.html] or
|
28
|
-
the EXAMPLES[http://docs.seattlerb.org/mechanize/EXAMPLES_rdoc.html] file.
|
29
|
-
|
30
|
-
== Developers
|
31
|
-
|
32
|
-
Use bundler to install dependencies:
|
33
|
-
|
34
|
-
bundle install
|
35
|
-
|
36
|
-
Run all tests with:
|
37
|
-
|
38
|
-
rake test
|
39
|
-
|
40
|
-
You can also use +autotest+ from the ZenTest gem to run tests.
|
41
|
-
|
42
|
-
See also Mechanize::TestCase to read about the built-in testing
|
43
|
-
infrastructure.
|
44
|
-
|
45
|
-
== Authors
|
46
|
-
|
47
|
-
Copyright (c) 2005 by Michael Neumann (mneumann@ntecs.de)
|
48
|
-
|
49
|
-
Copyright (c) 2006-2011:
|
50
|
-
|
51
|
-
* {Aaron Patterson}[http://tenderlovemaking.com] (aaron.patterson@gmail.com)
|
52
|
-
* {Mike Dalessio}[http://mike.daless.io] (mike@csa.net)
|
53
|
-
|
54
|
-
Copyright (c) 2011-2015:
|
55
|
-
|
56
|
-
* {Eric Hodel}[http://blog.segment7.net] (drbrain@segment7.net)
|
57
|
-
* {Akinori MUSHA}[http://blog.akinori.org] (knu@idaemons.org)
|
58
|
-
* {Lee Jarvis}[http://twitter.com/lee_jarvis] (ljjarvis@gmail.com)
|
59
|
-
|
60
|
-
This library comes with a shameless plug for employing me
|
61
|
-
(Aaron[http://tenderlovemaking.com/]) programming Ruby, my favorite language!
|
62
|
-
|
63
|
-
== Acknowledgments
|
64
|
-
|
65
|
-
This library was heavily influenced by its namesake in the Perl world. A big
|
66
|
-
thanks goes to {Andy Lester}[http://petdance.com],
|
67
|
-
the author of the original Perl module WWW::Mechanize which is available
|
68
|
-
here[http://search.cpan.org/dist/WWW-Mechanize/]. Ruby Mechanize would not be around without you!
|
69
|
-
|
70
|
-
Thank you to Michael Neumann for starting the Ruby version. Thanks to everyone
|
71
|
-
who's helped out in various ways. Finally, thank you to the people using this
|
72
|
-
library!
|
73
|
-
|
74
|
-
== License
|
75
|
-
|
76
|
-
This library is distributed under the MIT license. Please see the LICENSE[http://docs.seattlerb.org/mechanize/LICENSE_rdoc.html] file.
|
77
|
-
|