Это распространенный способ установить значение по умолчанию в Ruby :
class QuietByDefault
def initialize(opts = {})
@verbose = opts[:verbose]
end
end
. Это простая ловушка , в которую можно попасть:
class VerboseNoMatterWhat
def initialize(opts = {})
@verbose = opts[:verbose] || true
end
end
Это правильный способ сделать это:
class VerboseByDefault
def initialize(opts = {})
@verbose = opts.include?(:verbose) ? opts[:verbose] : true
end
end
Каков наилучший/самый чистый способ кодирования VerboseByDefault
? (Конечно, я мог бы это учесть.)
Какой шаблон широко используется в коде Ruby в целом? Есть ли у ActiveSupport шаблон для этого? (Минимум лучше --Мне не нужен полный синтаксический анализатор параметров командной строки.)
Разглагольствование P.S. :Мне не нравится асимметрия между кодом, обрабатывающим параметр true
по умолчанию, и кодом, обрабатывающим параметр false
по умолчанию. Было бы неплохо увидеть шаблон, который позволяет переключаться между двумя --без возникновения ошибок --.