require 'cgi'
class Hash
def to_url_params
self.map{|key,value|
CGI.escape(key.to_s) + '=' + CGI.escape(value.to_s)
}.join('&')
end
end
(На строки разбил, чтобы сюда влезло, так красивее в одну строку.)
{'a'=>5, 'url'=>'http://ya.ru'}.to_url_params
# "a=5&url=http%3A%2F%2Fya.ru"Для конкурса на самую нечитаемую программу могу еще чуть короче (этот код я могу только написать, но не прочитать):
require 'cgi'
class Hash
def to_url_params
self.to_a.map{|a| a.map
{|x| CGI.escape(x.to_s)}.join('=')}.join('&')
end
end
Комментариев нет:
Отправить комментарий