Could potentially do this with a mixin rather than inheritance.

```
module VersionFormatter
  def version_message(spec)
    # ...
  end
end
```

Then include it rather than changing the inheritance heirachy. I'll admit I do tend to be overly allergic to inheritance though.