В "Возможно ли отсортировать список объектов в зависимости от ответа отдельного объекта на метод?", я обнаружил, что летающая тарелка не работать с булевыми.
Рассмотрим:
Ruby 1.8.7:
[true, false].sort # => undefined method `<=>' for true:TrueClass (NoMethodError)
true <=> false # => undefined method `<=>' for true:TrueClass (NoMethodError)
Ruby 1.9.3:
[true, false].sort # => comparison of TrueClass with false failed (ArgumentError)
true <=> false # => nil
true <=> true # => 0
false <=> true # => nil
Возможно, это связано с истинным и ложным, не имеющим канонического порядка сортировки, потому что это на первом месте? Но это звучит довольно слабо для меня.
Является ли это ошибкой в sort
?