Я понимаю, что в ruby функции модуля могут быть доступны без смешивания модуля с помощью module_function
, как показано здесь. Я вижу, насколько это полезно, так что вы можете использовать функцию, не смешивая модуль.
module MyModule
def do_something
puts "hello world"
end
module_function :do_something
end
Мой вопрос заключается в том, почему вы можете захотеть, чтобы функция была определена обоими этими способами.
Почему бы просто не
def MyModule.do_something
ИЛИ
def do_something
В каких случаях было бы полезно иметь функцию, доступную для смешивания или использования в качестве статического метода?