Sortable Arrays Of Symbols In Ruby
Join the DZone community and get the full member experience.Join For Free
I got this error in my Rails app because I was trying to sort an array of symbols: undefined method `<=>' for :my_symbol:Symbol. I defined the spaceship method for the Symbol class and included the Comparable module in order to have other comparison methods available for symbols.
class Symbol include Comparable def <=>(other) self.to_s <=> other.to_s end endThis lets me do things like the following:
irb(main):007:0> [:c, :a, :d, :b, :e].sort => [:a, :b, :c, :d, :e]
Opinions expressed by DZone contributors are their own.