Можно ли изменить видимость метода?

Видимость методов меняется с помощью private, protected и public. Будучи употреблены без параметров, они меняют видимость последующих методов. С параметрами они меняют видимость указанных методов:

  class Foo
    def test
      print "hello
"

    end
    private :test
  end

  foo = Foo.new
  foo.test          #=> error: test is private

Метод класса можно сделать private с помощью using private_class_method:

  class Foo
    def Foo.test
      print "hello
"

    end
    private_class_method :test
  end

  Foo.test            #=> error: Foo.test is private

Видимость метода по умолчанию - это public. Исключением является метод инициализации объекта initialize. Методы, определенные вне класса - public.

Вход для пользователей