Я собираюсь попытаться суммировать различные ответы самостоятельно, поскольку у каждого есть что-то ценное, чтобы сказать, но никто не дошел до того, что я теперь понимаю, вероятно, лучший ответ:
Я задавал неправильный вопрос, потому что я делал это неправильно.
По причинам, которые я больше не могу объяснить, я хотел, чтобы в библиотеке был набор полностью автономных функций, представляющих методы, которые я пытался СУХОЙ из своих классов. Этого можно достичь, используя такие вещи, как
module Foo
def self.method_one
end
def Foo.method_two
end
class << self
def method_three
end
end
def method_four
end
module_function :method_four
end
Я мог бы также include
мой модуль, либо внутри класса, в этом случае методы становятся частью класса, либо вне его, и в этом случае они определяются в любом классе, внутри которого я работаю (Object? Kernel? Irb , если я интерактивен? Наверное, не очень хорошая идея, тогда)
Дело в том, что не было никакой веской причины не начинать занятия - я как-то попал на ход мыслей, которые привели меня по редко используемой и откровенно немного странной ветке. Вероятно, воспоминание о днях до того, как ОО стало мейнстримом (я достаточно взрослый, чтобы до сегодняшнего дня я потратил гораздо больше лет на написание процедурного кода).
Таким образом, функции переместились в класс, где они кажутся довольно счастливыми, и представленные таким образом методы класса активно используются там, где это необходимо.