mechanize 2.7.7 → 2.8.3
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.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +11 -0
- data/.github/workflows/ci-test.yml +36 -8
- data/.yardopts +8 -0
- data/{CHANGELOG.rdoc → CHANGELOG.md} +117 -88
- data/Gemfile +1 -6
- data/{LICENSE.rdoc → LICENSE.txt} +4 -0
- data/README.md +77 -0
- data/Rakefile +18 -3
- 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/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/form.rb +1 -9
- data/lib/mechanize/headers.rb +1 -0
- data/lib/mechanize/history.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/http.rb +1 -0
- data/lib/mechanize/image.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/page.rb +4 -3
- 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/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/test_case.rb +32 -27
- 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/lib/mechanize.rb +2 -1
- data/mechanize.gemspec +48 -34
- 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
- data/test/test_mechanize_page_encoding.rb +28 -1
- metadata +145 -56
- data/README.rdoc +0 -77
|
@@ -1,6 +1,46 @@
|
|
|
1
|
-
|
|
1
|
+
# Mechanize CHANGELOG
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## 2.8.3 / 2021-11-11
|
|
4
|
+
|
|
5
|
+
### Update
|
|
6
|
+
|
|
7
|
+
* Update the "Linux Firefox" user agent string to rev94 (#587) Thank you, @ncs1!
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 2.8.2 / 2021-08-06
|
|
11
|
+
|
|
12
|
+
### Dependencies
|
|
13
|
+
|
|
14
|
+
* Update dependency on Addressable from `~>2.7` to `~>2.8`. (#584) @yidingww
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## 2.8.1 / 2021-05-09
|
|
18
|
+
|
|
19
|
+
### Fix
|
|
20
|
+
|
|
21
|
+
* Gracefully handle parsing errors that contain an invalid byte sequence. Previously, if libxml2 registered a parsing error that itself contained invalid encoding, an exception might be raised. (#553)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
## 2.8.0 / 2021-04-01
|
|
25
|
+
|
|
26
|
+
### Requirements
|
|
27
|
+
|
|
28
|
+
* Mechanize now requires Ruby 2.5 or newer.
|
|
29
|
+
* Move from `ntlm-http` to `rubyntlm` gem. (#495, #574)
|
|
30
|
+
|
|
31
|
+
### New Features
|
|
32
|
+
|
|
33
|
+
* Page::Link#uri now handles non-ASCII `href`s. (#569) @terryyin
|
|
34
|
+
* FileConnection supports Windows drive letters (#483)
|
|
35
|
+
* Credential headers 'Authorization' and 'Cookie' are deleted on cross-origin redirects. (#538) @kyoshidajp
|
|
36
|
+
* ContentDispositionParser handles ISO8601 date headers, to be robust with websites that ignore RFC2183. (#554) @reitermarkus
|
|
37
|
+
|
|
38
|
+
### Bug fix
|
|
39
|
+
|
|
40
|
+
* POST headers 'Content-Length', 'Content-MD5', and 'Content-Type' are deleted in a case-insensitive manner on redirects. Previously these headers were treated as case-sensitive.
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## 2.7.7 / 2021-02-01
|
|
4
44
|
|
|
5
45
|
* Security fixes for CVE-2021-21289
|
|
6
46
|
|
|
@@ -27,7 +67,7 @@
|
|
|
27
67
|
* Ignore input fields with blank names (#542, #536)
|
|
28
68
|
|
|
29
69
|
|
|
30
|
-
|
|
70
|
+
## 2.7.6
|
|
31
71
|
|
|
32
72
|
* New Features
|
|
33
73
|
* Mechanize#set_proxy accepts an HTTP URL/URI. (#513)
|
|
@@ -39,7 +79,7 @@
|
|
|
39
79
|
* Mechanize::Page#title no longer picks a title in an embeded SVG/RDF element. (#503)
|
|
40
80
|
* Make Mechanize::Form#has_field? boolean. (#501)
|
|
41
81
|
|
|
42
|
-
|
|
82
|
+
## 2.7.5
|
|
43
83
|
|
|
44
84
|
* New Features
|
|
45
85
|
* All 4xx responses and RedirectLimitReachedError when fetching robots.txt are treated as full allow just like Googlebot does.
|
|
@@ -50,7 +90,7 @@
|
|
|
50
90
|
* Fix basic authentication for a realm that contains uppercase characters. (#458, #459)
|
|
51
91
|
* Fix encoding error when uploading a file which name is non-ASCII. (#333)
|
|
52
92
|
|
|
53
|
-
|
|
93
|
+
## 2.7.4
|
|
54
94
|
|
|
55
95
|
* New Features
|
|
56
96
|
* Accept array-like and hash-like values as query/parameter value.
|
|
@@ -72,7 +112,7 @@
|
|
|
72
112
|
* Fix whitespace bug in WWW-Authenticate. #451, #450, by Rasmus Bergholdt
|
|
73
113
|
* Don't allow redirect from a non-file URL to a file URL for security reasons. (#455)
|
|
74
114
|
|
|
75
|
-
|
|
115
|
+
## 2.7.3
|
|
76
116
|
|
|
77
117
|
* New Features
|
|
78
118
|
* Allow net-http-persistent instance to be named. #324, John Weir.
|
|
@@ -83,34 +123,33 @@
|
|
|
83
123
|
* Ensure Download#save! defaults back to original filename if
|
|
84
124
|
none is provided (#300)
|
|
85
125
|
|
|
86
|
-
|
|
126
|
+
## 2.7.2
|
|
87
127
|
|
|
88
128
|
* Bug fix
|
|
89
129
|
* API compatibility issues with Mechanize::CookieJar cookies has been
|
|
90
130
|
addressed. https://github.com/sparklemotion/http-cookie/issues/2 #326
|
|
91
131
|
|
|
92
|
-
|
|
132
|
+
## 2.7.1
|
|
93
133
|
|
|
94
134
|
* Bug fix
|
|
95
135
|
* Ensure images with no "src" attribute still return correct URLs. #317
|
|
96
136
|
* Fixes Mechanize::Parser#extract_filename where an empty string filename
|
|
97
137
|
in the response caused unhandled exception. #318
|
|
98
138
|
|
|
99
|
-
|
|
139
|
+
## 2.7.0
|
|
100
140
|
|
|
101
141
|
* New Features
|
|
102
142
|
* Mechanize::Agent#response_read will now raise a
|
|
103
143
|
Mechanize::ResponseReadError instead of an EOFError and avoid losing
|
|
104
144
|
requested content. #296.
|
|
105
|
-
* Depend on http-cookie, add backwards compatible deprecations.
|
|
106
|
-
#257 Akinori MUSHA.
|
|
145
|
+
* Depend on http-cookie, add backwards compatible deprecations. #257 Akinori MUSHA.
|
|
107
146
|
* Added `Download#save!` for overwriting existing files. #300 Sean Kim.
|
|
108
147
|
|
|
109
148
|
* Bug fix
|
|
110
149
|
* Ensure page URLs with whitespace in them are escaped #313 @pacop.
|
|
111
150
|
* Added a workaround for a bug of URI#+ that led to failure in resolving a relative path containing double slash like "/../http://.../". #304
|
|
112
151
|
|
|
113
|
-
|
|
152
|
+
## 2.6.0
|
|
114
153
|
|
|
115
154
|
* New Features
|
|
116
155
|
* Mechanize#start and Mechanize#shutdown (Thanks, Damian Janowski!)
|
|
@@ -132,19 +171,16 @@
|
|
|
132
171
|
* Added iPad and Android user agents. #277 by sambit, #278 by seansay.
|
|
133
172
|
|
|
134
173
|
* Bug fix
|
|
135
|
-
* Mechanize#cert and Mechanize#key now return the values set by
|
|
136
|
-
|
|
137
|
-
* Mechanize no longer submits disabled form fields. #276 by Bogdan Gusiev,
|
|
138
|
-
#279 by Ricardo Valeriano.
|
|
174
|
+
* Mechanize#cert and Mechanize#key now return the values set by #cert= and #key=. #244, #245 (Thanks, Robert Gogolok!)
|
|
175
|
+
* Mechanize no longer submits disabled form fields. #276 by Bogdan Gusiev, #279 by Ricardo Valeriano.
|
|
139
176
|
* Mechanize::File#save now behaves like Mechanize::Download#save in
|
|
140
|
-
that it will create the parent directory before saving.
|
|
141
|
-
#272, #280 by Ryan Kowalick
|
|
177
|
+
that it will create the parent directory before saving. #272, #280 by Ryan Kowalick
|
|
142
178
|
* Ensure `application/xml` is registered as an XML parser in
|
|
143
179
|
`PluggableParser`, not just `text/xml`. #266 James Gregory
|
|
144
180
|
* Mechanize now writes cookiestxt with a prefixed dot for wildcard domain
|
|
145
181
|
handling. #295 by Mike Morearty.
|
|
146
182
|
|
|
147
|
-
|
|
183
|
+
## 2.5.2
|
|
148
184
|
|
|
149
185
|
* New Features
|
|
150
186
|
* Mechanize::CookieJar#save_as takes a keyword option "session" to say
|
|
@@ -158,18 +194,17 @@
|
|
|
158
194
|
In mechanize 3 the old "Mac FireFox" user-agent alias will be removed.
|
|
159
195
|
Pull request #231 by Gavin Miller.
|
|
160
196
|
* Mechanize now authenticates using the raw challenge, not a reconstructed
|
|
161
|
-
one, to avoid dealing with quoting rules of RFC 2617. Fixes failures in
|
|
162
|
-
#231 due to net-http-digest_auth 1.2.1
|
|
197
|
+
one, to avoid dealing with quoting rules of RFC 2617. Fixes failures in #231 due to net-http-digest_auth 1.2.1
|
|
163
198
|
* Fixed Content-Disposition parameter parser to be case insensitive. #233
|
|
164
199
|
* Fixed redirection counting in following meta refresh. #240
|
|
165
200
|
|
|
166
|
-
|
|
201
|
+
## 2.5.1
|
|
167
202
|
|
|
168
203
|
* Bug fix
|
|
169
204
|
* Mechanize no longer copies POST requests during a redirect which was
|
|
170
205
|
introduced by #215. Pull request #229 by Godfrey Chan.
|
|
171
206
|
|
|
172
|
-
|
|
207
|
+
## 2.5
|
|
173
208
|
|
|
174
209
|
* Minor enhancements
|
|
175
210
|
* Added Mechanize#ignore_bad_chunking for working around servers that don't
|
|
@@ -190,12 +225,11 @@
|
|
|
190
225
|
terminate chunked transfer-encoding properly. Issue #116
|
|
191
226
|
* Mechanize no longer raises an exception when multiple identical
|
|
192
227
|
radiobuttons are checked. Issue #214 by Matthias Guenther
|
|
193
|
-
* Fixed documentation for pre_connect_hooks and post_connect_hooks. Issue
|
|
194
|
-
#226 by Robert Poor
|
|
228
|
+
* Fixed documentation for pre_connect_hooks and post_connect_hooks. Issue #226 by Robert Poor
|
|
195
229
|
* Worked around ruby 1.8 run with -Ku and ISO-8859-1 encoded characters in
|
|
196
230
|
URIs. Issue #228 by Stanislav O.Pogrebnyak
|
|
197
231
|
|
|
198
|
-
|
|
232
|
+
## 2.4
|
|
199
233
|
|
|
200
234
|
* Security fix:
|
|
201
235
|
|
|
@@ -218,7 +252,7 @@
|
|
|
218
252
|
* Improved exception messages for 401 Unauthorized responses. Mechanize now
|
|
219
253
|
tells you if you were missing credentials, had an incorrect password, etc.
|
|
220
254
|
|
|
221
|
-
|
|
255
|
+
## 2.3 / 2012-02-20
|
|
222
256
|
|
|
223
257
|
* Minor enhancements
|
|
224
258
|
* Add support for the Max-Age attribute in the Set-Cookie header.
|
|
@@ -238,14 +272,14 @@
|
|
|
238
272
|
* Cookies with an empty Expires attribute value were stored as session
|
|
239
273
|
cookies but cookies without the Expires attribute were not. Issue #78
|
|
240
274
|
|
|
241
|
-
|
|
275
|
+
## 2.2.1 / 2012-02-13
|
|
242
276
|
|
|
243
277
|
* Bug fixes
|
|
244
278
|
* Add missing file to the gem, ensure that missing files won't cause
|
|
245
279
|
failures again. Issue #201 by Alex
|
|
246
280
|
* Fix minor grammar issue in README. Issue #200 by Shane Becker.
|
|
247
281
|
|
|
248
|
-
|
|
282
|
+
## 2.2 / 2012-02-12
|
|
249
283
|
|
|
250
284
|
* API changes
|
|
251
285
|
* MetaRefresh#href is not normalized to an absolute URL, but set to the
|
|
@@ -257,8 +291,7 @@
|
|
|
257
291
|
* SSL parameters and proxy may now be set at any time. Issue #194 by
|
|
258
292
|
dsisnero.
|
|
259
293
|
* Improved Mechanize::Page with #image_with and #images_with and
|
|
260
|
-
Mechanize::Page::Image various img element attribute accessors, #caption,
|
|
261
|
-
#extname, #mime_type and #fetch. Pull request #173 by kitamomonga
|
|
294
|
+
Mechanize::Page::Image various img element attribute accessors, #caption, #extname, #mime_type and #fetch. Pull request #173 by kitamomonga
|
|
262
295
|
* Added MIME type parsing for content-types in Mechanize::PluggableParser
|
|
263
296
|
for fine-grained parser choices. Parsers will be chosen based on exact
|
|
264
297
|
match, simplified type or media type in that order. See
|
|
@@ -280,7 +313,7 @@
|
|
|
280
313
|
* A link with an empty href is now resolved correctly where previously the
|
|
281
314
|
query part was dropped.
|
|
282
315
|
|
|
283
|
-
|
|
316
|
+
## 2.1.1 / 2012-02-03
|
|
284
317
|
|
|
285
318
|
* Bug fixes
|
|
286
319
|
* Set missing idle_timeout default. Issue #196
|
|
@@ -308,7 +341,7 @@
|
|
|
308
341
|
* Documented how to convert a Mechanize::ResponseReadError into a File or
|
|
309
342
|
Page, along with a new method #force_parse. Issue #176
|
|
310
343
|
|
|
311
|
-
|
|
344
|
+
## 2.1 / 2011-12-20
|
|
312
345
|
|
|
313
346
|
* Deprecations
|
|
314
347
|
* Mechanize#get no longer accepts an options hash.
|
|
@@ -321,8 +354,7 @@
|
|
|
321
354
|
* SSL connections will be verified against the system certificate store by
|
|
322
355
|
default.
|
|
323
356
|
* Added Mechanize#retry_change_requests to allow mechanize to retry POST and
|
|
324
|
-
other non-idempotent requests when you know it is safe to do so. Issue
|
|
325
|
-
#123
|
|
357
|
+
other non-idempotent requests when you know it is safe to do so. Issue #123
|
|
326
358
|
* Mechanize can now stream files directly to disk without loading them into
|
|
327
359
|
memory first through Mechanize::Download, a pluggable parser for
|
|
328
360
|
downloading files.
|
|
@@ -337,8 +369,7 @@
|
|
|
337
369
|
agent.pluggable_parser.default = Mechanize::Download
|
|
338
370
|
* Added Mechanize#content_encoding_hooks which allow handling of
|
|
339
371
|
non-standard content encodings like "agzip". Patch #125 by kitamomonga
|
|
340
|
-
* Added dom_class to elements and the element matcher like dom_id. Patch
|
|
341
|
-
#156 by Dan Hansen.
|
|
372
|
+
* Added dom_class to elements and the element matcher like dom_id. Patch #156 by Dan Hansen.
|
|
342
373
|
* Added support for the HTML5 keygen form element. See
|
|
343
374
|
http://dev.w3.org/html5/spec/Overview.html#the-keygen-element Patch #157
|
|
344
375
|
by Victor Costan.
|
|
@@ -387,11 +418,10 @@
|
|
|
387
418
|
* The original Referer value persists on redirection. Issue #150
|
|
388
419
|
* Do not send a referer on a Refresh header based redirection.
|
|
389
420
|
* Fixed encoding error in tests when LANG=C. Patch #142 by jinschoi.
|
|
390
|
-
* The order of items in a form submission now match the DOM order. Patch
|
|
391
|
-
#129 by kitamomonga
|
|
421
|
+
* The order of items in a form submission now match the DOM order. Patch #129 by kitamomonga
|
|
392
422
|
* Fixed proxy example in EXAMPLE. Issue #146 by NielsKSchjoedt
|
|
393
423
|
|
|
394
|
-
|
|
424
|
+
## 2.0.1 / 2011-06-28
|
|
395
425
|
|
|
396
426
|
Mechanize now uses minitest to avoid 1.9 vs 1.8 assertion availability in
|
|
397
427
|
test/unit
|
|
@@ -402,7 +432,7 @@ test/unit
|
|
|
402
432
|
* Mechanize#keep_alive_time no longer crashes but does nothing as
|
|
403
433
|
net-http-persistent does not support HTTP/1.0 keep-alive extensions.
|
|
404
434
|
|
|
405
|
-
|
|
435
|
+
## 2.0 / 2011-06-27
|
|
406
436
|
|
|
407
437
|
Mechanize is now under the MIT license
|
|
408
438
|
|
|
@@ -456,8 +486,7 @@ Mechanize is now under the MIT license
|
|
|
456
486
|
* Mechanize now implements session cookies. GH #78
|
|
457
487
|
* Mechanize now implements deflate decoding. GH #40
|
|
458
488
|
* Mechanize now allows a certificate and key to be passed directly. GH #71
|
|
459
|
-
* Mechanize::Form::MultiSelectList now implements #option_with and
|
|
460
|
-
#options_with. GH #42
|
|
489
|
+
* Mechanize::Form::MultiSelectList now implements #option_with and #options_with. GH #42
|
|
461
490
|
* Add Mechanize::Page::Link#rel and #rel?(kind) to read and test the rel
|
|
462
491
|
attribute.
|
|
463
492
|
* Add Mechanize::Page#canonical_uri to read a </tt><link
|
|
@@ -510,7 +539,7 @@ Mechanize is now under the MIT license
|
|
|
510
539
|
* Mechanize::Page::Link#uri now handles both escaped and unescaped hrefs.
|
|
511
540
|
GH #107
|
|
512
541
|
|
|
513
|
-
|
|
542
|
+
## 1.0.0
|
|
514
543
|
|
|
515
544
|
* New Features:
|
|
516
545
|
|
|
@@ -528,7 +557,7 @@ Mechanize is now under the MIT license
|
|
|
528
557
|
* Fixing default values with serialized cookies. GH #3
|
|
529
558
|
* Checkboxes and fields are sorted by page appearance before submitting. #11
|
|
530
559
|
|
|
531
|
-
|
|
560
|
+
## 0.9.3
|
|
532
561
|
|
|
533
562
|
* Bug Fixes:
|
|
534
563
|
|
|
@@ -546,7 +575,7 @@ Mechanize is now under the MIT license
|
|
|
546
575
|
* Fixed a bug with double semi-colons in Content-Disposition headers
|
|
547
576
|
* Properly handling cookies that specify a path. RF #25259
|
|
548
577
|
|
|
549
|
-
|
|
578
|
+
## 0.9.2 / 2009/03/05
|
|
550
579
|
|
|
551
580
|
* New Features:
|
|
552
581
|
* Mechanize#submit and Form#submit take arbitrary headers(thanks penguincoder)
|
|
@@ -559,7 +588,7 @@ Mechanize is now under the MIT license
|
|
|
559
588
|
* Made Content-Type match case insensitive (Thanks Kelly Reynolds)
|
|
560
589
|
* Non-string form parameters work
|
|
561
590
|
|
|
562
|
-
|
|
591
|
+
## 0.9.1 2009/02/23
|
|
563
592
|
|
|
564
593
|
* New Features:
|
|
565
594
|
* Encoding may be specified for a page: Page#encoding=
|
|
@@ -575,7 +604,7 @@ Mechanize is now under the MIT license
|
|
|
575
604
|
* WAP content types will now be parsed
|
|
576
605
|
* Rescued poorly formatted cookies. Thanks Kelley Reynolds!
|
|
577
606
|
|
|
578
|
-
|
|
607
|
+
## 0.9.0
|
|
579
608
|
|
|
580
609
|
* Deprecations
|
|
581
610
|
* WWW::Mechanize::List is gone!
|
|
@@ -585,7 +614,7 @@ Mechanize is now under the MIT license
|
|
|
585
614
|
* Bug Fixes:
|
|
586
615
|
* Nil check on page when base tag is used #23021
|
|
587
616
|
|
|
588
|
-
|
|
617
|
+
## 0.8.5
|
|
589
618
|
|
|
590
619
|
* Deprecations
|
|
591
620
|
* WWW::Mechanize::List will be deprecated in 0.9.0, and warnings have
|
|
@@ -609,28 +638,28 @@ Mechanize is now under the MIT license
|
|
|
609
638
|
* Mechanize#get requests no longer send a referer unless they are relative
|
|
610
639
|
requests.
|
|
611
640
|
|
|
612
|
-
|
|
641
|
+
## 0.8.4
|
|
613
642
|
|
|
614
643
|
* Bug Fixes:
|
|
615
644
|
* Setting the port number on the host header.
|
|
616
645
|
* Fixing Authorization headers for picky servers
|
|
617
646
|
|
|
618
|
-
|
|
647
|
+
## 0.8.3
|
|
619
648
|
|
|
620
649
|
* Bug Fixes:
|
|
621
650
|
* Making sure logger is set during SSL connections.
|
|
622
651
|
|
|
623
|
-
|
|
652
|
+
## 0.8.2
|
|
624
653
|
|
|
625
654
|
* Bug Fixes:
|
|
626
655
|
* Doh! I was accidentally setting headers twice.
|
|
627
656
|
|
|
628
|
-
|
|
657
|
+
## 0.8.1
|
|
629
658
|
|
|
630
659
|
* Bug Fixes:
|
|
631
660
|
* Fixed problem with nil pointer when logger is set
|
|
632
661
|
|
|
633
|
-
|
|
662
|
+
## 0.8.0
|
|
634
663
|
|
|
635
664
|
* New Features:
|
|
636
665
|
* Lifecycle hooks. Mechanize#pre_connect_hooks, Mechanize#post_connect_hooks
|
|
@@ -644,7 +673,7 @@ Mechanize is now under the MIT license
|
|
|
644
673
|
* Only setting headers once
|
|
645
674
|
* Adding IIS authentication support
|
|
646
675
|
|
|
647
|
-
|
|
676
|
+
## 0.7.8
|
|
648
677
|
|
|
649
678
|
* Bug Fixes:
|
|
650
679
|
* Fixed bug when receiving a 304 response (HTTPNotModified) on a page not
|
|
@@ -652,7 +681,7 @@ Mechanize is now under the MIT license
|
|
|
652
681
|
* #21428 Default to HTML parser for 'application/xhtml+xml' content-type.
|
|
653
682
|
* Fixed an issue where redirects were resending posted data
|
|
654
683
|
|
|
655
|
-
|
|
684
|
+
## 0.7.7
|
|
656
685
|
|
|
657
686
|
* New Features:
|
|
658
687
|
* Page#form_with takes a +criteria+ hash.
|
|
@@ -673,7 +702,7 @@ Mechanize is now under the MIT license
|
|
|
673
702
|
* #21233 Smarter multipart boundry. Thanks Todd Willey!
|
|
674
703
|
* #20097 Supporting meta tag cookies.
|
|
675
704
|
|
|
676
|
-
|
|
705
|
+
## 0.7.6
|
|
677
706
|
|
|
678
707
|
* New Features:
|
|
679
708
|
* Added support for reading Mozilla cookie jars. Thanks Chris Riddoch!
|
|
@@ -696,32 +725,32 @@ Mechanize is now under the MIT license
|
|
|
696
725
|
* Supporting blank strings for option values.
|
|
697
726
|
http://rubyforge.org/tracker/index.php?func=detail&aid=19975&group_id=1453&atid=5709
|
|
698
727
|
|
|
699
|
-
|
|
728
|
+
## 0.7.5
|
|
700
729
|
|
|
701
730
|
* Fixed a bug when fetching files and not pages. Thanks Mat Schaffer!
|
|
702
731
|
|
|
703
|
-
|
|
732
|
+
## 0.7.4
|
|
704
733
|
|
|
705
734
|
* doh!
|
|
706
735
|
|
|
707
|
-
|
|
736
|
+
## 0.7.3
|
|
708
737
|
|
|
709
738
|
* Pages are now yielded to a blocks given to WWW::Mechanize#get
|
|
710
739
|
* WWW::Mechanize#get now takes hash arguments for uri parameters.
|
|
711
740
|
* WWW::Mechanize#post takes an IO object as a parameter and posts correctly.
|
|
712
741
|
* Fixing a strange zlib inflate problem on windows
|
|
713
742
|
|
|
714
|
-
|
|
743
|
+
## 0.7.2
|
|
715
744
|
|
|
716
745
|
* Handling gzipped responses with no Content-Length header
|
|
717
746
|
|
|
718
|
-
|
|
747
|
+
## 0.7.1
|
|
719
748
|
|
|
720
749
|
* Added iPhone to the user agent aliases. [#17572]
|
|
721
750
|
* Fixed a bug with EOF errors in net/http. [#17570]
|
|
722
751
|
* Handling 0 length gzipped responses. [#17471]
|
|
723
752
|
|
|
724
|
-
|
|
753
|
+
## 0.7.0
|
|
725
754
|
|
|
726
755
|
* Removed Ruby 1.8.2 support
|
|
727
756
|
* Changed parser to lazily parse links
|
|
@@ -729,7 +758,7 @@ Mechanize is now under the MIT license
|
|
|
729
758
|
* Adding verify_callback for SSL requests. Thanks Mike Dalessio!
|
|
730
759
|
* Fixed a bug with Accept-Language header. Thanks Bill Siggelkow.
|
|
731
760
|
|
|
732
|
-
|
|
761
|
+
## 0.6.11
|
|
733
762
|
|
|
734
763
|
* Detecting single quotes in meta redirects.
|
|
735
764
|
* Adding pretty inspect for ruby versions > 1.8.4 (Thanks Joel Kociolek)
|
|
@@ -740,7 +769,7 @@ Mechanize is now under the MIT license
|
|
|
740
769
|
* Added a FAQ
|
|
741
770
|
http://rubyforge.org/tracker/?func=detail&aid=15772&group_id=1453&atid=5709
|
|
742
771
|
|
|
743
|
-
|
|
772
|
+
## 0.6.10
|
|
744
773
|
|
|
745
774
|
* Made digest authentication work with POSTs.
|
|
746
775
|
* Made sure page was HTML before following meta refreshes.
|
|
@@ -759,7 +788,7 @@ Mechanize is now under the MIT license
|
|
|
759
788
|
* Aliasing inspect to pretty_inspect. Thanks Eric Promislow.
|
|
760
789
|
http://rubyforge.org/pipermail/mechanize-users/2007-July/000157.html
|
|
761
790
|
|
|
762
|
-
|
|
791
|
+
## 0.6.9
|
|
763
792
|
|
|
764
793
|
* Updating UTF-8 support for urls
|
|
765
794
|
* Adding AREA tags to the links list.
|
|
@@ -771,7 +800,7 @@ Mechanize is now under the MIT license
|
|
|
771
800
|
* Added Digest Authentication support. Thanks to Ryan Davis and Eric Hodel,
|
|
772
801
|
you get a gold star!
|
|
773
802
|
|
|
774
|
-
|
|
803
|
+
## 0.6.8
|
|
775
804
|
|
|
776
805
|
* Keep alive can be shut off now with WWW::Mechanize#keep_alive
|
|
777
806
|
* Conditional requests can be shut off with WWW::Mechanize#conditional_requests
|
|
@@ -782,12 +811,12 @@ Mechanize is now under the MIT license
|
|
|
782
811
|
* Updating compatability with hpricot
|
|
783
812
|
* Added more unit tests
|
|
784
813
|
|
|
785
|
-
|
|
814
|
+
## 0.6.7
|
|
786
815
|
|
|
787
816
|
* Fixed a bug with keep-alive requests
|
|
788
817
|
* [#9549] fixed problem with cookie paths
|
|
789
818
|
|
|
790
|
-
|
|
819
|
+
## 0.6.6
|
|
791
820
|
|
|
792
821
|
* Removing hpricot overrides
|
|
793
822
|
* Fixed a bug where alt text can be nil. Thanks Yannick!
|
|
@@ -797,7 +826,7 @@ Mechanize is now under the MIT license
|
|
|
797
826
|
* [#9434] Fixed bug where html entities weren't decoded
|
|
798
827
|
* [#9150] Updated mechanize history to deal with redirects
|
|
799
828
|
|
|
800
|
-
|
|
829
|
+
## 0.6.5
|
|
801
830
|
|
|
802
831
|
* Copying headers to a hash to prevent memory leaks
|
|
803
832
|
* Speeding up page parsing
|
|
@@ -812,7 +841,7 @@ Mechanize is now under the MIT license
|
|
|
812
841
|
http://rubyforge.org/tracker/?func=detail&aid=7563&group_id=1453&atid=5709
|
|
813
842
|
* Added MSIE 7.0 user agent string
|
|
814
843
|
|
|
815
|
-
|
|
844
|
+
## 0.6.4
|
|
816
845
|
|
|
817
846
|
* Adding the "redirect_ok" method to Mechanize to stop mechanize from
|
|
818
847
|
following redirects.
|
|
@@ -829,7 +858,7 @@ Mechanize is now under the MIT license
|
|
|
829
858
|
* Fixed bug [#6548]. Input type of 'button' was not being added as a button.
|
|
830
859
|
* Fixed bug [#7139]. REXML parser calls hpricot parser by accident
|
|
831
860
|
|
|
832
|
-
|
|
861
|
+
## 0.6.3
|
|
833
862
|
|
|
834
863
|
* Added keys and values methods to Form
|
|
835
864
|
* Added has_value? to Form
|
|
@@ -844,7 +873,7 @@ Mechanize is now under the MIT license
|
|
|
844
873
|
* Fixed a bug where '#' symbols are encoded
|
|
845
874
|
http://rubyforge.org/forum/message.php?msg_id=14747
|
|
846
875
|
|
|
847
|
-
|
|
876
|
+
## 0.6.2
|
|
848
877
|
|
|
849
878
|
* Added a yield to Page#form so that dealing with forms can be more DSL like.
|
|
850
879
|
* Added the parsed page to the ResponseCodeError so that the parsed results
|
|
@@ -852,7 +881,7 @@ Mechanize is now under the MIT license
|
|
|
852
881
|
http://rubyforge.org/pipermail/mechanize-users/2006-September/000007.html
|
|
853
882
|
* Updated documentation (Thanks to Paul Smith)
|
|
854
883
|
|
|
855
|
-
|
|
884
|
+
## 0.6.1
|
|
856
885
|
|
|
857
886
|
* Added a method to Form called "submit". Now forms can be submitted by
|
|
858
887
|
calling a method on the form.
|
|
@@ -870,7 +899,7 @@ Mechanize is now under the MIT license
|
|
|
870
899
|
* Fixed a bug with loading text in to links.
|
|
871
900
|
http://rubyforge.org/pipermail/mechanize-users/2006-September/000000.html
|
|
872
901
|
|
|
873
|
-
|
|
902
|
+
## 0.6.0
|
|
874
903
|
|
|
875
904
|
* Changed main parser to use hpricot
|
|
876
905
|
* Made WWW::Mechanize::Page class searchable like hpricot
|
|
@@ -882,7 +911,7 @@ Mechanize is now under the MIT license
|
|
|
882
911
|
* Removed REXML helper methods since the main parser is now hpricot
|
|
883
912
|
* Overhauled cookie parser to use WEBrick::Cookie
|
|
884
913
|
|
|
885
|
-
|
|
914
|
+
## 0.5.4
|
|
886
915
|
|
|
887
916
|
* Added WWW::Mechanize#trasact for saving history state between in a
|
|
888
917
|
transaction. See the EXAMPLES file. Thanks Johan Kiviniemi.
|
|
@@ -897,7 +926,7 @@ Mechanize is now under the MIT license
|
|
|
897
926
|
* Fixed a bug with saving files on windows
|
|
898
927
|
* Fixed a bug with the filename being set in forms
|
|
899
928
|
|
|
900
|
-
|
|
929
|
+
## 0.5.3
|
|
901
930
|
|
|
902
931
|
* Mechanize#click will now act on the first element of an array. So if an
|
|
903
932
|
array of links is passed to WWW::Mechanize#click, the first link is clicked.
|
|
@@ -915,7 +944,7 @@ Mechanize is now under the MIT license
|
|
|
915
944
|
* Updated log4r support for a speed increase. Thanks Yinon Bentor
|
|
916
945
|
* Added inspect methods and pretty printing
|
|
917
946
|
|
|
918
|
-
|
|
947
|
+
## 0.5.2
|
|
919
948
|
|
|
920
949
|
* Fixed a bug with input names that are nil
|
|
921
950
|
* Added a warning when using attr_finder because attr_finder will be deprecated
|
|
@@ -932,12 +961,12 @@ Mechanize is now under the MIT license
|
|
|
932
961
|
WWW::Mechanize::Form#set_fields. Which can be used like so:
|
|
933
962
|
form.set_fields( :foo => 'bar', :name => 'Aaron' )
|
|
934
963
|
|
|
935
|
-
|
|
964
|
+
## 0.5.1
|
|
936
965
|
|
|
937
966
|
* Fixed bug with file uploads
|
|
938
967
|
* Added performance tweaks to the cookie class
|
|
939
968
|
|
|
940
|
-
|
|
969
|
+
## 0.5.0
|
|
941
970
|
|
|
942
971
|
* Added pluggable parsers. (Thanks to Eric Kolve for the idea)
|
|
943
972
|
* Changed namespace so all classes are under WWW::Mechanize.
|
|
@@ -952,7 +981,7 @@ Mechanize is now under the MIT license
|
|
|
952
981
|
* Removed support for body filters in favor of pluggable parsers.
|
|
953
982
|
* Fixed cookie bug adding a '/' when the url is missing one (Thanks Nick Dainty)
|
|
954
983
|
|
|
955
|
-
|
|
984
|
+
## 0.4.7
|
|
956
985
|
|
|
957
986
|
* Fixed bug with no action in forms. Thanks to Adam Wiggins
|
|
958
987
|
* Setting a default user-agent string
|
|
@@ -961,7 +990,7 @@ Mechanize is now under the MIT license
|
|
|
961
990
|
(thanks to Gregory Brown)
|
|
962
991
|
* Added WWW::Mechanize#get_file for fetching non text/html files
|
|
963
992
|
|
|
964
|
-
|
|
993
|
+
## 0.4.6
|
|
965
994
|
|
|
966
995
|
* Added support for proxies
|
|
967
996
|
* Added a uri field to WWW::Link
|
|
@@ -972,7 +1001,7 @@ Mechanize is now under the MIT license
|
|
|
972
1001
|
allows syntax as such: form.fields.name('q').value = 'xyz'
|
|
973
1002
|
Before it was like this: form.fields.name('q').first.value = 'xyz'
|
|
974
1003
|
|
|
975
|
-
|
|
1004
|
+
## 0.4.5
|
|
976
1005
|
|
|
977
1006
|
* Added support for multiple values of the same name
|
|
978
1007
|
* Updated build_query_string to take an array of arrays (Thanks Michal Janeczek)
|
|
@@ -982,13 +1011,13 @@ Mechanize is now under the MIT license
|
|
|
982
1011
|
* Fixed a bug with empty select lists
|
|
983
1012
|
* Fixing a problem with cookies not handling no spaces after semicolons
|
|
984
1013
|
|
|
985
|
-
|
|
1014
|
+
## 0.4.4
|
|
986
1015
|
|
|
987
1016
|
* Fixed error in method signature, basic_authetication is now basic_auth
|
|
988
1017
|
* Fixed bug with encoding names in file uploads (Big thanks to Alex Young)
|
|
989
1018
|
* Added options to the select list
|
|
990
1019
|
|
|
991
|
-
|
|
1020
|
+
## 0.4.3
|
|
992
1021
|
|
|
993
1022
|
* Added syntactic sugar for finding things
|
|
994
1023
|
* Fixed bug with HttpOnly option in cookies
|
|
@@ -996,21 +1025,21 @@ Mechanize is now under the MIT license
|
|
|
996
1025
|
* Defaulted dropdown lists to the first element
|
|
997
1026
|
* Added unit tests
|
|
998
1027
|
|
|
999
|
-
|
|
1028
|
+
## 0.4.2
|
|
1000
1029
|
|
|
1001
1030
|
* Added support for iframes
|
|
1002
1031
|
* Made mechanize dependant on ruby-web rather than narf
|
|
1003
1032
|
* Added unit tests
|
|
1004
1033
|
* Fixed a bunch of warnings
|
|
1005
1034
|
|
|
1006
|
-
|
|
1035
|
+
## 0.4.1
|
|
1007
1036
|
|
|
1008
1037
|
* Added support for file uploading
|
|
1009
1038
|
* Added support for frames (Thanks Gabriel[mailto:leerbag@googlemail.com])
|
|
1010
1039
|
* Added more unit tests
|
|
1011
1040
|
* Fixed some bugs
|
|
1012
1041
|
|
|
1013
|
-
|
|
1042
|
+
## 0.4.0
|
|
1014
1043
|
|
|
1015
1044
|
* Added more unit tests
|
|
1016
1045
|
* Added a cookie jar with better cookie support, included expiration of cookies
|
data/Gemfile
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
(The MIT License)
|
|
2
2
|
|
|
3
|
+
Copyright (c) 2005 by Michael Neumann (mneumann@ntecs.de)
|
|
4
|
+
|
|
5
|
+
Copyright (c) 2006-2021 by Eric Hodel, Akinori MUSHA, Aaron Patterson, Lee Jarvis, Mike Dalessio
|
|
6
|
+
|
|
3
7
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
8
|
a copy of this software and associated documentation files (the
|
|
5
9
|
'Software'), to deal in the Software without restriction, including
|