В вашем случае bar_private
и bar_public_2
являются частными.
Это связано с тем, что оба метода находятся в области действия ключевого слова private
.
> f = Foo.new
#<Foo:0xf1c770>
> Foo.new.bar_private
NoMethodError: private method 'bar_private' called for #<Foo:0xf1c770>
> Foo.new.bar_public_2
NoMethodError: private method 'bar_public_2' called for #<Foo:0xf1c770>
В любом случае, лучший способ ответить на ваш вопрос - открыть IRB и попробовать его; -)