Вызов метода защищенного класса из метода экземпляра в Ruby

У меня была эта беспокоящая повторяющаяся тема; позвольте мне просто сказать, что у меня есть класс, который определяет метод экземпляра и метод защищенного класса. Метод экземпляра должен вызывать метод класса. Чтобы сделать это, мне нужно нарушить правило видимости и использовать опасный «отправить». функция. Что-то вроде этого:

class Bang
    def instance_bang
      self.class.send(:class_band)
    end

    protected
    def self.class_bang
      puts "bang"
    end
end

Я нахожу это ужасным, поскольку метод класса должен использоваться внутри области видимости класса, поэтому должен оставаться видимым и вызываться внутри него, верно? Существует ли альтернативный способ использования методов класса в методах экземпляра, при котором необходимо полагаться на «отправить»? функция и, следовательно, не нарушать видимость?

ОБНОВИТЬ:

Следуя ответу Серджио Туленцева (спасибо за исправление), я обновлю свою озабоченность фрагментом кода, который суммирует мои опасения по поводу видимости метода, принимаемого во внимание, в то же время находясь внутри области, где он был определен.

class Bang
  def instance_bang
    private_bang = 1
    self.private_bang(private_bang)
  end
  private
  def private_bang(p)
    puts "bang"
    p
  end
end

Вызов Bang.new.instance_bang вызовет исключение, если вы не используете send для этого вызова private_bang (на этот раз я проверил это :)).

Ответы на вопрос(3)

Ваш ответ на вопрос