2014-03-08 8 views
18

Для базового метода Ruby я бы предоставил документ типа YARD для параметров в следующем формате.Как я могу предоставить документацию по YARD/RDoc для аргументов ключевого слова Ruby?

# @param query [String] The search string to query. 
# @param options [Hash] Optional search preferences. 
def search(query, options = {}) 
    # ... 
end 

С Ruby 2.0 теперь могут использоваться аргументы ключевых слов. Тем не менее, я не уверен, как подойти к этому с точки зрения документации YARD.

def search(query, exact_match: false, results_per_page: 10) 
    # ... 
end 

Как бы документ для exact_match и results_per_page во втором сценарии? Должен ли я продолжать использовать ключевое слово @param или что-то лучше?

ответ

23

YARD распознает аргументы ключевых слов. Это должно работать:

# @param query [String] The search string 
# @param exact_match [Boolean] whether to do an exact match 
# @param results_per_page [Integer] number of results 
def search(query, exact_match: false, results_per_page: 10) 
    # ... 
end 
+0

Что значит «двор распознает аргументы ключевых слов»? Синтаксис, который вы показываете, точно такой же, как аргумент без ключевого слова. Ярд даже принуждает контракт между параметрами и докстрингом? И не было бы путаницей, если бы метод захотел найти ключевое слово arg, но документирован как имеющий регулярный последовательный аргумент. –

+0

@maxple. Я не дотронулся до ruby ​​за некоторое время, но посмотрел ли вы на выделенный вывод y для этого синтаксиса? Я считаю, что аргументы ключевого слова отображаются иначе, чем последовательные аргументы ... –