Я пишу небольшую жемчужину и хочу определить метод, подобный DSL, почти такой же, как desc
и task
методы в Rake .
Rake определяет их как частные методы в модуле Rake :: DSL
, а затем
self.extend Rake::DSL
для микширования модуль в основной объект? (Я новичок и смейтесь, если я ошибаюсь)
каковы преимущества этого? это потому, что закрытие этих методов может помешать другим объектам использовать их (то есть предотвратить что-то вроде some_obj.desc
)?
что, если я определю методы в Kernel
module Kernel
private
include Rake::DSL
end
] Есть ли разница?