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.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +11 -0
  3. data/.github/workflows/ci-test.yml +36 -8
  4. data/.yardopts +8 -0
  5. data/{CHANGELOG.rdoc → CHANGELOG.md} +117 -88
  6. data/Gemfile +1 -6
  7. data/{LICENSE.rdoc → LICENSE.txt} +4 -0
  8. data/README.md +77 -0
  9. data/Rakefile +18 -3
  10. data/lib/mechanize/chunked_termination_error.rb +1 -0
  11. data/lib/mechanize/content_type_error.rb +1 -0
  12. data/lib/mechanize/cookie.rb +1 -13
  13. data/lib/mechanize/cookie_jar.rb +2 -10
  14. data/lib/mechanize/directory_saver.rb +1 -0
  15. data/lib/mechanize/download.rb +1 -0
  16. data/lib/mechanize/element_matcher.rb +1 -0
  17. data/lib/mechanize/element_not_found_error.rb +1 -0
  18. data/lib/mechanize/file.rb +1 -0
  19. data/lib/mechanize/file_connection.rb +5 -3
  20. data/lib/mechanize/file_request.rb +1 -0
  21. data/lib/mechanize/file_response.rb +3 -0
  22. data/lib/mechanize/file_saver.rb +1 -0
  23. data/lib/mechanize/form/button.rb +1 -0
  24. data/lib/mechanize/form/check_box.rb +1 -0
  25. data/lib/mechanize/form/field.rb +1 -0
  26. data/lib/mechanize/form/file_upload.rb +1 -0
  27. data/lib/mechanize/form/hidden.rb +1 -0
  28. data/lib/mechanize/form/image_button.rb +1 -0
  29. data/lib/mechanize/form/keygen.rb +1 -0
  30. data/lib/mechanize/form/multi_select_list.rb +1 -0
  31. data/lib/mechanize/form/option.rb +1 -0
  32. data/lib/mechanize/form/radio_button.rb +1 -0
  33. data/lib/mechanize/form/reset.rb +1 -0
  34. data/lib/mechanize/form/select_list.rb +1 -0
  35. data/lib/mechanize/form/submit.rb +1 -0
  36. data/lib/mechanize/form/text.rb +1 -0
  37. data/lib/mechanize/form/textarea.rb +1 -0
  38. data/lib/mechanize/form.rb +1 -9
  39. data/lib/mechanize/headers.rb +1 -0
  40. data/lib/mechanize/history.rb +1 -0
  41. data/lib/mechanize/http/agent.rb +16 -8
  42. data/lib/mechanize/http/auth_challenge.rb +1 -0
  43. data/lib/mechanize/http/auth_realm.rb +1 -0
  44. data/lib/mechanize/http/auth_store.rb +1 -0
  45. data/lib/mechanize/http/content_disposition_parser.rb +14 -2
  46. data/lib/mechanize/http/www_authenticate_parser.rb +3 -3
  47. data/lib/mechanize/http.rb +1 -0
  48. data/lib/mechanize/image.rb +1 -0
  49. data/lib/mechanize/page/base.rb +1 -0
  50. data/lib/mechanize/page/frame.rb +1 -0
  51. data/lib/mechanize/page/image.rb +1 -0
  52. data/lib/mechanize/page/label.rb +1 -0
  53. data/lib/mechanize/page/link.rb +8 -1
  54. data/lib/mechanize/page/meta_refresh.rb +1 -0
  55. data/lib/mechanize/page.rb +4 -3
  56. data/lib/mechanize/parser.rb +1 -0
  57. data/lib/mechanize/pluggable_parsers.rb +1 -0
  58. data/lib/mechanize/prependable.rb +1 -0
  59. data/lib/mechanize/redirect_limit_reached_error.rb +1 -0
  60. data/lib/mechanize/redirect_not_get_or_head_error.rb +1 -0
  61. data/lib/mechanize/response_code_error.rb +2 -1
  62. data/lib/mechanize/response_read_error.rb +1 -0
  63. data/lib/mechanize/robots_disallowed_error.rb +1 -0
  64. data/lib/mechanize/test_case/bad_chunking_servlet.rb +1 -0
  65. data/lib/mechanize/test_case/basic_auth_servlet.rb +1 -0
  66. data/lib/mechanize/test_case/content_type_servlet.rb +1 -0
  67. data/lib/mechanize/test_case/digest_auth_servlet.rb +1 -0
  68. data/lib/mechanize/test_case/file_upload_servlet.rb +1 -0
  69. data/lib/mechanize/test_case/form_servlet.rb +1 -0
  70. data/lib/mechanize/test_case/gzip_servlet.rb +1 -0
  71. data/lib/mechanize/test_case/header_servlet.rb +1 -0
  72. data/lib/mechanize/test_case/http_refresh_servlet.rb +1 -0
  73. data/lib/mechanize/test_case/infinite_redirect_servlet.rb +1 -0
  74. data/lib/mechanize/test_case/infinite_refresh_servlet.rb +1 -0
  75. data/lib/mechanize/test_case/many_cookies_as_string_servlet.rb +1 -0
  76. data/lib/mechanize/test_case/many_cookies_servlet.rb +1 -0
  77. data/lib/mechanize/test_case/modified_since_servlet.rb +1 -0
  78. data/lib/mechanize/test_case/ntlm_servlet.rb +1 -0
  79. data/lib/mechanize/test_case/one_cookie_no_spaces_servlet.rb +1 -0
  80. data/lib/mechanize/test_case/one_cookie_servlet.rb +1 -0
  81. data/lib/mechanize/test_case/quoted_value_cookie_servlet.rb +1 -0
  82. data/lib/mechanize/test_case/redirect_servlet.rb +1 -0
  83. data/lib/mechanize/test_case/referer_servlet.rb +1 -0
  84. data/lib/mechanize/test_case/refresh_with_empty_url.rb +1 -0
  85. data/lib/mechanize/test_case/refresh_without_url.rb +1 -0
  86. data/lib/mechanize/test_case/response_code_servlet.rb +1 -0
  87. data/lib/mechanize/test_case/robots_txt_servlet.rb +1 -0
  88. data/lib/mechanize/test_case/send_cookies_servlet.rb +1 -0
  89. data/lib/mechanize/test_case/server.rb +1 -0
  90. data/lib/mechanize/test_case/servlets.rb +1 -0
  91. data/lib/mechanize/test_case/verb_servlet.rb +1 -0
  92. data/lib/mechanize/test_case.rb +32 -27
  93. data/lib/mechanize/unauthorized_error.rb +1 -0
  94. data/lib/mechanize/unsupported_scheme_error.rb +1 -0
  95. data/lib/mechanize/util.rb +2 -1
  96. data/lib/mechanize/version.rb +2 -1
  97. data/lib/mechanize/xml_file.rb +1 -0
  98. data/lib/mechanize.rb +2 -1
  99. data/mechanize.gemspec +48 -34
  100. data/test/htdocs/dir with spaces/foo.html +1 -0
  101. data/test/test_mechanize.rb +5 -4
  102. data/test/test_mechanize_cookie_jar.rb +2 -0
  103. data/test/test_mechanize_download.rb +1 -0
  104. data/test/test_mechanize_file.rb +1 -0
  105. data/test/test_mechanize_file_connection.rb +21 -3
  106. data/test/test_mechanize_file_response.rb +6 -0
  107. data/test/test_mechanize_http_agent.rb +47 -7
  108. data/test/test_mechanize_http_content_disposition_parser.rb +27 -0
  109. data/test/test_mechanize_link.rb +24 -0
  110. data/test/test_mechanize_page_encoding.rb +28 -1
  111. metadata +145 -56
  112. data/README.rdoc +0 -77
@@ -1,6 +1,46 @@
1
- = Mechanize CHANGELOG
1
+ # Mechanize CHANGELOG
2
2
 
3
- === 2.7.7 / 2021-02-01
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
- === 2.7.6
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
- === 2.7.5
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
- === 2.7.4
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
- === 2.7.3
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
- === 2.7.2
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
- === 2.7.1
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
- === 2.7.0
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
- === 2.6.0
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
- #cert= and #key=. #244, #245 (Thanks, Robert Gogolok!)
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
- === 2.5.2
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
- === 2.5.1
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
- === 2.5
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
- === 2.4
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
- === 2.3 / 2012-02-20
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
- === 2.2.1 / 2012-02-13
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
- === 2.2 / 2012-02-12
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
- === 2.1.1 / 2012-02-03
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
- === 2.1 / 2011-12-20
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
- === 2.0.1 / 2011-06-28
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
- === 2.0 / 2011-06-27
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
- === 1.0.0
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
- === 0.9.3
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
- === 0.9.2 / 2009/03/05
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
- === 0.9.1 2009/02/23
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
- === 0.9.0
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
- === 0.8.5
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
- === 0.8.4
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
- === 0.8.3
647
+ ## 0.8.3
619
648
 
620
649
  * Bug Fixes:
621
650
  * Making sure logger is set during SSL connections.
622
651
 
623
- === 0.8.2
652
+ ## 0.8.2
624
653
 
625
654
  * Bug Fixes:
626
655
  * Doh! I was accidentally setting headers twice.
627
656
 
628
- === 0.8.1
657
+ ## 0.8.1
629
658
 
630
659
  * Bug Fixes:
631
660
  * Fixed problem with nil pointer when logger is set
632
661
 
633
- === 0.8.0
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
- === 0.7.8
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
- === 0.7.7
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
- === 0.7.6
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
- === 0.7.5
728
+ ## 0.7.5
700
729
 
701
730
  * Fixed a bug when fetching files and not pages. Thanks Mat Schaffer!
702
731
 
703
- === 0.7.4
732
+ ## 0.7.4
704
733
 
705
734
  * doh!
706
735
 
707
- === 0.7.3
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
- === 0.7.2
743
+ ## 0.7.2
715
744
 
716
745
  * Handling gzipped responses with no Content-Length header
717
746
 
718
- === 0.7.1
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
- === 0.7.0
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
- === 0.6.11
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
- === 0.6.10
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
- === 0.6.9
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
- === 0.6.8
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
- === 0.6.7
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
- === 0.6.6
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
- === 0.6.5
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
- === 0.6.4
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
- === 0.6.3
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
- === 0.6.2
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
- === 0.6.1
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
- === 0.6.0
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
- === 0.5.4
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
- === 0.5.3
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
- === 0.5.2
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
- === 0.5.1
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
- === 0.5.0
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
- === 0.4.7
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
- === 0.4.6
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
- === 0.4.5
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
- === 0.4.4
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
- === 0.4.3
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
- === 0.4.2
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
- === 0.4.1
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
- === 0.4.0
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,8 +1,3 @@
1
- source 'https://rubygems.org'
2
-
3
- gem "rake"
4
- gem "bundler"
5
- gem "rdoc"
6
- gem "minitest"
1
+ source "https://rubygems.org"
7
2
 
8
3
  gemspec
@@ -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