Как я понимаю, классы ruby, они почти такие же, как и модули, кроме как с добавленной функциональностью возможности его создания. Поскольку Class
наследует от Module
, я предположил, что тогда каждый класс (объекты класса Class
) будет иметь доступ к module_function
, но, похоже, это не так. Когда я сделал разницу модуля и private_instance_methods класса, я обнаружил, что Module
имеет 3 метод более Class
- [:append_features, :extend_object, :module_function]
module_function для Ruby Class
Как были эти функции удалены из цепочки вызовов для объектов класса и, что более важно, почему?
В Ruby 2.0+ есть еще два: [: prepend_features] (http://ruby-doc.org/core-2.1.0/Module.html#method-i-prepend_features) и [: уточнить] (http://ruby-doc.org/core-2.1.0/Module.html#method-i-refine). –