Ruby/AWS 0.8.0 Released

It’s been a while since a new version of Ruby/AWS was released. In fact, it’s been more than eight months since version 0.7.0 first saw the light of day. I often don’t even mention new releases here, because they’re of such limited interest.

To prove there’s still life in this old coder’s brain, however, I’ve been working on version 0.8.0 for the better part of the last week.

That work has involved my least favourite type of coding: rewriting from scratch. Specifically, the implementation of batched requests and multiple operations had become unmaintainable. I could no longer read my own code, even with plenty of comments. Worse, there were bugs that needed fixing and it was impossible to set to work for fear of introducing new gremlins.

So, there was really no way around it. I kicked a new approach around in the back of my head for a couple of days and, when I was ready to commit some time to coding, sat down at the computer, deleted the methods related to the old implementation (to prevent them from negatively influencing me) and set about reimplementing the features from scratch.

The work was quite painful, but I’d expected that, which is why the rewrite had been postponed for as long as it had. In the course of writing the new implementation and producing unit tests for it, bugs came to light that had gone undetected in the old implementation. These have now been dutifully squashed.

If you need programmatic access to Amazon’s catalogue and shopping cart facility, I urge you to look at Ruby/AWS. It’s almost two years old, maturing well and takes a lot of the headaches out of querying for Amazon’s products.

The full list of changes in 0.8.0 can be found on RAA.

Ruby/AWS 0.4.0 Released

It’s been pouring with rain here all day, so I seized the opportunity to knock out a quick release of Ruby/AWS.

Version 0.4.0 allows the user to retrieve existing shopping-carts from AWS using the new Amazon::AWS::ShoppingCart::Cart#cart_get method. I hadn’t originally implemented this method, because I considered it unnecessary in view of the fact that shopping-cart state was already maintained in Cart objects. Should these objects cease to exist, however, there was no way to resurrect the object from AWS’s servers. That has now been remedied.

This version also requests the newest version of the Amazon AWS API, namely 2008-06-26 and fixes a bug in the Amazon::AWS::ShoppingCart::Cart#cart_modify method.

As of this release of the software, I consider Ruby/AWS to be in beta. In other words, you may now consider it fit for non-critical use. It had been that way since version 0.3.0, really, but I was being cautious.

If you’re a user of the remote shopping-cart functionality, you should upgrade.

Ruby/AWS 0.3.3 Released

It’s only been a week since the release of Ruby/AWS 0.3.2, but 0.3.3 is here already.

Actually, there are almost no visible changes for the user. The only development of note is that the library is now available as a so-called gem for the RubyGems packaging system.

People have been on at me for years — basically, since RubyGems first became usable — to package my Ruby software as gems, but I’ve lacked the motivation to get to grips with a new packaging system.

It turns out that I overestimated the work involved. You can learn to create RubyGems in under an hour. The system is much less complex than building RPMs, for example. I really should have done this sooner.

Ruby/AWS 0.3.1 Released

The latest release of Ruby/AWS is out. It fixes a few bugs and improves remote shopping-carts by adding support for the Save For Later area of the cart.

Cart#modify now takes an extra parameter in order to support this new functionality. Cart#include? now checks both the active and the saved area of the cart before returning true or false, and there are two new methods, Cart#active? and Cart#saved_for_later? for checking the two areas.

Numerous bugs were fixed, too, so all users should upgrade.