Make protected documentation more explicit about differences #13849
+45
−14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Protected is a somewhat common source of confusion for devs coming from different languages to Ruby. In languages like Java or TypeScript, it grants access to subclasses for methods.
This is not what it does in Ruby, but it may not be immediately obvious to new developers. If you mark a method as protected because you want subclasses to have access to it, you may never notice the mistake since subclasses already have access to all methods coming from parent classes, including private ones.
I tried to make this aspect of Ruby very explicit in the documentation, in hopes of making it more discoverable and clearer to new developers.