Для продолжения того, что описывает mu, вы увидите, что в обычной идиоме Ruby метод устанавливает для себя некоторые параметры по умолчанию, а затем объединяет в этот хэш параметры, полученные методом.Таким образом, вы можете быть уверены, что всегда существует некоторый минимальный список опций:
def self.api1(options={})
default_options = { :foo => 'bar', :baz => nil }
options = default_options.merge options
# Now include your code and you can assume that options[:foo] and options[:bar] are there
end
Это удобно, например, когда ваш метод выводит значение :baz
.Теперь вам не нужно проверять, существует ли он первым, вы можете просто вывести его, зная, что он всегда будет существовать.