Veo que en Ruby (y en los lenguajes tipados dinámicamente, en general) una práctica muy común es pasar un hash, en lugar de declarar los parámetros concretos del método. Por ejemplo, en lugar de declarar un método con parámetros y decir que es como esto:Pasar hashes en lugar de los parámetros del método
def my_method(width, height, show_border)
my_method(400, 50, false)
que puede hacerlo de esta manera:
def my_method(options)
my_method({"width" => 400, "height" => 50, "show_border" => false})
me gustaría saber su opinión sobre el tema. ¿Es una buena o una mala práctica, deberíamos hacerlo o no? ¿En qué situación es válida esta práctica, y qué situación puede ser peligrosa?
+1, en efecto, una buena pregunta –
Una pequeña nota: '{width => 400, altura => 50, show_border => false}' no es sintaxis rubí válida. Creo que te refieres a '{: width => 400,: height => 50,: show_border => false}' o '{width: 400, height: 50, show_border: false}' (este último solo es válido en ruby 1.9) .1) – henrikhodne