Skip to content

Instantly share code, notes, and snippets.

Embed
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
@jakeonrails

This comment has been minimized.

Copy link

commented Dec 16, 2016

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

@jakeonrails

This comment has been minimized.

Copy link

commented Dec 16, 2016

btw, thank you for the great article!

@jfnixon

This comment has been minimized.

Copy link

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
You can’t perform that action at this time.