Mechanize v2.0 Release Notes
Release Date: 2011-06-27 // almost 13 years ago-
Mechanize is now under the MIT license
API changes
- WWW::Mechanize has been removed. Use Mechanize.
- Pre connect hooks are now called with the agent and the request. See Mechanize#pre_connect_hooks.
- Post connect hooks are now called with the agent and the response. See Mechanize#post_connect_hooks.
- Mechanize::Chain is gone, as an internal API this should cause no problems.
- Mechanize#fetch_page no longer accepts an options Hash.
- Mechanize#put now accepts headers instead of an options Hash as the last argument
- Mechanize#delete now accepts headers instead of an options Hash as the last argument
- Mechanize#request_with_entity now accepts headers instead of an options Hash as the last argument
- Mechanize no longer raises RuntimeError directly, Mechanize::Error or ArgumentError are raised instead.
- The User-Agent header has changed. It no longer includes the WWW- prefix and now includes the ruby version. The URL has been updated as well.
- Mechanize now requires ruby 1.8.7 or newer.
- Hpricot support has been removed as webrobots requires nokogiri.
- Mechanize#get no longer accepts the referer as the second argument.
- Mechanize#get no longer allows the HTTP method to be changed (:verb option).
- Mechanize::Page::Meta is now Mechanize::Page::MetaRefresh to accurately depict its responsibilities.
- Mechanize::Page#meta is now Mechanize::Page#meta_refresh as it only contains meta elements with http-equiv of "refresh"
- Mechanize::Page#charset is now Mechanize::Page::charset. GH #112, patch by Godfrey Chan.
🗄 Deprecations
- Mechanize#get with an options hash is deprecated and will be removed after October, 2011.
- Mechanize::Util::to_native_charset is deprecated as it is no longer used by Mechanize.
🆕 New Features
- Add header reference methods to Mechanize::File so that a reponse object gets compatible with Net::HTTPResponse.
- Mechanize#click accepts a regexp or string to click a button/link in the current page. It works as expected when not passed a string or regexp.
- Provide a way to only follow permanent redirects (301) automatically: agent.redirect_ok = :permanent GH #73
- Mechanize now supports HTML5 meta charset. GH #113
- Documented various Mechanize accessors. GH #66
- Mechanize now uses net-http-digest_auth. GH #31
- Mechanize now implements session cookies. GH #78
- Mechanize now implements deflate decoding. GH #40
- Mechanize now allows a certificate and key to be passed directly. GH #71
- Mechanize::Form::MultiSelectList now implements #option_with and #options_with. GH #42
- Add Mechanize::Page::Link#rel and #rel?(kind) to read and test the rel attribute.
- Add Mechanize::Page#canonical_uri to read a tag.
- Add support for Robots Exclusion Protocol (i.e. robots.txt) and nofollow/noindex in meta tags and the rel attribute. Automatic exclusion can be turned on by setting: agent.robots = true
- Manual robots.txt test can be performed with Mechanize#robots_allowed? and #robots_disallowed?.
- Mechanize::Form now supports the accept-charset attribute. GH #96
- Mechanize::ResponseReadError is raised if there is an exception while reading the response body. This allows recovery from broken HTTP servers (or connections). GH #90
- Mechanize#follow_meta_refresh set to :anywhere will follow meta refresh found outside of a document's head. GH #99
- Add support for HTML5's rel="noreferrer" attribute which indicates no "Referer" information should be sent when following the link.
- A frame will now load its content when #content is called. GH #111
- Added Mechanize#default_encoding to provide a default for pages with no encoding specified. GH #104
- Added Mechanize#force_default_encoding which only uses Mechanize#default_encoding for parsing HTML. GH #104
🐛 Bug Fixes:
- Fixed a bug where Referer is not sent when accessing a relative URI starting with "http".
- Fix handling of Meta Refresh with relative paths. GH #39
- Mechanize::CookieJar now supports RFC 2109 correctly. GH #85
- Fixed typo in EXAMPLES.rdoc. GH #74
- The base element is now handled correctly for images. GH #72
- Image buttons with no name attribute are now included in the form's button list. GH#56
- Improved handling of non ASCII-7bit compatible characters in links (only an issue on ruby 1.8). GH #36, GH #75
- Loading cookies.txt is faster. GH #38
- Mechanize no longer sends cookies for a.b.example to axb.example. GH #41
- Mechanize no longer sends the button name as a form field for image buttons. GH #45
- Blank cookie values are now skipped. GH #80
- Mechanize now adds a '.' to cookie domains if no '.' was sent. This is not allowed by RFC 2109 but does appear in RFC 2965. GH #86
- file URIs are now read in binary mode. GH #83
- Content-Encoding: x-gzip is now treated like gzip per RFC 2616.
- Mechanize now unescapes URIs for meta refresh. GH #68
- Mechanize now has more robust HTML charset detection. GH #43
- Mechanize::Form::Textarea is now created from a textarea element. GH #94
- A meta content-type now overrides the HTTP content type. GH #114
- Mechanize::Page::Link#uri now handles both escaped and unescaped hrefs. GH #107