Как присвоить только одному методу значение private в Ruby?

#ruby-on-rails #oop #class

#ruby #класс #ооп

Вопрос:

У меня есть класс с N методами. Я хочу присвоить одному из этих методов значение private. Как я могу это сделать?

Ответ №1:

  class Example
    def methodA
    end

    def methodP
    end

    private :methodP
  end
  

Ответ №2:

Мне нравится этот способ:

 class Example
    def public_method1
    end

    private def used_by_public_method1
    end

    def public_method2
    end
end
  

Другой вариант (который я нахожу более запутанным):

 class Example
    def public_method1
    end

    def public_method2
    end

    private

    def used_by_public_method1
    end

    # Don't accidentally put public methods down here.
end