Подтвердить что ты не робот

YARD: документирование методов класса, добавленных включенным модулем

Я пишу документацию для своего рубинового драгоценного камня, используя 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?

4b9b3361

Ответ 1

Так как v0.8.0 вы можете использовать директиву @! parse:

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