(StackOverflow говорит мне, что этот вопрос «субъективен и, скорее всего, будет закрыт»… ну, я все равно попробую)
Я пишу несколько вспомогательных методов (для пакета TextMate), и я хотел бы (и мне нужно), чтобы они аккуратно помещались в пространство имен.
Эти методы на самом деле являются просто функциями, то есть они не работают ни с чем вне их собственной области видимости и, таким образом, на самом деле не принадлежат к классу. Там нет ничего, что нуждается в реализации.
Пока я занимаюсь этим, и это прекрасно работает
module Helpers::Foo
module_function
def bar
# ...
end
end
Helpers::Foo.bar # this is how I'd like to call the method/function
Но было бы лучше:
1. Пропустите module_function
и объявите методы / функции как self.*
?
2. Или было бы лучше объявить класс вместо модуля?
3. Или использовать class << self
(внутри модуля или класса)?
4. Или что-то еще целиком?
Я понимаю, что это довольно открытый вопрос, но я просто хочу услышать, что делают люди.