способы определения глобального метода в ruby ​​

Я пишу небольшую жемчужину и хочу определить метод, подобный DSL, почти такой же, как desc и task методы в Rake .

Rake определяет их как частные методы в модуле Rake :: DSL , а затем

self.extend Rake::DSL

для микширования модуль в основной объект? (Я новичок и смейтесь, если я ошибаюсь)

каковы преимущества этого? это потому, что закрытие этих методов может помешать другим объектам использовать их (то есть предотвратить что-то вроде some_obj.desc )?

что, если я определю методы в Kernel

module Kernel
  private

  include Rake::DSL
end

] Есть ли разница?

7
задан caf 27 August 2011 в 12:47
поделиться