--- self <=> other

    self  other Ӥơ
    self  other λ¹ǤȤ -1
    ƱΥ饹⥸塼ΤȤ 0
    self  other ĤǤȤ 1
    ֤ޤ

    ƻҴطˤʤ饹ƱΤӤǤϤưǤ
    other 饹⥸塼Ǥʤ㳰 TypeError 
    ȯޤ
        module Foo
        end
        class Bar
          include Foo
        end
        class Baz < Bar
        end
        class Qux
        end
        p Bar <=> Foo     # => -1
        p Baz <=> Bar     # => -1
        p Baz <=> Foo     # => -1
        p Baz <=> Qux     # => 1   (version 1.7 Ǥ nil, 1.8 Ǥ -1)
        p Qux <=> Baz     # => 1   (version 1.7 Ǥ nil, 1.8 Ǥ -1)

        p Baz <=> Object.new  # => :in `<=>': <=> requires Class or Module (Object given) (TypeError)
                              # (version 1.8 Ǥ nil)

