Возьмут следующий класс:Отражения от параметров методы в Ruby,
class Automator
def fill_specific_form(fields)
fields.each_pair do |key, value|
puts "Setting '#{key}' to '#{value}'"
end
end
end
a = Automator.new
a.fill_specific_form :first_name => "Mads", :last_name => "Mobæk"
# => Setting 'first_name' to 'Mads'
# => Setting 'last_name' to 'Mobæk'
Можно ли сделать то же самое без хэша? Поскольку все параметры необходимы, я хочу метод со следующей подписью:
fill_specific_form(first_name, last_name)
На мой взгляд, это было бы возможно за счет того, тело метода отражения и перебрать его параметров, что позволит достичь того же результата.
Как вы это реализуете? Уже существует ли образец/идиома для этого? Двумя очевидными преимуществами были бы информация о параметрах в IDE и отсутствие необходимости проверки наличия всех хэш-ключей.
То, что я хочу, чтобы избежать это:
puts "Setting first_name to #{first_name}"
puts "Setting last_name to #{last_name}"
# and so on
Duplicate of [Ruby - напечатать имя переменной, а затем ее значение] (http://stackoverflow.com/questions/2603617/ruby-print-the-variable-name-and-then-its-value) –
Это является дубликатом [Есть ли способ вернуть имена параметров метода в ruby] (http://StackOverflow.Com/q/2452077/#2452322). –