Esta es una forma común de establecer un valor predeterminado en Ruby:Cómo hacer una falsa opción por defecto
class QuietByDefault
def initialize(opts = {})
@verbose = opts[:verbose]
end
end
Esto es un fácil trampa caiga en:
class VerboseNoMatterWhat
def initialize(opts = {})
@verbose = opts[:verbose] || true
end
end
Ésta es una correcta manera de hacerlo:
class VerboseByDefault
def initialize(opts = {})
@verbose = opts.include?(:verbose) ? opts[:verbose] : true
end
end
¿Cuál es la mejor manera/más limpio para codificar VerboseByDefault
? (Podría factorizarlo, por supuesto.)
¿Qué patrón se usa ampliamente, si existe, en el código de Ruby en general? ¿ActiveSupport tiene un patrón para esto? (Mínimo es mejor - no necesito un analizador opción de línea de comandos completa.)
Ranting P.S .: No me gusta la asimetría entre el código que maneja un código predeterminado vs true
que maneja una opción por defecto false
. Un patrón que hace que cambiar entre los dos, sin causar errores, sea algo bueno de ver.
¡Muy bien! Yo * puede * haber visto esto antes, pero no lo recuerdo. ¡Gracias! –