$Id: NEWS,v 1.3 2004/02/01 00:11:37 ianmacd Exp $


0.3.0, 2004-01-31

- Amazon::Search::Request#search has been subdivided into #keyword_search,
  #node_search, #asin_search, #upc_search, #author_search, #power_search,
  #artist_search, #actor_search, #director_search, #manufacturer_search,
  #listmania_search and #similarity_search.
  
  Rather than passing nil parameters where arguments were irrelevant, each of
  these new methods requires only those arguments that make sense for the
  particular type of search it supports.

- New module Amazon::Search::Marketplace for Amazon Marketplace searches.

- New product class Amazon::Search::Marketplace::Product.

- New instance methods Amazon::Search::Marketplace#keyword_search and
  Amazon::Search::Marketplace#listing_search for marketplace searches.
  These return Amazon::Search::Marketplace::Response objects.

- New class methods Amazon::Search::Marketplace.keyword_searches,
  Amazon::Search::Marketplace.geos, Amazon::Search::Marketplace.sorts and
  Amazon::Search::Marketplace.indices for determining valid keyword search
  types, geos types, sort types and index types when doing a marketplace
  search.

- The international properties amazon.co.uk, amazon.de and amazon.co.jp are
  now also supported via a 3rd parameter to Amazon::Search::Request.new. A two
  letter string, 'us', 'uk', 'de' or 'jp', can be passed. Request objects
  now contain a new instance variable, @locale, to track this when performing
  searches.

- Amazon::Search::Request.new can now take a 4th argument, which is a
  user-agent to pass on to Amazon's Web Services

- New Amazon::NAME constant gives library name.

- ALL_PAGES searches are now returned more efficiently, as XML parsing
  can be deferred until Amazon::Search#parse is used.

- UPC search now accepts extra modes: classical, software, dvd, vhs,
  electronics, pc-hardware.

- Price range restrictions are now supported on relevant searches.

- Single page ALL_PAGES searches now yield a single-element array, rather than
  directly returning an Amazon::Search::Response object.

- Exception classes are now subclasses of StandardError, not RuntimeError.

- Better error-checking and exception raising all around.


0.2.0, 2004-01-22

- The Associates ID is now optional in Amazon::Search::Request.new. As such,
  it has swapped places with the developer token as the second parameter. If
  you don't have an Associates ID, don't pass the second argument to the
  method and a default ('webservices-20') value will be used instead.

- When passing an explicit page number to Amazon::Search::Request#search, you
  can now use the constant Amazon::Search::Request::ALL_PAGES as the page
  number. This will cause all pages pertaining to your search to be returned.
  This can take quite some time for non-specific searches.

- If ALL_PAGES is given, an Array of Amazon::Search::Responses will be
  returned instead of a single Amazon::Search::Response, unless your search
  returns a single page.

- Search types that logically have no use for the 'page' parameter now ignore
  it if it is specified. The searches in question are ASIN, UPC and Listmania
  searches.

- The Amazon::Search::TypeError exception class has been added to catch
  non-existent search types.

- @avgcustomerrating was not being set in Amazon::Search::Review objects.

- There are new constants Amazon::Search::Request::HEAVY,
  Amazon::Search::Request::LITE (and Amazon::Search::Request::LIGHT, just for
  the sake of correct spelling).

- Amazon::Search::Request::POWER_SEARCH is supported as a new search type.

- Ruby/Amazon now makes calls to version 3 of the Amazon Web Services API.

- The Amazon::Search::Review struct is now a real class. This was done in
  order to make its instance variables read-only, which they now are.

0.1.0, 2004-01-17

- first public release
