Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
class EntryStatus
include Comparable
class NotValidEntryStatus < StandardError; end
OPTIONS = {
weather: %w(Sunny Rainy Windy Dry),
landform: %w(Beach Cliff Desert Flat)
}
attr_reader :weather, :landform
def initialize(weather, landform)
@weather, @landform = weather, landform
end
def <=>(other)
weather == other.weather && landform == other.landform
end
end

shouldn't the <=> method return a -1, 0, or 1 instead of true or false?

btw, thank you for the great article!

jfnixon commented Dec 22, 2016

Yeah, you must implement <=> for Comparable, but there is no obvious sort order for EntryStatus instances to determine whether to return 1 or -1. If you try to sort EntryStatus instances, there might be problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment