I see that in Ruby (and dynamically typed languages, in general) a very common practice is to pass a hash, instead of declaring concrete method parameters. For example, instead of declaring a method with parameters and calling it like this:
def my_method(width, height, show_border)
my_method(400, 50, false)
you can do it this way:
def my_method(options)
my_method({"width" => 400, "height" => 50, "show_border" => false})
I'd like to know your opinion about it. Is it a good or a bad practice, should we do it or not? In what situation using this practice is valid, and it what situation can it be dangerous?