== is equality of value. Typically overridden in subclasses to provide class specific meaning.

=== is the same as == but usually overridden in subclasses for use in case statements (Range, Regex, Proc).

eql? is equality of value and type.

equal? is pointer comparison (hash). true only for the same object.

For more examples visit here