In Ruby le parole public, private e protected indicano la visibilità dei metodi all’esterno della classe (o del modulo) in cui sono creati.
Public
Il metodo è sempre visibile. Questo è il comportamento di default di tutti i metodi (eccetto initialize che è sempre privato).
Protected
Il metodo è visibile solo all’interno della classe di definizione o di classi derivate.
Private
Il metodo non può essere chiamato con un ricevitore esplicito che è sempre self. Questo significa che i metodi privati possono essere richiamati solo nel contesto dell’oggetto corrente e non è possibile invocare un metodo privato di un altro oggetto.