Как Yard может документировать метод Ruby, возвращающий тип блока yield? - PullRequest
1 голос
/ 07 ноября 2019

У меня есть метод, который необязательно принимает блок.

Он либо возвращает массив параметров, которые он передал бы отсутствующему блоку, либо прозрачно возвращает результат yield.

Я знаю, что могу использовать @overload, чтобы по-разному относиться к причинам блока / без блока, но как я могу сказать, что @return для предложения блока - это то, что блок передал мне? Если бы это был Kotlin, я бы использовал параметр типа with_build_parameters (...) или что-то в этом роде.

# @overload with_build_parameters
#   @return [Array] if no block is given
# @overload with_build_parameters(&block)
#   @yieldparam [Hash<String, String>] config_props
#   @yieldparam [Hash<String, String>] build_props
#   @yieldreturn [T] whatever you like
#   @return [T] whatever the block said

Я в основном заинтересован в том, чтобы заставить его работать с проверкой типов в RubyMine.

...