Resolving Cucumber step ambiguities

Following the latest campaign against imperative Cucumber stories in favour of declarative stories (see especially Dan North’s great article on domain languages), I’ve been trying to get more naturalistic language into my stories. However, it becomes very easy to run into step ambiguities, something that Cucumber can try to handle on its own with --guess, but that I’d rather just resolve for it instead.
Continue reading “Resolving Cucumber step ambiguities”

Always define controller action methods in Rails 3

This morning was spent puzzling over a strange hard-to-reproduce Cucumber test failure in a project I have been upgrading from Rails 2.3.x to 3.0.3. It was only occurring after certain steps had been taken in previous Scenarios, and not when the failing Scenario was run on its own.

The solution was to explicitly define the controller action’s method in the controller. So the question to the world is: what changed, ActionController or something in the Cucumber chain?

Uploading directly to Amazon S3 from a Rails application

The use cases for Superhug are heavy on uploading and downloading large(ish) files. Rails itself isn’t so well suited to this sort of task, and it’s best to keep state away from application servers wherever possible. We chose to use Amazon S3 and CloudFront to bypass Rails for all of the uploading, downloading and image processing grunt work. This is a rundown of the approach we took.
Continue reading “Uploading directly to Amazon S3 from a Rails application”