I was just :+1: the idea that this cuts things in half.

From a design perspective, I'd like to see a class method on `Version` like:

```ruby
def coerce(obj)
  if obj.is_a?(self.class)
    obj
  else
    self.class.new(obj.to_s)
  end
```

That seems easily testable as it's own unit of code. Then you can just assert that `Version.should_receive(:coerce).with('...')`