Строгание параметров запроса: мы можем пойти дальше? - PullRequest
0 голосов
/ 23 сентября 2019

Я написал этот метод:

    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

Может кто-нибудь придумать способ сделать его еще более кратким?

1 Ответ

1 голос
/ 23 сентября 2019

Это может быть следующим:

def stringify_query_parameters(query_parameters)
  '?' + query_parameters.map{ |k, v| "#{k}=#{v}" }.join('&')
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...