Avg Release Cycle
294 days ago
- 🔄 Changed main parser to use hpricot
- Made WWW::Mechanize::Page class searchable like hpricot
- ⚡️ Updated WWW::Mechanize#click to support hpricot links like this: @agent.click (page/"a").first
- Clicking a Frame is now possible: @agent.click (page/"frame").first
- ✂ Removed deprecated attr_finder
- ✂ Removed REXML helper methods since the main parser is now hpricot
- 📜 Overhauled cookie parser to use WEBrick::Cookie
- ➕ Added WWW::Mechanize#trasact for saving history state between in a transaction. See the EXAMPLES file. Thanks Johan Kiviniemi.
- ➕ Added support for gzip compressed pages
- Forms can now be accessed like a hash. For example, to set the value of an input field named 'name' to "Aaron", you can do this: form['name'] = "Aaron" Or to get the value of a field named 'name', do this: puts form['name']
- File uploads will now read the file specified in FileUpload#file_name
- FileUpload can use an IO object in FileUpload#file_data
- 🛠 Fixed a bug with saving files on windows
- 🛠 Fixed a bug with the filename being set in forms
- Mechanize#click will now act on the first element of an array. So if an array of links is passed to WWW::Mechanize#click, the first link is clicked. That means the syntax for clicking links is shortened and still supports selecting a link. The following are equivalent: agent.click page.links.first agent.click page.links
- 🛠 Fixed a bug with spaces in href's and get's
- ➕ Added a tick, untick, and click method to radio buttons so that radiobuttons can be "clicked"
- ➕ Added a tick, untick, and click method to check boxes so that checkboxes can be "clicked"
- Options on Select lists can now be "tick"ed, and "untick"ed.
- 🛠 Fixed a potential bug conflicting with rails. Thanks Eric Kolve
- ⚡️ Updated log4r support for a speed increase. Thanks Yinon Bentor
- ➕ Added inspect methods and pretty printing
- 🛠 Fixed a bug with input names that are nil
- Added a warning when using attr_finder because attr_finder will be deprecated in 0.6.0 in favor of method calls. So this syntax: @agent.links(:text => 'foo') should be changed to this: @agent.links.text('foo')
- ➕ Added support for selecting multiple options in select tags that support multiple options. See WWW::Mechanize::MultiSelectList.
- New select list methods have been added, select_all, select_none.
- Options for select lists can now be "clicked" which toggles their selection, they can be "selected" and "unselected". See WWW::Mechanize::Option
- ➕ Added a method to set multiple fields at the same time, WWW::Mechanize::Form#set_fields. Which can be used like so: form.set_fields( :foo => 'bar', :name => 'Aaron' )
- 🛠 Fixed bug with file uploads
- ➕ Added performance tweaks to the cookie class
- ➕ Added pluggable parsers. (Thanks to Eric Kolve for the idea)
- 🔄 Changed namespace so all classes are under WWW::Mechanize.
- ⚡️ Updating Forms so that fields can be used as accessors (Thanks Gregory Brown)
- ➕ Added WWW::Mechanize::File as default object used for unknown content types.
- ➕ Added 'save_as' method to Mechanize::File, so any page can be saved.
- ➕ Adding 'save_as' and 'load' to CookieJar so that cookies can be saved between sessions.
- ➕ Added WWW::Mechanize::FileSaver pluggable parser to automatically save files.
- ➕ Added WWW::Mechanize::Page#title for page titles
- ➕ Added OpenSSL certificate support (Thanks Mike Dalessio)
- ✂ Removed support for body filters in favor of pluggable parsers.
- 🛠 Fixed cookie bug adding a '/' when the url is missing one (Thanks Nick Dainty)
- 🛠 Fixed bug with no action in forms. Thanks to Adam Wiggins
- 0️⃣ Setting a default user-agent string
- ➕ Added house cleaning to the cookie jar so expired cookies don't stick around.
- ➕ Added new method WWW::Form#field to find the first field with a given name. (thanks to Gregory Brown)
- ➕ Added WWW::Mechanize#get_file for fetching non text/html files
- ➕ Added support for proxies
- ➕ Added a uri field to WWW::Link
- ➕ Added a error class WWW::Mechanize::ContentTypeError
- ➕ Added image alt text to link text
- ➕ Added an visited? method to WWW::Mechanize
- ➕ Added Array#value= which will set the first value to the argument. That allows syntax as such: form.fields.name('q').value = 'xyz' Before it was like this: form.fields.name('q').first.value = 'xyz'
- ➕ Added support for multiple values of the same name
- Updated build_query_string to take an array of arrays (Thanks Michal Janeczek)
- ➕ Added WWW::Mechanize#body_filter= so that response bodies can be preprocessed
- ➕ Added WWW::Page#body_filter= so that response bodies can be preprocessed
- ➕ Added support for more date formats in the cookie parser
- 🛠 Fixed a bug with empty select lists
- 🛠 Fixing a problem with cookies not handling no spaces after semicolons
- Fixed error in method signature, basic_authetication is now basic_auth
- 🛠 Fixed bug with encoding names in file uploads (Big thanks to Alex Young)
- ➕ Added options to the select list