It would nice if we could the following. Then the middle portion of the Comparable method would not be needed. But I fear it might break others code.

  module Comparable

   def <=>(other)
     comparability.each do |field|
       cmp = send(field) <=> other.send(field); return cmp unless cmp == 0
     end
   end

 end