Hello All.
I have class with some fields
class Human
attr_accessor :sex, :age, :second_name, :first_name
end
now I want to sort objects of this class. I've defined
operator <=>
class Human
def <=>(other)
[sex, age, second_name, first_name] <=> [sex, age,
second_name,
first_name]
end
end
Looks good, yeah? But! If I use third-party complex
comparator for some of
the fields, I receive something like:
def <=> (other)
res = ComplexCustomComparator.compare(sex, other.sex)
return res if res != 0
#if they have the same sex, do other comparisons
end
Foooooo!
How can I do the former in more elegant way?
Thanks.
Victor.
|