У меня есть этот код Ruby, который я хотел бы оптимизировать:
process_trx(['davivienda'], GATEWAY_NAME, base_params_for(:davivienda))
process_trx(['banco_de_chile'], GATEWAY_NAME, base_params_for(:banco_de_chile))
process_trx(['webpay'], GATEWAY_NAME, base_params_for(:webpay))
Я устал от этого:
FIXED_BASE_PARAMS = %w(davivienda banco_de_chile webpay)
FIXED_BASE_PARAMS.each do |factory_data|
process_trx(['#{factory_data.to_s.pluralize.humanize}'], GATEWAY_NAME, base_params_for(:#{factory_data.to_s.pluralize.humanize}))
end
Как правильно реализовать код? Я хотел бы только правильно передать имена.
Это сработает?
%i(davivienda banco_de_chile webpay).each do |factory_name|
process_trx([factory_name.to_s], GATEWAY_NAME, base_params_for(factory_name))
end
Я неожиданно получаю keyword_end, ожидая ')' (SyntaxError)
Исправлена проблема с закрывающей круглой скобкой.
Почему вы идете другим путем, используя %i
? Использование %w
будет минимальной модификацией исходного кода OP.
Что случилось с плюрализовать / очеловечить? Зачем вы их добавили?