diamond-mechanize 2.1
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.
- data/CHANGELOG.rdoc +718 -0
- data/EXAMPLES.rdoc +187 -0
- data/FAQ.rdoc +11 -0
- data/GUIDE.rdoc +163 -0
- data/LICENSE.rdoc +20 -0
- data/Manifest.txt +159 -0
- data/README.rdoc +64 -0
- data/Rakefile +49 -0
- data/lib/mechanize.rb +1079 -0
- data/lib/mechanize/content_type_error.rb +13 -0
- data/lib/mechanize/cookie.rb +232 -0
- data/lib/mechanize/cookie_jar.rb +194 -0
- data/lib/mechanize/download.rb +59 -0
- data/lib/mechanize/element_matcher.rb +36 -0
- data/lib/mechanize/file.rb +65 -0
- data/lib/mechanize/file_connection.rb +17 -0
- data/lib/mechanize/file_request.rb +26 -0
- data/lib/mechanize/file_response.rb +74 -0
- data/lib/mechanize/file_saver.rb +39 -0
- data/lib/mechanize/form.rb +543 -0
- data/lib/mechanize/form/button.rb +6 -0
- data/lib/mechanize/form/check_box.rb +12 -0
- data/lib/mechanize/form/field.rb +54 -0
- data/lib/mechanize/form/file_upload.rb +21 -0
- data/lib/mechanize/form/hidden.rb +3 -0
- data/lib/mechanize/form/image_button.rb +19 -0
- data/lib/mechanize/form/keygen.rb +34 -0
- data/lib/mechanize/form/multi_select_list.rb +94 -0
- data/lib/mechanize/form/option.rb +50 -0
- data/lib/mechanize/form/radio_button.rb +55 -0
- data/lib/mechanize/form/reset.rb +3 -0
- data/lib/mechanize/form/select_list.rb +44 -0
- data/lib/mechanize/form/submit.rb +3 -0
- data/lib/mechanize/form/text.rb +3 -0
- data/lib/mechanize/form/textarea.rb +3 -0
- data/lib/mechanize/headers.rb +23 -0
- data/lib/mechanize/history.rb +82 -0
- data/lib/mechanize/http.rb +8 -0
- data/lib/mechanize/http/agent.rb +1004 -0
- data/lib/mechanize/http/auth_challenge.rb +59 -0
- data/lib/mechanize/http/auth_realm.rb +31 -0
- data/lib/mechanize/http/content_disposition_parser.rb +188 -0
- data/lib/mechanize/http/www_authenticate_parser.rb +155 -0
- data/lib/mechanize/monkey_patch.rb +16 -0
- data/lib/mechanize/page.rb +440 -0
- data/lib/mechanize/page/base.rb +7 -0
- data/lib/mechanize/page/frame.rb +27 -0
- data/lib/mechanize/page/image.rb +30 -0
- data/lib/mechanize/page/label.rb +20 -0
- data/lib/mechanize/page/link.rb +98 -0
- data/lib/mechanize/page/meta_refresh.rb +68 -0
- data/lib/mechanize/parser.rb +173 -0
- data/lib/mechanize/pluggable_parsers.rb +144 -0
- data/lib/mechanize/redirect_limit_reached_error.rb +19 -0
- data/lib/mechanize/redirect_not_get_or_head_error.rb +21 -0
- data/lib/mechanize/response_code_error.rb +21 -0
- data/lib/mechanize/response_read_error.rb +27 -0
- data/lib/mechanize/robots_disallowed_error.rb +28 -0
- data/lib/mechanize/test_case.rb +663 -0
- data/lib/mechanize/unauthorized_error.rb +3 -0
- data/lib/mechanize/unsupported_scheme_error.rb +6 -0
- data/lib/mechanize/util.rb +101 -0
- data/test/data/htpasswd +1 -0
- data/test/data/server.crt +16 -0
- data/test/data/server.csr +12 -0
- data/test/data/server.key +15 -0
- data/test/data/server.pem +15 -0
- data/test/htdocs/alt_text.html +10 -0
- data/test/htdocs/bad_form_test.html +9 -0
- data/test/htdocs/button.jpg +0 -0
- data/test/htdocs/canonical_uri.html +9 -0
- data/test/htdocs/dir with spaces/foo.html +1 -0
- data/test/htdocs/empty_form.html +6 -0
- data/test/htdocs/file_upload.html +26 -0
- data/test/htdocs/find_link.html +41 -0
- data/test/htdocs/form_multi_select.html +16 -0
- data/test/htdocs/form_multival.html +37 -0
- data/test/htdocs/form_no_action.html +18 -0
- data/test/htdocs/form_no_input_name.html +16 -0
- data/test/htdocs/form_order_test.html +11 -0
- data/test/htdocs/form_select.html +16 -0
- data/test/htdocs/form_set_fields.html +14 -0
- data/test/htdocs/form_test.html +188 -0
- data/test/htdocs/frame_referer_test.html +10 -0
- data/test/htdocs/frame_test.html +30 -0
- data/test/htdocs/google.html +13 -0
- data/test/htdocs/index.html +6 -0
- data/test/htdocs/link with space.html +5 -0
- data/test/htdocs/meta_cookie.html +11 -0
- data/test/htdocs/no_title_test.html +6 -0
- data/test/htdocs/noindex.html +9 -0
- data/test/htdocs/rails_3_encoding_hack_form_test.html +27 -0
- data/test/htdocs/relative/tc_relative_links.html +21 -0
- data/test/htdocs/robots.html +8 -0
- data/test/htdocs/robots.txt +2 -0
- data/test/htdocs/tc_bad_charset.html +9 -0
- data/test/htdocs/tc_bad_links.html +5 -0
- data/test/htdocs/tc_base_link.html +8 -0
- data/test/htdocs/tc_blank_form.html +11 -0
- data/test/htdocs/tc_charset.html +6 -0
- data/test/htdocs/tc_checkboxes.html +19 -0
- data/test/htdocs/tc_encoded_links.html +5 -0
- data/test/htdocs/tc_field_precedence.html +11 -0
- data/test/htdocs/tc_follow_meta.html +8 -0
- data/test/htdocs/tc_form_action.html +48 -0
- data/test/htdocs/tc_links.html +19 -0
- data/test/htdocs/tc_meta_in_body.html +9 -0
- data/test/htdocs/tc_pretty_print.html +17 -0
- data/test/htdocs/tc_referer.html +16 -0
- data/test/htdocs/tc_relative_links.html +19 -0
- data/test/htdocs/tc_textarea.html +23 -0
- data/test/htdocs/test_click.html +11 -0
- data/test/htdocs/unusual______.html +5 -0
- data/test/test_mechanize.rb +1164 -0
- data/test/test_mechanize_cookie.rb +451 -0
- data/test/test_mechanize_cookie_jar.rb +483 -0
- data/test/test_mechanize_download.rb +43 -0
- data/test/test_mechanize_file.rb +61 -0
- data/test/test_mechanize_file_connection.rb +21 -0
- data/test/test_mechanize_file_request.rb +19 -0
- data/test/test_mechanize_file_saver.rb +21 -0
- data/test/test_mechanize_form.rb +875 -0
- data/test/test_mechanize_form_check_box.rb +38 -0
- data/test/test_mechanize_form_encoding.rb +114 -0
- data/test/test_mechanize_form_field.rb +63 -0
- data/test/test_mechanize_form_file_upload.rb +20 -0
- data/test/test_mechanize_form_image_button.rb +12 -0
- data/test/test_mechanize_form_keygen.rb +32 -0
- data/test/test_mechanize_form_multi_select_list.rb +84 -0
- data/test/test_mechanize_form_option.rb +55 -0
- data/test/test_mechanize_form_radio_button.rb +78 -0
- data/test/test_mechanize_form_select_list.rb +76 -0
- data/test/test_mechanize_form_textarea.rb +52 -0
- data/test/test_mechanize_headers.rb +35 -0
- data/test/test_mechanize_history.rb +103 -0
- data/test/test_mechanize_http_agent.rb +1225 -0
- data/test/test_mechanize_http_auth_challenge.rb +39 -0
- data/test/test_mechanize_http_auth_realm.rb +49 -0
- data/test/test_mechanize_http_content_disposition_parser.rb +118 -0
- data/test/test_mechanize_http_www_authenticate_parser.rb +146 -0
- data/test/test_mechanize_link.rb +80 -0
- data/test/test_mechanize_page.rb +118 -0
- data/test/test_mechanize_page_encoding.rb +182 -0
- data/test/test_mechanize_page_frame.rb +16 -0
- data/test/test_mechanize_page_link.rb +390 -0
- data/test/test_mechanize_page_meta_refresh.rb +127 -0
- data/test/test_mechanize_parser.rb +289 -0
- data/test/test_mechanize_pluggable_parser.rb +52 -0
- data/test/test_mechanize_redirect_limit_reached_error.rb +24 -0
- data/test/test_mechanize_redirect_not_get_or_head_error.rb +14 -0
- data/test/test_mechanize_subclass.rb +22 -0
- data/test/test_mechanize_util.rb +103 -0
- data/test/test_multi_select.rb +119 -0
- metadata +216 -0
data/CHANGELOG.rdoc
ADDED
|
@@ -0,0 +1,718 @@
|
|
|
1
|
+
= Mechanize CHANGELOG
|
|
2
|
+
|
|
3
|
+
=== 2.1 / 2011-12-20
|
|
4
|
+
|
|
5
|
+
* Deprecations
|
|
6
|
+
* Mechanize#get no longer accepts an options hash.
|
|
7
|
+
* Mechanize::Util::to_native_charset has been removed.
|
|
8
|
+
|
|
9
|
+
* Minor enhancements
|
|
10
|
+
* Mechanize now depends on net-http-persistent 2.3+. This new version
|
|
11
|
+
brings idle timeouts to help with the dreaded "too many connection resets"
|
|
12
|
+
issue when POSTing to a closed connection. Issue #123
|
|
13
|
+
* SSL connections will be verified against the system certificate store by
|
|
14
|
+
default.
|
|
15
|
+
* Added Mechanize#retry_change_requests to allow mechanize to retry POST and
|
|
16
|
+
other non-idempotent requests when you know it is safe to do so. Issue
|
|
17
|
+
#123
|
|
18
|
+
* Mechanize can now stream files directly to disk without loading them into
|
|
19
|
+
memory first through Mechanize::Download, a pluggable parser for
|
|
20
|
+
downloading files.
|
|
21
|
+
|
|
22
|
+
All responses larger than Mechanize#max_file_buffer are downloaded to a
|
|
23
|
+
Tempfile. For backwards compatibility Mechanize::File subclasses still
|
|
24
|
+
load the response body into memory.
|
|
25
|
+
|
|
26
|
+
To force all unknown content types to download to disk instead of memory
|
|
27
|
+
set:
|
|
28
|
+
|
|
29
|
+
agent.pluggable_parser.default = Mechanize::Download
|
|
30
|
+
* Added Mechanize#content_encoding_hooks which allow handling of
|
|
31
|
+
non-standard content encodings like "agzip". Patch #125 by kitamomonga
|
|
32
|
+
* Added dom_class to elements and the element matcher like dom_id. Patch
|
|
33
|
+
#156 by Dan Hansen.
|
|
34
|
+
* Added support for the HTML5 keygen form element. See
|
|
35
|
+
http://dev.w3.org/html5/spec/Overview.html#the-keygen-element Patch #157
|
|
36
|
+
by Victor Costan.
|
|
37
|
+
* Mechanize no longer follows meta refreshes that have no "url=" in the
|
|
38
|
+
content attribute to avoid infinite loops. To follow a meta refresh to
|
|
39
|
+
the same page set Mechanize#follow_meta_refresh_self to true. Issue #134
|
|
40
|
+
by Jo Hund.
|
|
41
|
+
* Updated 'Mac Safari' User-Agent alias to Safari 5.1.1. 'Mac Safari 4' can
|
|
42
|
+
be used for the old 'Mac Safari' alias.
|
|
43
|
+
* When given multiple HTTP authentication options mechanize now picks the
|
|
44
|
+
strongest method.
|
|
45
|
+
* Improvements to HTTP authorization:
|
|
46
|
+
* mechanize raises Mechanize::UnathorizedError for 401 responses which is
|
|
47
|
+
a sublcass of Mechanize::ResponseCodeError.
|
|
48
|
+
* Added support for NTLM authentication, but this has not been tested.
|
|
49
|
+
* Mechanize::Cookie.new accepts attributes in a hash.
|
|
50
|
+
* Mechanize::CookieJar#<<(cookie) (alias: add!) is added. Issue #139
|
|
51
|
+
* Different mechanize instances may now have different loggers. Issue #122
|
|
52
|
+
* Mechanize now accepts a proxy port as a service name or number string.
|
|
53
|
+
Issue #167
|
|
54
|
+
|
|
55
|
+
* Bug fixes
|
|
56
|
+
* Mechanize now handles cookies just as most modern browsers do,
|
|
57
|
+
roughly based on RFC 6265.
|
|
58
|
+
* domain=.example.com (which is invalid) is considered identical to
|
|
59
|
+
domain=example.com.
|
|
60
|
+
* A cookie with domain=example.com is sent to host.sub.example.com
|
|
61
|
+
as well as host.example.com and example.com.
|
|
62
|
+
* A cookie with domain=TLD (no dots) is accepted and sent if the
|
|
63
|
+
host name is TLD, and rejected otherwise. To retain compatibility
|
|
64
|
+
and convention, host/domain names starting with "local" are exempt
|
|
65
|
+
from this rule.
|
|
66
|
+
* A cookie with no domain attribute is only sent to the original
|
|
67
|
+
host.
|
|
68
|
+
* A cookie with an Effective TLD is rejected based on the public
|
|
69
|
+
suffix list. (cf. http://publicsuffix.org/)
|
|
70
|
+
* "Secure" cookies are not sent via non-https connection.
|
|
71
|
+
* Subdomain match is not performed against an IP address.
|
|
72
|
+
* It is recommended that you clear out existing cookie jars for
|
|
73
|
+
regeneration because previously saved cookies may not have been
|
|
74
|
+
parsed correctly.
|
|
75
|
+
* Mechanize takes more care to avoid saving files with certain unsafe names.
|
|
76
|
+
You should still take care not to use mechanize to save files directly
|
|
77
|
+
into your home directory ($HOME). Issue #163.
|
|
78
|
+
* Mechanize#cookie_jar= works again. Issue #126
|
|
79
|
+
* The original Referer value persists on redirection. Issue #150
|
|
80
|
+
* Do not send a referer on a Refresh header based redirection.
|
|
81
|
+
* Fixed encoding error in tests when LANG=C. Patch #142 by jinschoi.
|
|
82
|
+
* The order of items in a form submission now match the DOM order. Patch
|
|
83
|
+
#129 by kitamomonga
|
|
84
|
+
* Fixed proxy example in EXAMPLE. Issue #146 by NielsKSchjoedt
|
|
85
|
+
|
|
86
|
+
=== 2.0.1 / 2011-06-28
|
|
87
|
+
|
|
88
|
+
Mechanize now uses minitest to avoid 1.9 vs 1.8 assertion availability in
|
|
89
|
+
test/unit
|
|
90
|
+
|
|
91
|
+
* Bug Fixes
|
|
92
|
+
* Restored Mechanize#set_proxy. Issue #117, #118, #119
|
|
93
|
+
* Mechanize::CookieJar#load now lazy-loads YAML. Issue #118
|
|
94
|
+
* Mechanize#keep_alive_time no longer crashes but does nothing as
|
|
95
|
+
net-http-persistent does not support HTTP/1.0 keep-alive extensions.
|
|
96
|
+
|
|
97
|
+
=== 2.0 / 2011-06-27
|
|
98
|
+
|
|
99
|
+
Mechanize is now under the MIT license
|
|
100
|
+
|
|
101
|
+
* API changes
|
|
102
|
+
* WWW::Mechanize has been removed. Use Mechanize.
|
|
103
|
+
* Pre connect hooks are now called with the agent and the request. See
|
|
104
|
+
Mechanize#pre_connect_hooks.
|
|
105
|
+
* Post connect hooks are now called with the agent and the response. See
|
|
106
|
+
Mechanize#post_connect_hooks.
|
|
107
|
+
* Mechanize::Chain is gone, as an internal API this should cause no problems.
|
|
108
|
+
* Mechanize#fetch_page no longer accepts an options Hash.
|
|
109
|
+
* Mechanize#put now accepts headers instead of an options Hash as the last
|
|
110
|
+
argument
|
|
111
|
+
* Mechanize#delete now accepts headers instead of an options Hash as the
|
|
112
|
+
last argument
|
|
113
|
+
* Mechanize#request_with_entity now accepts headers instead of an options
|
|
114
|
+
Hash as the last argument
|
|
115
|
+
* Mechanize no longer raises RuntimeError directly, Mechanize::Error or
|
|
116
|
+
ArgumentError are raised instead.
|
|
117
|
+
* The User-Agent header has changed. It no longer includes the WWW- prefix
|
|
118
|
+
and now includes the ruby version. The URL has been updated as well.
|
|
119
|
+
* Mechanize now requires ruby 1.8.7 or newer.
|
|
120
|
+
* Hpricot support has been removed as webrobots requires nokogiri.
|
|
121
|
+
* Mechanize#get no longer accepts the referer as the second argument.
|
|
122
|
+
* Mechanize#get no longer allows the HTTP method to be changed (:verb
|
|
123
|
+
option).
|
|
124
|
+
* Mechanize::Page::Meta is now Mechanize::Page::MetaRefresh to accurately
|
|
125
|
+
depict its responsibilities.
|
|
126
|
+
* Mechanize::Page#meta is now Mechanize::Page#meta_refresh as it only
|
|
127
|
+
contains meta elements with http-equiv of "refresh"
|
|
128
|
+
* Mechanize::Page#charset is now Mechanize::Page::charset. GH #112, patch
|
|
129
|
+
by Godfrey Chan.
|
|
130
|
+
|
|
131
|
+
* Deprecations
|
|
132
|
+
* Mechanize#get with an options hash is deprecated and will be removed after
|
|
133
|
+
October, 2011.
|
|
134
|
+
* Mechanize::Util::to_native_charset is deprecated as it is no longer used
|
|
135
|
+
by Mechanize.
|
|
136
|
+
|
|
137
|
+
* New Features
|
|
138
|
+
|
|
139
|
+
* Add header reference methods to Mechanize::File so that a reponse
|
|
140
|
+
object gets compatible with Net::HTTPResponse.
|
|
141
|
+
* Mechanize#click accepts a regexp or string to click a button/link in the
|
|
142
|
+
current page. It works as expected when not passed a string or regexp.
|
|
143
|
+
* Provide a way to only follow permanent redirects (301)
|
|
144
|
+
automatically: <tt>agent.redirect_ok = :permanent</tt> GH #73
|
|
145
|
+
* Mechanize now supports HTML5 meta charset. GH #113
|
|
146
|
+
* Documented various Mechanize accessors. GH #66
|
|
147
|
+
* Mechanize now uses net-http-digest_auth. GH #31
|
|
148
|
+
* Mechanize now implements session cookies. GH #78
|
|
149
|
+
* Mechanize now implements deflate decoding. GH #40
|
|
150
|
+
* Mechanize now allows a certificate and key to be passed directly. GH #71
|
|
151
|
+
* Mechanize::Form::MultiSelectList now implements #option_with and
|
|
152
|
+
#options_with. GH #42
|
|
153
|
+
* Add Mechanize::Page::Link#rel and #rel?(kind) to read and test the rel
|
|
154
|
+
attribute.
|
|
155
|
+
* Add Mechanize::Page#canonical_uri to read a </tt><link
|
|
156
|
+
rel="canonical"></tt> tag.
|
|
157
|
+
* Add support for Robots Exclusion Protocol (i.e. robots.txt) and
|
|
158
|
+
nofollow/noindex in meta tags and the rel attribute. Automatic
|
|
159
|
+
exclusion can be turned on by setting:
|
|
160
|
+
agent.robots = true
|
|
161
|
+
* Manual robots.txt test can be performed with
|
|
162
|
+
Mechanize#robots_allowed? and #robots_disallowed?.
|
|
163
|
+
* Mechanize::Form now supports the accept-charset attribute. GH #96
|
|
164
|
+
* Mechanize::ResponseReadError is raised if there is an exception while
|
|
165
|
+
reading the response body. This allows recovery from broken HTTP servers
|
|
166
|
+
(or connections). GH #90
|
|
167
|
+
* Mechanize#follow_meta_refresh set to :anywhere will follow meta refresh
|
|
168
|
+
found outside of a document's head. GH #99
|
|
169
|
+
* Add support for HTML5's rel="noreferrer" attribute which indicates
|
|
170
|
+
no "Referer" information should be sent when following the link.
|
|
171
|
+
* A frame will now load its content when #content is called. GH #111
|
|
172
|
+
* Added Mechanize#default_encoding to provide a default for pages with no
|
|
173
|
+
encoding specified. GH #104
|
|
174
|
+
* Added Mechanize#force_default_encoding which only uses
|
|
175
|
+
Mechanize#default_encoding for parsing HTML. GH #104
|
|
176
|
+
|
|
177
|
+
* Bug Fixes:
|
|
178
|
+
|
|
179
|
+
* Fixed a bug where Referer is not sent when accessing a relative
|
|
180
|
+
URI starting with "http".
|
|
181
|
+
* Fix handling of Meta Refresh with relative paths. GH #39
|
|
182
|
+
* Mechanize::CookieJar now supports RFC 2109 correctly. GH #85
|
|
183
|
+
* Fixed typo in EXAMPLES.rdoc. GH #74
|
|
184
|
+
* The base element is now handled correctly for images. GH #72
|
|
185
|
+
* Image buttons with no name attribute are now included in the form's button
|
|
186
|
+
list. GH#56
|
|
187
|
+
* Improved handling of non ASCII-7bit compatible characters in links (only
|
|
188
|
+
an issue on ruby 1.8). GH #36, GH #75
|
|
189
|
+
* Loading cookies.txt is faster. GH #38
|
|
190
|
+
* Mechanize no longer sends cookies for a.b.example to axb.example. GH #41
|
|
191
|
+
* Mechanize no longer sends the button name as a form field for image
|
|
192
|
+
buttons. GH #45
|
|
193
|
+
* Blank cookie values are now skipped. GH #80
|
|
194
|
+
* Mechanize now adds a '.' to cookie domains if no '.' was sent. This is
|
|
195
|
+
not allowed by RFC 2109 but does appear in RFC 2965. GH #86
|
|
196
|
+
* file URIs are now read in binary mode. GH #83
|
|
197
|
+
* Content-Encoding: x-gzip is now treated like gzip per RFC 2616.
|
|
198
|
+
* Mechanize now unescapes URIs for meta refresh. GH #68
|
|
199
|
+
* Mechanize now has more robust HTML charset detection. GH #43
|
|
200
|
+
* Mechanize::Form::Textarea is now created from a textarea element. GH #94
|
|
201
|
+
* A meta content-type now overrides the HTTP content type. GH #114
|
|
202
|
+
* Mechanize::Page::Link#uri now handles both escaped and unescaped hrefs.
|
|
203
|
+
GH #107
|
|
204
|
+
|
|
205
|
+
=== 1.0.0
|
|
206
|
+
|
|
207
|
+
* New Features:
|
|
208
|
+
|
|
209
|
+
* An optional verb may be passed to Mechanize#get GH #26
|
|
210
|
+
* The WWW constant is deprecated. Switch to the top level constant Mechanize
|
|
211
|
+
* SelectList#option_with and options_with for finding options
|
|
212
|
+
|
|
213
|
+
* Bug Fixes:
|
|
214
|
+
|
|
215
|
+
* Rescue errors from bogus encodings
|
|
216
|
+
* 7bit content-encoding support. Thanks sporkmonger! GH #2
|
|
217
|
+
* Fixed a bug with iconv conversion. Thanks awesomeman! GH #9
|
|
218
|
+
* meta redirects outside the head are not followed. GH #13
|
|
219
|
+
* Form submissions work with nil page encodings. GH #25
|
|
220
|
+
* Fixing default values with serialized cookies. GH #3
|
|
221
|
+
* Checkboxes and fields are sorted by page appearance before submitting. #11
|
|
222
|
+
|
|
223
|
+
=== 0.9.3
|
|
224
|
+
|
|
225
|
+
* Bug Fixes:
|
|
226
|
+
|
|
227
|
+
* Do not apply encoding if encoding equals 'none' Thanks Akinori MUSHA!
|
|
228
|
+
* Fixed Page#encoding= when changing the value from or to nil. Made
|
|
229
|
+
it return the assigned value while at it. (Akinori MUSHA)
|
|
230
|
+
* Custom request headers may be supplied WWW::Mechanize#request_headers
|
|
231
|
+
RF #24516
|
|
232
|
+
* HTML Parser may be set on a per instance level WWW::Mechanize#html_parser
|
|
233
|
+
RF #24693
|
|
234
|
+
* Fixed string encoding in ruby 1.9. RF #2433
|
|
235
|
+
* Rescuing Zlib::DataErrors (Thanks Kelley Reynolds)
|
|
236
|
+
* Fixing a problem with frozen SSL objects. RF #24950
|
|
237
|
+
* Do not send a referer on meta refresh. RF #24945
|
|
238
|
+
* Fixed a bug with double semi-colons in Content-Disposition headers
|
|
239
|
+
* Properly handling cookies that specify a path. RF #25259
|
|
240
|
+
|
|
241
|
+
=== 0.9.2 / 2009/03/05
|
|
242
|
+
|
|
243
|
+
* New Features:
|
|
244
|
+
* Mechanize#submit and Form#submit take arbitrary headers(thanks penguincoder)
|
|
245
|
+
|
|
246
|
+
* Bug Fixes:
|
|
247
|
+
* Fixed a bug with bad cookie parsing
|
|
248
|
+
* Form::RadioButton#click unchecks other buttons (RF #24159)
|
|
249
|
+
* Fixed problems with Iconv (RF #24190, RF #24192, RF #24043)
|
|
250
|
+
* POST parameters should be CGI escaped
|
|
251
|
+
* Made Content-Type match case insensitive (Thanks Kelly Reynolds)
|
|
252
|
+
* Non-string form parameters work
|
|
253
|
+
|
|
254
|
+
=== 0.9.1 2009/02/23
|
|
255
|
+
|
|
256
|
+
* New Features:
|
|
257
|
+
* Encoding may be specified for a page: Page#encoding=
|
|
258
|
+
|
|
259
|
+
* Bug Fixes:
|
|
260
|
+
* m17n fixes. ありがとう konn!
|
|
261
|
+
* Fixed a problem with base tags. ありがとう Keisuke
|
|
262
|
+
* HEAD requests do not record in the history
|
|
263
|
+
* Default encoding to ISO-8859-1 instead of ASCII
|
|
264
|
+
* Requests with URI instances should not be polluted RF #23472
|
|
265
|
+
* Nonce count fixed for digest auth requests. Thanks Adrian Slapa!
|
|
266
|
+
* Fixed a referer issue with requests using a uri. RF #23472
|
|
267
|
+
* WAP content types will now be parsed
|
|
268
|
+
* Rescued poorly formatted cookies. Thanks Kelley Reynolds!
|
|
269
|
+
|
|
270
|
+
=== 0.9.0
|
|
271
|
+
|
|
272
|
+
* Deprecations
|
|
273
|
+
* WWW::Mechanize::List is gone!
|
|
274
|
+
* Mechanize uses Nokogiri as it's HTML parser but you may switch to
|
|
275
|
+
Hpricot by using WWW::Mechanize.html_parser = Hpricot
|
|
276
|
+
|
|
277
|
+
* Bug Fixes:
|
|
278
|
+
* Nil check on page when base tag is used #23021
|
|
279
|
+
|
|
280
|
+
=== 0.8.5
|
|
281
|
+
|
|
282
|
+
* Deprecations
|
|
283
|
+
* WWW::Mechanize::List will be deprecated in 0.9.0, and warnings have
|
|
284
|
+
been added to help you upgrade.
|
|
285
|
+
|
|
286
|
+
* Bug Fixes:
|
|
287
|
+
* Stopped raising EOF exceptions on HEAD requests. ありがとう:HIRAKU Kuroda
|
|
288
|
+
* Fixed exceptions when a logger is set and file:// requests are made.
|
|
289
|
+
* Made Mechanize 1.9 compatible
|
|
290
|
+
* Not setting the port in the host header for SSL sites.
|
|
291
|
+
* Following refresh headers. Thanks Tim Connor!
|
|
292
|
+
* Cookie Jar handles cookie domains containing ports, like
|
|
293
|
+
'mydomain.com:443' (Thanks Michal Ochman!)
|
|
294
|
+
* Fixing strange uri escaping problems [#22604]
|
|
295
|
+
* Making content-type determintation more robust. (thanks Han Holl!)
|
|
296
|
+
* Dealing with links that are query string only. [#22402]
|
|
297
|
+
* Nokogiri may be dropped in as a replacement.
|
|
298
|
+
WWW::Mechanize.html_parser = Nokogiri::HTML
|
|
299
|
+
* Making sure the correct page is added to the history on meta refresh.
|
|
300
|
+
[#22708]
|
|
301
|
+
* Mechanize#get requests no longer send a referer unless they are relative
|
|
302
|
+
requests.
|
|
303
|
+
|
|
304
|
+
=== 0.8.4
|
|
305
|
+
|
|
306
|
+
* Bug Fixes:
|
|
307
|
+
* Setting the port number on the host header.
|
|
308
|
+
* Fixing Authorization headers for picky servers
|
|
309
|
+
|
|
310
|
+
=== 0.8.3
|
|
311
|
+
|
|
312
|
+
* Bug Fixes:
|
|
313
|
+
* Making sure logger is set during SSL connections.
|
|
314
|
+
|
|
315
|
+
=== 0.8.2
|
|
316
|
+
|
|
317
|
+
* Bug Fixes:
|
|
318
|
+
* Doh! I was accidentally setting headers twice.
|
|
319
|
+
|
|
320
|
+
=== 0.8.1
|
|
321
|
+
|
|
322
|
+
* Bug Fixes:
|
|
323
|
+
* Fixed problem with nil pointer when logger is set
|
|
324
|
+
|
|
325
|
+
=== 0.8.0
|
|
326
|
+
|
|
327
|
+
* New Features:
|
|
328
|
+
* Lifecycle hooks. Mechanize#pre_connect_hooks, Mechanize#post_connect_hooks
|
|
329
|
+
* file:/// urls are now supported
|
|
330
|
+
* Added Mechanize::Page#link_with, frame_with for searching for links using
|
|
331
|
+
+criteria+.
|
|
332
|
+
* Implementing PUT, DELETE, and HEAD requests
|
|
333
|
+
|
|
334
|
+
* Bug Fixes:
|
|
335
|
+
* Fixed an infinite loop when content-length and body length don't match.
|
|
336
|
+
* Only setting headers once
|
|
337
|
+
* Adding IIS authentication support
|
|
338
|
+
|
|
339
|
+
=== 0.7.8
|
|
340
|
+
|
|
341
|
+
* Bug Fixes:
|
|
342
|
+
* Fixed bug when receiving a 304 response (HTTPNotModified) on a page not
|
|
343
|
+
cached in history.
|
|
344
|
+
* #21428 Default to HTML parser for 'application/xhtml+xml' content-type.
|
|
345
|
+
* Fixed an issue where redirects were resending posted data
|
|
346
|
+
|
|
347
|
+
=== 0.7.7
|
|
348
|
+
|
|
349
|
+
* New Features:
|
|
350
|
+
* Page#form_with takes a +criteria+ hash.
|
|
351
|
+
* Page#form is changed to Page#form_with
|
|
352
|
+
* Mechanize#get takes custom http headers. Thanks Mike Dalessio!
|
|
353
|
+
* Form#click_button submits a form defaulting to the current button.
|
|
354
|
+
* Form#set_fields now takes a hash. Thanks Tobi!
|
|
355
|
+
* Mechanize#redirection_limit= for setting the max number of redirects.
|
|
356
|
+
|
|
357
|
+
* Bug Fixes:
|
|
358
|
+
* Added more examples. Thanks Robert Jackson.
|
|
359
|
+
* #20480 Making sure the Host header is set.
|
|
360
|
+
* #20672 Making sure cookies with weird semicolons work.
|
|
361
|
+
* Fixed bug with percent signs in urls.
|
|
362
|
+
http://d.hatena.ne.jp/kitamomonga/20080410/ruby_mechanize_percent_url_bug
|
|
363
|
+
* #21132 Not checking for EOF errors on redirect
|
|
364
|
+
* Fixed a weird gzipping error.
|
|
365
|
+
* #21233 Smarter multipart boundry. Thanks Todd Willey!
|
|
366
|
+
* #20097 Supporting meta tag cookies.
|
|
367
|
+
|
|
368
|
+
=== 0.7.6
|
|
369
|
+
|
|
370
|
+
* New Features:
|
|
371
|
+
* Added support for reading Mozilla cookie jars. Thanks Chris Riddoch!
|
|
372
|
+
* Moving text, password, hidden, int to default. Thanks Tim Harper!
|
|
373
|
+
* Mechanize#history_added callback for page loads. Thanks Tobi Reif!
|
|
374
|
+
* Mechanize#scheme_handlers callbacks for handling unsupported schemes on
|
|
375
|
+
links.
|
|
376
|
+
|
|
377
|
+
* Bug Fixes:
|
|
378
|
+
* Ignoring scheme case
|
|
379
|
+
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=470642
|
|
380
|
+
* Not encoding tildes in uris. Thanks Bruno. [#19380]
|
|
381
|
+
* Resetting request bodys when retrying form posts. Thanks Bruno. [#19379]
|
|
382
|
+
* Throwing away keep alive connections on EPIPE and ECONNRESET.
|
|
383
|
+
* Duplicating request headers when retrying a 401. Thanks Hiroshi Ichikawa.
|
|
384
|
+
* Simulating an EOF error when a response length is bad. Thanks Tobias Gruetzmacher.
|
|
385
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=19178&group_id=1453&atid=5711
|
|
386
|
+
* Defaulting option tags to the inner text.
|
|
387
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=19976&group_id=1453&atid=5709
|
|
388
|
+
* Supporting blank strings for option values.
|
|
389
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=19975&group_id=1453&atid=5709
|
|
390
|
+
|
|
391
|
+
=== 0.7.5
|
|
392
|
+
|
|
393
|
+
* Fixed a bug when fetching files and not pages. Thanks Mat Schaffer!
|
|
394
|
+
|
|
395
|
+
=== 0.7.4
|
|
396
|
+
|
|
397
|
+
* doh!
|
|
398
|
+
|
|
399
|
+
=== 0.7.3
|
|
400
|
+
|
|
401
|
+
* Pages are now yielded to a blocks given to WWW::Mechanize#get
|
|
402
|
+
* WWW::Mechanize#get now takes hash arguments for uri parameters.
|
|
403
|
+
* WWW::Mechanize#post takes an IO object as a parameter and posts correctly.
|
|
404
|
+
* Fixing a strange zlib inflate problem on windows
|
|
405
|
+
|
|
406
|
+
=== 0.7.2
|
|
407
|
+
|
|
408
|
+
* Handling gzipped responses with no Content-Length header
|
|
409
|
+
|
|
410
|
+
=== 0.7.1
|
|
411
|
+
|
|
412
|
+
* Added iPhone to the user agent aliases. [#17572]
|
|
413
|
+
* Fixed a bug with EOF errors in net/http. [#17570]
|
|
414
|
+
* Handling 0 length gzipped responses. [#17471]
|
|
415
|
+
|
|
416
|
+
=== 0.7.0
|
|
417
|
+
|
|
418
|
+
* Removed Ruby 1.8.2 support
|
|
419
|
+
* Changed parser to lazily parse links
|
|
420
|
+
* Lazily parsing document
|
|
421
|
+
* Adding verify_callback for SSL requests. Thanks Mike Dalessio!
|
|
422
|
+
* Fixed a bug with Accept-Language header. Thanks Bill Siggelkow.
|
|
423
|
+
|
|
424
|
+
=== 0.6.11
|
|
425
|
+
|
|
426
|
+
* Detecting single quotes in meta redirects.
|
|
427
|
+
* Adding pretty inspect for ruby versions > 1.8.4 (Thanks Joel Kociolek)
|
|
428
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=13150&group_id=1453&atid=5709
|
|
429
|
+
* Fixed bug with file name in multipart posts
|
|
430
|
+
http://rubyforge.org/tracker/?func=detail&aid=15594&group_id=1453&atid=5709
|
|
431
|
+
* Posting forms relative to the originating page. Thanks Mortee.
|
|
432
|
+
* Added a FAQ
|
|
433
|
+
http://rubyforge.org/tracker/?func=detail&aid=15772&group_id=1453&atid=5709
|
|
434
|
+
|
|
435
|
+
=== 0.6.10
|
|
436
|
+
|
|
437
|
+
* Made digest authentication work with POSTs.
|
|
438
|
+
* Made sure page was HTML before following meta refreshes.
|
|
439
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=12260&group_id=1453&atid=5709
|
|
440
|
+
* Made sure that URLS with a host and no path would default to '/' for history
|
|
441
|
+
purposes.
|
|
442
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=12368&group_id=1453&atid=5709
|
|
443
|
+
* Avoiding memory leaks with transact. Thanks Tobias Gruetzmacher!
|
|
444
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=12057&group_id=1453&atid=5711
|
|
445
|
+
* Fixing a problem with # signs in the file name. Thanks Tobias Gruetzmacher!
|
|
446
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=12510&group_id=1453&atid=5711
|
|
447
|
+
* Made sure that blank form values are submitted.
|
|
448
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=12505&group_id=1453&atid=5709
|
|
449
|
+
* Mechanize now respects the base tag. Thanks Stephan Dale.
|
|
450
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=12468&group_id=1453&atid=5709
|
|
451
|
+
* Aliasing inspect to pretty_inspect. Thanks Eric Promislow.
|
|
452
|
+
http://rubyforge.org/pipermail/mechanize-users/2007-July/000157.html
|
|
453
|
+
|
|
454
|
+
=== 0.6.9
|
|
455
|
+
|
|
456
|
+
* Updating UTF-8 support for urls
|
|
457
|
+
* Adding AREA tags to the links list.
|
|
458
|
+
http://rubyforge.org/pipermail/mechanize-users/2007-May/000140.html
|
|
459
|
+
* WWW::Mechanize#follow_meta_refresh will allow you to automatically follow
|
|
460
|
+
meta refresh tags. [#10032]
|
|
461
|
+
* Adding x-gzip to accepted content-encoding. Thanks Simon Strandgaard
|
|
462
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=11167&group_id=1453&atid=5711
|
|
463
|
+
* Added Digest Authentication support. Thanks to Ryan Davis and Eric Hodel,
|
|
464
|
+
you get a gold star!
|
|
465
|
+
|
|
466
|
+
=== 0.6.8
|
|
467
|
+
|
|
468
|
+
* Keep alive can be shut off now with WWW::Mechanize#keep_alive
|
|
469
|
+
* Conditional requests can be shut off with WWW::Mechanize#conditional_requests
|
|
470
|
+
* Monkey patched Net::HTTP#keep_alive?
|
|
471
|
+
* [#9877] Moved last request time. Thanks Max Stepanov
|
|
472
|
+
* Added WWW::Mechanize::File#save
|
|
473
|
+
* Defaulting file name to URI or Content-Disposition
|
|
474
|
+
* Updating compatability with hpricot
|
|
475
|
+
* Added more unit tests
|
|
476
|
+
|
|
477
|
+
=== 0.6.7
|
|
478
|
+
|
|
479
|
+
* Fixed a bug with keep-alive requests
|
|
480
|
+
* [#9549] fixed problem with cookie paths
|
|
481
|
+
|
|
482
|
+
=== 0.6.6
|
|
483
|
+
|
|
484
|
+
* Removing hpricot overrides
|
|
485
|
+
* Fixed a bug where alt text can be nil. Thanks Yannick!
|
|
486
|
+
* Unparseable expiration dates in cookies are now treated as session cookies
|
|
487
|
+
* Caching connections
|
|
488
|
+
* Requests now default to keep alive
|
|
489
|
+
* [#9434] Fixed bug where html entities weren't decoded
|
|
490
|
+
* [#9150] Updated mechanize history to deal with redirects
|
|
491
|
+
|
|
492
|
+
=== 0.6.5
|
|
493
|
+
|
|
494
|
+
* Copying headers to a hash to prevent memory leaks
|
|
495
|
+
* Speeding up page parsing
|
|
496
|
+
* Aliased fields to elements
|
|
497
|
+
* Adding If-Modified-Since header
|
|
498
|
+
* Added delete_field! to form. Thanks to Sava Chankov
|
|
499
|
+
* Updated uri escaping to support high order characters. Thanks to Henrik Nyh.
|
|
500
|
+
* Better handling relative URIs. Thanks to Henrik Nyh
|
|
501
|
+
* Now handles pipes in URLs
|
|
502
|
+
http://rubyforge.org/tracker/?func=detail&aid=7140&group_id=1453&atid=5709
|
|
503
|
+
* Now escaping html entities in form fields.
|
|
504
|
+
http://rubyforge.org/tracker/?func=detail&aid=7563&group_id=1453&atid=5709
|
|
505
|
+
* Added MSIE 7.0 user agent string
|
|
506
|
+
|
|
507
|
+
=== 0.6.4
|
|
508
|
+
|
|
509
|
+
* Adding the "redirect_ok" method to Mechanize to stop mechanize from
|
|
510
|
+
following redirects.
|
|
511
|
+
http://rubyforge.org/tracker/index.php?func=detail&aid=6571&group_id=1453&atid=5712
|
|
512
|
+
* Added protected method Mechanize#set_headers so that subclasses can set
|
|
513
|
+
custom headers.
|
|
514
|
+
http://rubyforge.org/tracker/?func=detail&aid=7208&group_id=1453&atid=5712
|
|
515
|
+
* Aliased Page#referer to Page#page
|
|
516
|
+
* Fixed a bug when clicking relative urls
|
|
517
|
+
http://rubyforge.org/pipermail/mechanize-users/2006-November/000035.html
|
|
518
|
+
* Fixing a bug when bad version or max age is passed to Cookie::parse
|
|
519
|
+
http://rubyforge.org/pipermail/mechanize-users/2006-November/000033.html
|
|
520
|
+
* Fixing a bug with response codes. [#6526]
|
|
521
|
+
* Fixed bug [#6548]. Input type of 'button' was not being added as a button.
|
|
522
|
+
* Fixed bug [#7139]. REXML parser calls hpricot parser by accident
|
|
523
|
+
|
|
524
|
+
=== 0.6.3
|
|
525
|
+
|
|
526
|
+
* Added keys and values methods to Form
|
|
527
|
+
* Added has_value? to Form
|
|
528
|
+
* Added a has_field? method to Form
|
|
529
|
+
* The add_field! method on Form now creates a field for you on the form.
|
|
530
|
+
Thanks to Mat Schaffer for the patch.
|
|
531
|
+
http://rubyforge.org/pipermail/mechanize-users/2006-November/000025.html
|
|
532
|
+
* Fixed a bug when form actions have html ecoded entities in them.
|
|
533
|
+
http://rubyforge.org/pipermail/mechanize-users/2006-October/000019.html
|
|
534
|
+
* Fixed a bug when links or frame sources have html encoded entities in the
|
|
535
|
+
href or src.
|
|
536
|
+
* Fixed a bug where '#' symbols are encoded
|
|
537
|
+
http://rubyforge.org/forum/message.php?msg_id=14747
|
|
538
|
+
|
|
539
|
+
=== 0.6.2
|
|
540
|
+
|
|
541
|
+
* Added a yield to Page#form so that dealing with forms can be more DSL like.
|
|
542
|
+
* Added the parsed page to the ResponseCodeError so that the parsed results
|
|
543
|
+
can be accessed even in the event of an error.
|
|
544
|
+
http://rubyforge.org/pipermail/mechanize-users/2006-September/000007.html
|
|
545
|
+
* Updated documentation (Thanks to Paul Smith)
|
|
546
|
+
|
|
547
|
+
=== 0.6.1
|
|
548
|
+
|
|
549
|
+
* Added a method to Form called "submit". Now forms can be submitted by
|
|
550
|
+
calling a method on the form.
|
|
551
|
+
* Added a click method to links
|
|
552
|
+
* Added an REXML pluggable parser for backwards compatability. To use it,
|
|
553
|
+
just do this:
|
|
554
|
+
agent.pluggable_parser.html = WWW::Mechanize::REXMLPage
|
|
555
|
+
* Fixed a bug with referrers by adding a page attribute to forms and links.
|
|
556
|
+
* Fixed a bug where domain names were case sensitive.
|
|
557
|
+
http://tenderlovemaking.com/2006/09/04/road-to-ruby-mechanize-060/#comment-53
|
|
558
|
+
* Fixed a bug with URI escaped links.
|
|
559
|
+
http://rubyforge.org/pipermail/mechanize-users/2006-September/000002.html
|
|
560
|
+
* Fixed a bug when options in select lists don't have a value. Thanks Dan Higham
|
|
561
|
+
[#5837] Code in lib/mechanize/form_elements.rb is incorrect.
|
|
562
|
+
* Fixed a bug with loading text in to links.
|
|
563
|
+
http://rubyforge.org/pipermail/mechanize-users/2006-September/000000.html
|
|
564
|
+
|
|
565
|
+
=== 0.6.0
|
|
566
|
+
|
|
567
|
+
* Changed main parser to use hpricot
|
|
568
|
+
* Made WWW::Mechanize::Page class searchable like hpricot
|
|
569
|
+
* Updated WWW::Mechanize#click to support hpricot links like this:
|
|
570
|
+
@agent.click (page/"a").first
|
|
571
|
+
* Clicking a Frame is now possible:
|
|
572
|
+
@agent.click (page/"frame").first
|
|
573
|
+
* Removed deprecated attr_finder
|
|
574
|
+
* Removed REXML helper methods since the main parser is now hpricot
|
|
575
|
+
* Overhauled cookie parser to use WEBrick::Cookie
|
|
576
|
+
|
|
577
|
+
=== 0.5.4
|
|
578
|
+
|
|
579
|
+
* Added WWW::Mechanize#trasact for saving history state between in a
|
|
580
|
+
transaction. See the EXAMPLES file. Thanks Johan Kiviniemi.
|
|
581
|
+
* Added support for gzip compressed pages
|
|
582
|
+
* Forms can now be accessed like a hash. For example, to set the value
|
|
583
|
+
of an input field named 'name' to "Aaron", you can do this:
|
|
584
|
+
form['name'] = "Aaron"
|
|
585
|
+
Or to get the value of a field named 'name', do this:
|
|
586
|
+
puts form['name']
|
|
587
|
+
* File uploads will now read the file specified in FileUpload#file_name
|
|
588
|
+
* FileUpload can use an IO object in FileUpload#file_data
|
|
589
|
+
* Fixed a bug with saving files on windows
|
|
590
|
+
* Fixed a bug with the filename being set in forms
|
|
591
|
+
|
|
592
|
+
=== 0.5.3
|
|
593
|
+
|
|
594
|
+
* Mechanize#click will now act on the first element of an array. So if an
|
|
595
|
+
array of links is passed to WWW::Mechanize#click, the first link is clicked.
|
|
596
|
+
That means the syntax for clicking links is shortened and still supports
|
|
597
|
+
selecting a link. The following are equivalent:
|
|
598
|
+
agent.click page.links.first
|
|
599
|
+
agent.click page.links
|
|
600
|
+
* Fixed a bug with spaces in href's and get's
|
|
601
|
+
* Added a tick, untick, and click method to radio buttons so that
|
|
602
|
+
radiobuttons can be "clicked"
|
|
603
|
+
* Added a tick, untick, and click method to check boxes so that
|
|
604
|
+
checkboxes can be "clicked"
|
|
605
|
+
* Options on Select lists can now be "tick"ed, and "untick"ed.
|
|
606
|
+
* Fixed a potential bug conflicting with rails. Thanks Eric Kolve
|
|
607
|
+
* Updated log4r support for a speed increase. Thanks Yinon Bentor
|
|
608
|
+
* Added inspect methods and pretty printing
|
|
609
|
+
|
|
610
|
+
=== 0.5.2
|
|
611
|
+
|
|
612
|
+
* Fixed a bug with input names that are nil
|
|
613
|
+
* Added a warning when using attr_finder because attr_finder will be deprecated
|
|
614
|
+
in 0.6.0 in favor of method calls. So this syntax:
|
|
615
|
+
@agent.links(:text => 'foo')
|
|
616
|
+
should be changed to this:
|
|
617
|
+
@agent.links.text('foo')
|
|
618
|
+
* Added support for selecting multiple options in select tags that support
|
|
619
|
+
multiple options. See WWW::Mechanize::MultiSelectList.
|
|
620
|
+
* New select list methods have been added, select_all, select_none.
|
|
621
|
+
* Options for select lists can now be "clicked" which toggles their selection,
|
|
622
|
+
they can be "selected" and "unselected". See WWW::Mechanize::Option
|
|
623
|
+
* Added a method to set multiple fields at the same time,
|
|
624
|
+
WWW::Mechanize::Form#set_fields. Which can be used like so:
|
|
625
|
+
form.set_fields( :foo => 'bar', :name => 'Aaron' )
|
|
626
|
+
|
|
627
|
+
=== 0.5.1
|
|
628
|
+
|
|
629
|
+
* Fixed bug with file uploads
|
|
630
|
+
* Added performance tweaks to the cookie class
|
|
631
|
+
|
|
632
|
+
=== 0.5.0
|
|
633
|
+
|
|
634
|
+
* Added pluggable parsers. (Thanks to Eric Kolve for the idea)
|
|
635
|
+
* Changed namespace so all classes are under WWW::Mechanize.
|
|
636
|
+
* Updating Forms so that fields can be used as accessors (Thanks Gregory Brown)
|
|
637
|
+
* Added WWW::Mechanize::File as default object used for unknown content types.
|
|
638
|
+
* Added 'save_as' method to Mechanize::File, so any page can be saved.
|
|
639
|
+
* Adding 'save_as' and 'load' to CookieJar so that cookies can be saved
|
|
640
|
+
between sessions.
|
|
641
|
+
* Added WWW::Mechanize::FileSaver pluggable parser to automatically save files.
|
|
642
|
+
* Added WWW::Mechanize::Page#title for page titles
|
|
643
|
+
* Added OpenSSL certificate support (Thanks Mike Dalessio)
|
|
644
|
+
* Removed support for body filters in favor of pluggable parsers.
|
|
645
|
+
* Fixed cookie bug adding a '/' when the url is missing one (Thanks Nick Dainty)
|
|
646
|
+
|
|
647
|
+
=== 0.4.7
|
|
648
|
+
|
|
649
|
+
* Fixed bug with no action in forms. Thanks to Adam Wiggins
|
|
650
|
+
* Setting a default user-agent string
|
|
651
|
+
* Added house cleaning to the cookie jar so expired cookies don't stick around.
|
|
652
|
+
* Added new method WWW::Form#field to find the first field with a given name.
|
|
653
|
+
(thanks to Gregory Brown)
|
|
654
|
+
* Added WWW::Mechanize#get_file for fetching non text/html files
|
|
655
|
+
|
|
656
|
+
=== 0.4.6
|
|
657
|
+
|
|
658
|
+
* Added support for proxies
|
|
659
|
+
* Added a uri field to WWW::Link
|
|
660
|
+
* Added a error class WWW::Mechanize::ContentTypeError
|
|
661
|
+
* Added image alt text to link text
|
|
662
|
+
* Added an visited? method to WWW::Mechanize
|
|
663
|
+
* Added Array#value= which will set the first value to the argument. That
|
|
664
|
+
allows syntax as such: form.fields.name('q').value = 'xyz'
|
|
665
|
+
Before it was like this: form.fields.name('q').first.value = 'xyz'
|
|
666
|
+
|
|
667
|
+
=== 0.4.5
|
|
668
|
+
|
|
669
|
+
* Added support for multiple values of the same name
|
|
670
|
+
* Updated build_query_string to take an array of arrays (Thanks Michal Janeczek)
|
|
671
|
+
* Added WWW::Mechanize#body_filter= so that response bodies can be preprocessed
|
|
672
|
+
* Added WWW::Page#body_filter= so that response bodies can be preprocessed
|
|
673
|
+
* Added support for more date formats in the cookie parser
|
|
674
|
+
* Fixed a bug with empty select lists
|
|
675
|
+
* Fixing a problem with cookies not handling no spaces after semicolons
|
|
676
|
+
|
|
677
|
+
=== 0.4.4
|
|
678
|
+
|
|
679
|
+
* Fixed error in method signature, basic_authetication is now basic_auth
|
|
680
|
+
* Fixed bug with encoding names in file uploads (Big thanks to Alex Young)
|
|
681
|
+
* Added options to the select list
|
|
682
|
+
|
|
683
|
+
=== 0.4.3
|
|
684
|
+
|
|
685
|
+
* Added syntactic sugar for finding things
|
|
686
|
+
* Fixed bug with HttpOnly option in cookies
|
|
687
|
+
* Fixed a bug with cookie date parsing
|
|
688
|
+
* Defaulted dropdown lists to the first element
|
|
689
|
+
* Added unit tests
|
|
690
|
+
|
|
691
|
+
=== 0.4.2
|
|
692
|
+
|
|
693
|
+
* Added support for iframes
|
|
694
|
+
* Made mechanize dependant on ruby-web rather than narf
|
|
695
|
+
* Added unit tests
|
|
696
|
+
* Fixed a bunch of warnings
|
|
697
|
+
|
|
698
|
+
=== 0.4.1
|
|
699
|
+
|
|
700
|
+
* Added support for file uploading
|
|
701
|
+
* Added support for frames (Thanks Gabriel[mailto:leerbag@googlemail.com])
|
|
702
|
+
* Added more unit tests
|
|
703
|
+
* Fixed some bugs
|
|
704
|
+
|
|
705
|
+
=== 0.4.0
|
|
706
|
+
|
|
707
|
+
* Added more unit tests
|
|
708
|
+
* Added a cookie jar with better cookie support, included expiration of cookies
|
|
709
|
+
and general cookie security.
|
|
710
|
+
* Updated mechanize to use built in net/http if ruby version is new enough.
|
|
711
|
+
* Added support for meta refresh tags
|
|
712
|
+
* Defaulted form actions to 'GET'
|
|
713
|
+
* Fixed various bugs
|
|
714
|
+
* Added more unit tests
|
|
715
|
+
* Added a response code exception
|
|
716
|
+
* Thanks to Brian Ellin (brianellin@gmail.com) for:
|
|
717
|
+
Added support for CA files, and support for 301 response codes
|
|
718
|
+
|