Any more of this and I'll have to change the name

I just released version 0.9.1 of my SimplyVersioned Rails plugin.

I got a report of an incompatibility with another plugin that was trying to do some special handling of a column value that didn't quite work. To work around this I have introduced the ability to avoid versioning some columns altogether using a new parameter

simply_versioned :exclude => [:awkward_columns,:go,:here]

Excluded columns do not get serialized into the YAML storage in the Versions table.

This kind of change had already been suggested to me by Brian Smith and I've also taken his suggestions about renaming the methods in the VersionProxy. For now I've aliased them so that:

thing.versions.current_version

is also available as the, neater,

thing.versions.current

At some point in the future I will switch the methods over and delete the more cumbersome names. I'd gone with those in order to be sure of avoiding future conflicts but Brian persuaded me I was being overcautious.

Another suggestion Brian had was to change the name of the Version storage column from yaml to something like data. I think it's a good idea, especially if YAML might not always be the storage type, but it will cause breakage for little obvious benefit and I don't want to make this an option.

In many respects this plugin, simple though it is, has been a pleasure to write. I think that's in large part because of the tests. Usually once I start trying to modify code after a few weeks away I get tangled up and quickly cautious as things break. The tests meant I could come back to it and tinker with some assurance. That's made it fun to develop in response to feedback.

That said I'm not looking to add too much more to this plugin before 1.0 or I risk having to drop the Simply part of it's name!

24/01/2008 23:24 by Matt Mower | Permalink | comments:
More about: