CHANGELOG.rdoc

Path: CHANGELOG.rdoc
Last Update: Mon Mar 15 10:37:16 -0600 2010

Mechanize CHANGELOG

HEAD

  • Bug Fixes:
    • Do not apply encoding if encoding equals ‘none’ Thanks Akinori MUSHA!
    • Custom request headers may be supplied WWW::Mechanize#request_headers RF 24516
    • HTML Parser may be set on a per instance level WWW::Mechanize#html_parser RF 24693
    • Fixed string encoding in ruby 1.9. RF 2433
    • Rescuing Zlib::DataErrors (Thanks Kelley Reynolds)
    • Fixing a problem with frozen SSL objects. RF 24950
    • Do not send a referer on meta refresh. RF 24945
    • Fixed a bug with double semi-colons in Content-Disposition headers
    • Properly handling cookies that specify a path. RF 25259

0.9.2 / 2009/03/05

  • New Features:
    • Mechanize#submit and Form#submit take arbitrary headers(thanks penguincoder)
  • Bug Fixes:
    • Fixed a bug with bad cookie parsing
    • Form::RadioButton#click unchecks other buttons (RF 24159)
    • Fixed problems with Iconv (RF 24190, RF 24192, RF 24043)
    • POST parameters should be CGI escaped
    • Made Content-Type match case insensitive (Thanks Kelly Reynolds)
    • Non-string form parameters work

0.9.1 2009/02/23

  • New Features:
    • Encoding may be specified for a page: Page#encoding=
  • Bug Fixes:
    • m17n fixes. ありがとう konn!
    • Fixed a problem with base tags. ありがとう Keisuke
    • HEAD requests do not record in the history
    • Default encoding to ISO-8859-1 instead of ASCII
    • Requests with URI instances should not be polluted RF 23472
    • Nonce count fixed for digest auth requests. Thanks Adrian Slapa!
    • Fixed a referer issue with requests using a uri. RF 23472
    • WAP content types will now be parsed
    • Rescued poorly formatted cookies. Thanks Kelley Reynolds!

0.9.0

  • Deprecations
    • WWW::Mechanize::List is gone!
    • Mechanize uses Nokogiri as it‘s HTML parser but you may switch to Hpricot by using WWW::Mechanize.html_parser = Hpricot
  • Bug Fixes:
    • Nil check on page when base tag is used 23021

0.8.5

  • Deprecations
    • WWW::Mechanize::List will be deprecated in 0.9.0, and warnings have been added to help you upgrade.
  • Bug Fixes:
    • Stopped raising EOF exceptions on HEAD requests. ありがとう:HIRAKU Kuroda
    • Fixed exceptions when a logger is set and file:// requests are made.
    • Made Mechanize 1.9 compatible
    • Not setting the port in the host header for SSL sites.
    • Following refresh headers. Thanks Tim Connor!
    • Cookie Jar handles cookie domains containing ports, like ‘mydomain.com:443’ (Thanks Michal Ochman!)
    • Fixing strange uri escaping problems [22604]
    • Making content-type determintation more robust. (thanks Han Holl!)
    • Dealing with links that are query string only. [22402]
    • Nokogiri may be dropped in as a replacement.
        WWW::Mechanize.html_parser = Nokogiri::HTML
      
    • Making sure the correct page is added to the history on meta refresh. [22708]
    • Mechanize#get requests no longer send a referer unless they are relative requests.

0.8.4

  • Bug Fixes:
    • Setting the port number on the host header.
    • Fixing Authorization headers for picky servers

0.8.3

  • Bug Fixes:
    • Making sure logger is set during SSL connections.

0.8.2

  • Bug Fixes:
    • Doh! I was accidentally setting headers twice.

0.8.1

  • Bug Fixes:
    • Fixed problem with nil pointer when logger is set

0.8.0

  • New Features:
    • Lifecycle hooks. Mechanize#pre_connect_hooks, Mechanize#post_connect_hooks
    • file:/// urls are now supported
    • Added Mechanize::Page#link_with, frame_with for searching for links using criteria.
    • Implementing PUT, DELETE, and HEAD requests
  • Bug Fixes:
    • Fixed an infinite loop when content-length and body length don‘t match.
    • Only setting headers once
    • Adding IIS authentication support

0.7.8

  • Bug Fixes:
    • Fixed bug when receiving a 304 response (HTTPNotModified) on a page not cached in history.
    • 21428 Default to HTML parser for ‘application/xhtml+xml’ content-type.
    • Fixed an issue where redirects were resending posted data

0.7.7

  • New Features:
    • Page#form_with takes a criteria hash.
    • Page#form is changed to Page#form_with
    • Mechanize#get takes custom http headers. Thanks Mike Dalessio!
    • Form#click_button submits a form defaulting to the current button.
    • Form#set_fields now takes a hash. Thanks Tobi!
    • Mechanize#redirection_limit= for setting the max number of redirects.
  • Bug Fixes:
    • Added more examples. Thanks Robert Jackson.
    • 20480 Making sure the Host header is set.
    • 20672 Making sure cookies with weird semicolons work.
    • Fixed bug with percent signs in urls. d.hatena.ne.jp/kitamomonga/20080410/ruby_mechanize_percent_url_bug
    • 21132 Not checking for EOF errors on redirect
    • Fixed a weird gzipping error.
    • 21233 Smarter multipart boundry. Thanks Todd Willey!
    • 20097 Supporting meta tag cookies.

0.7.6

0.7.5

  • Fixed a bug when fetching files and not pages. Thanks Mat Schaffer!

0.7.4

  • doh!

0.7.3

  • Pages are now yielded to a blocks given to WWW::Mechanize#get
  • WWW::Mechanize#get now takes hash arguments for uri parameters.
  • WWW::Mechanize#post takes an IO object as a parameter and posts correctly.
  • Fixing a strange zlib inflate problem on windows

0.7.2

  • Handling gzipped responses with no Content-Length header

0.7.1

  • Added iPhone to the user agent aliases. [17572]
  • Fixed a bug with EOF errors in net/http. [17570]
  • Handling 0 length gzipped responses. [17471]

0.7.0

  • Removed Ruby 1.8.2 support
  • Changed parser to lazily parse links
  • Lazily parsing document
  • Adding verify_callback for SSL requests. Thanks Mike Dalessio!
  • Fixed a bug with Accept-Language header. Thanks Bill Siggelkow.

0.6.11

0.6.10

0.6.9

0.6.8

  • Keep alive can be shut off now with WWW::Mechanize#keep_alive
  • Conditional requests can be shut off with WWW::Mechanize#conditional_requests
  • Monkey patched Net::HTTP#keep_alive?
  • [9877] Moved last request time. Thanks Max Stepanov
  • Added WWW::Mechanize::File#save
  • Defaulting file name to URI or Content-Disposition
  • Updating compatability with hpricot
  • Added more unit tests

0.6.7

  • Fixed a bug with keep-alive requests
  • [9549] fixed problem with cookie paths

0.6.6

  • Removing hpricot overrides
  • Fixed a bug where alt text can be nil. Thanks Yannick!
  • Unparseable expiration dates in cookies are now treated as session cookies
  • Caching connections
  • Requests now default to keep alive
  • [9434] Fixed bug where html entities weren‘t decoded
  • [9150] Updated mechanize history to deal with redirects

0.6.5

0.6.4

0.6.3

0.6.2

0.6.1

0.6.0

  • 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

0.5.4

  • 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

0.5.3

  • 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

0.5.2

  • 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' )
    

0.5.1

  • Fixed bug with file uploads
  • Added performance tweaks to the cookie class

0.5.0

  • 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)

0.4.7

  • Fixed bug with no action in forms. Thanks to Adam Wiggins
  • 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

0.4.6

  • 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‘

0.4.5

  • 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

0.4.4

  • 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

0.4.3

  • Added syntactic sugar for finding things
  • Fixed bug with HttpOnly option in cookies
  • Fixed a bug with cookie date parsing
  • Defaulted dropdown lists to the first element
  • Added unit tests

0.4.2

  • Added support for iframes
  • Made mechanize dependant on ruby-web rather than narf
  • Added unit tests
  • Fixed a bunch of warnings

0.4.1

  • Added support for file uploading
  • Added support for frames (Thanks Gabriel)
  • Added more unit tests
  • Fixed some bugs

0.4.0

  • Added more unit tests
  • Added a cookie jar with better cookie support, included expiration of cookies and general cookie security.
  • Updated mechanize to use built in net/http if ruby version is new enough.
  • Added support for meta refresh tags
  • Defaulted form actions to ‘GET‘
  • Fixed various bugs
  • Added more unit tests
  • Added a response code exception
  • Thanks to Brian Ellin (brianellin@gmail.com) for: Added support for CA files, and support for 301 response codes

[Validate]