Let's make this a hyperlink while we're at it.
Started updating the specs to indicate some of the issues with comparisons that currently exist in version.rb.
Added one more (failing) test.
Use proper Module/Class syntax, so we can instantiate new instances without using the fully qualified class name (which we already assumed we could :)
Simple is beautiful. The result of a comparison is already a boolean expression, so this was able to be shortened a bit more.
Fixed some errors in the spec. (wrong understanding on my part as to how <=> works…)
Better error handling when an invalid semantic version number is given.
Rearranged slightly, to have the "greater than" case first. Also reverted the logic for the "a.nil? and not b.nil?" stuff a bit; 1.5.9-pre is semantically lower than 1.5.9, so nil is in this case higher than non-nil.
Updated the specs to actually work again + refactored them a bit to be easier to maintain.
Added one more test case for a bug that we discovered while reviewing the code internally.
Need to dup the objects before resetting the build, so that we don't modify the state of the objects we are comparing...
Peer review: Doh, tap returns the original self (and we didn't return v.dup anyway), so that version did not work AT ALL. :) Rewrote that part to be much more simple an inherently maintainable.