Я написал этот метод:
def stringify_query_params(query_parameters)
stringified_query_params = ''
query_parameters.each_with_index do |kv, i|
k, v = kv
index = i
if index == 0
stringified_query_params += "?#{k}=#{v}"
else
stringified_query_params += "&#{k}=#{v}"
end
end
return stringified_query_params
end
RubyCop жалуется в моем работающем экземпляре RubyMine, говоря, что вместо этого я должен собирать выходные данные логики условного ветвления следующим образом.
Iсмог сделать это немного лучше, используя некоторые методы в модуле Enumerable
def stringify_query_parameters(query_parameters)
query_parameters.each_with_object([]).with_index do |((k, v), acc), index|
acc.push((index.positive? ? '&' : '?') + "#{k}=#{v}")
end.join('')
end
Может кто-нибудь придумать способ сделать его еще более кратким?