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 parámetros de método concretos. Por ejemplo, en lugar de declarar un método con parámetros y llamarlo así:
def my_method(width, height, show_border)
my_method(400, 50, false)
puedes hacerlo de esta manera:
def my_method(options)
my_method({"width" => 400, "height" => 50, "show_border" => false})
Me gustaría saber tu opinión al respecto. ¿Es una buena o una mala práctica, debemos hacerlo o no? ¿En qué situación es válido utilizar esta práctica y en qué situación puede ser peligrosa?
{width => 400, height => 50, show_border => false}
no es una sintaxis ruby 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)