Вот часть моего Note
класс:
class Note
attr_accessor :semitones, :letter, :accidental
def initialize(semitones, letter, accidental = :n)
@semitones, @letter, @accidental = semitones, letter, accidental
end
def <=>(other)
@semitones <=> other.semitones
end
def ==(other)
@semitones == other.semitones
end
def >(other)
@semitones > other.semitones
end
def <(other)
@semitones < other.semitones
end
end
Это кажется мне, любят должен быть модуль, который я мог включать, который мог дать мне мои операторы равенства и операторы сравнения на основе моего <=>
метод. Есть ли один?
Я предполагаю, что много людей сталкивается с этим видом проблемы. Как Вы обычно решаете его? (Как Вы делаете это DRY?)
Да, просто включите Comparable
- единственное требование - чтобы был определен метод spaceship <=>
.