YARD: документирование методов класса, добавленных включенным модулем - PullRequest
10 голосов
/ 16 января 2012

Я пишу документацию для моего драгоценного камня ruby, используя YARD .В моем геме у меня есть некоторый код, который следует этому общему шаблону ruby, где модуль включен в класс, и этот модуль не только добавляет методы экземпляра, но также добавляет методы класса:

module Moo
  def self.included(klass)
    klass.extend ClassMethods
  end

  module ClassMethods
    def hello
      puts "hello"
    end
  end
end

class Foo
  include Moo
end

Foo.hello  # => class method runs, printing "hello"

По умолчаниюYARD сгенерирует документацию для класса Foo, которая выглядит следующим образом:

Inadequate documentation of the Foo class

Я думаю, что эта документация неадекватна , поскольку она не сообщает пользователю, что Foo.hello метод доступен.Чтобы узнать о hello, пользователь должен нажать на Moo, а затем на ClassMethods.

Было бы здорово иметь список всех методов класса и экземпляра Foo наодна страница.Как я могу это сделать?Нужно ли менять код или есть тег, который я могу добавить, чтобы дать YARD подсказку о ClassMethods?

1 Ответ

7 голосов
/ 07 июля 2013

Начиная с версии 0.8.0 вы можете использовать директиву @! Parse :

class Foo
  include Moo
  # @!parse extend Moo::ClassMethods
end
...