Hi *, my question is really simple: is there a way in Ruby stdlib or in
external modules to build querystrings without creating the string from
scratch ?
For example something like:
name = "Foo Bar"
p URI::join(base_uri, query_string(name))
harp:~ > cat a.rb
require "cgi"
class Hash
def query_string
"?" << inject(){|a,kv| a << [CGI.escape(kv.shift), CGI.escape(kv.shift)].join("=") }.join("&")
end
end
Hi *, my question is really simple: is there a way in Ruby stdlib or in
external modules to build querystrings without creating the string from
scratch ?
For example something like:
name = "Foo Bar"
p URI::join(base_uri, query_string(name))
"?" << # append what follows to the string '?'
map { |h| # h looks like ['key', 'value'] for each key-value pair
h.map { |e| # e looks like 'key' or 'value'
CGI.escape(e) # escape each element
} * '=' # join key and value with '='
} * '&' # join each key-value pair with '&'
Is that any clearer?
Paul.
···
On 16/03/06, ebeard <ecbearden@gmail.com> wrote:
Wow, I have no idea what this does or how it works. Would you mind
taking this apart and describing how it works?