У меня есть метод, который необязательно принимает блок.
Он либо возвращает массив параметров, которые он передал бы отсутствующему блоку, либо прозрачно возвращает результат 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.