YARD: пользовательская пара получения / установки документа, например, attr_accessor - PullRequest
5 голосов
/ 28 сентября 2011

Я использую YARD для документирования своего проекта.Атрибуты документов YARD, созданные с помощью

attr_accessor :some_attribute

в отдельном разделе «Сводка атрибутов экземпляра».теперь у меня есть другой атрибут, но с пользовательским сеттером и геттером

def some_other_attribute
  ...
end

def some_other_attribute= value
  ...
end

, поэтому в основном мой вопрос, как я могу получить YARD для документирования этой пары сеттера / геттера, как attr_accessor в предыдущем случае,и список some_other_attribute в «Сводке атрибутов экземпляра»?

Ответы [ 2 ]

5 голосов
/ 27 апреля 2012

Начиная с версии 0.8 (которая сейчас находится в предварительной версии), директива @!attribute является рекомендуемым способом обозначения объекта как атрибута. Теги @attr_* устарели в пользу этой директивы. Вы также можете сделать (в 0.8.0 +):

# @!parse attr_accessor :some_attribute

Для анализа кода, который не обязательно выполняется Ruby. До версии 0.8 вы могли просто добавить attr_accessor напрямую, а затем переопределить метод установки / получения следующим образом:

class MyClass
  attr_accessor :foo
  def foo; something_else end
  def foo=(v) something_else(v) end
end

Ruby не должен возражать, за исключением того, что в ruby -w он будет предупреждать о переопределениях методов. Если это вас не устраивает, вы можете добавить туда undef foo, foo=. Это немного грязно (если вас волнует -w), поэтому мы добавили такие вещи, как @!parse и @!attribute.

1 голос
/ 06 октября 2011

Вы должны иметь возможность использовать тег @attr в классе:

# @attr [String] name The name of this object. 
class MyClass
  def name
  end
  def name=
  end
end

Существуют и другие теги (например, @attr_reader и @attr_writer), которые также могут быть полезны.

...