1. 26

  2. 2

    I always thought it was odd that a Ruby object can call another object’s protected methods if they are of the same class, mostly because I couldn’t think of a circumstance where this would be a desirable behavior. The example in the article of using this behavior while implementing equality operators is something I hadn’t thought of.

    1. 3

      That’s pretty much the only use case I can think of. Even then, I implement equality operators so infrequently that I’ll forget!

      1. 3

        It’s useful for any kind of comparison (<, >, <=>, ==, ===). I only use protected for methods that are used in comparison (most commonly, accessors).