Is there an equivalent in Ruby to the Perl modules which can "fill out
an html/http form"?
Given a hash, I'd like to either get the query string to append to the
URL for GET's, or the POST contents to append for POST's, as if the
hash was the form[field] = value. The routine should handle the url
encoding and the like.
Any luck?
(If not, anyone up for a quick few lines of Ruby ninjahood?)
harp:~ > cat a.rb
require "cgi"
class ::Hash
def query() map{|k,v| [CGI::escape(k), CGI::escape(v)].join "="}.join "&" end
end
query = { "foo" => "< > &", "bar" => "http://b/a space" }
puts query.query
harp:~ > ruby a.rb
foo=%3C+%3E+%26&bar=http%3A%2F%2Fb%2Fa+space
hth.
-a
···
On Tue, 14 Feb 2006 eastcoastcoder@gmail.com wrote:
Is there an equivalent in Ruby to the Perl modules which can "fill out
an html/http form"?
Given a hash, I'd like to either get the query string to append to the
URL for GET's, or the POST contents to append for POST's, as if the
hash was the form[field] = value. The routine should handle the url
encoding and the like.
Any luck?
(If not, anyone up for a quick few lines of Ruby ninjahood?)
--
judge your success by what you had to give up in order to get it.
- h.h. the 14th dali lama
harp:~ > cat a.rb
require "cgi"
class ::Hash
def query() map{|k,v| [CGI::escape(k), CGI::escape(v)].join "="}.join "&" end
end
query = { "foo" => "< > &", "bar" => "http://b/a space" }
puts query.query
harp:~ > ruby a.rb
foo=%3C+%3E+%26&bar=http%3A%2F%2Fb%2Fa+space
6 minutes from post to solution - is that a record?
Kev
i think i got one in under 2 before... 
-a
···
On Tue, 14 Feb 2006, Kev Jackson wrote:
6 minutes from post to solution - is that a record?
--
judge your success by what you had to give up in order to get it.
- h.h. the 14th dali lama
Dňa Utorok 14 Február 2006 05:19 Kev Jackson napísal:
> harp:~ > cat a.rb
> require "cgi"
>
> class ::Hash
> def query() map{|k,v| [CGI::escape(k), CGI::escape(v)].join
> "="}.join "&" end
> end
>
> query = { "foo" => "< > &", "bar" => "http://b/a space" }
>
> puts query.query
>
>
> harp:~ > ruby a.rb
> foo=%3C+%3E+%26&bar=http%3A%2F%2Fb%2Fa+space
6 minutes from post to solution - is that a record?
Kev
Ara's time machine is almost as good as Guido's time machine, it seems.
Oh, and someone apparently hacked up a Ruby WWW::Mechanize which is supposed
to do this.
David Vallner
Excellent, most appreciated.
Forgive my RFC ignorance, but is the same string appended to the URL
for GETs and sent as the bod for POST's? Or is there a difference in
the encoding somehow?
it certainly is different. google around for more info. you'll need to use
something like http-access2 for posting form data. check out my rubyforge
script (on rubyforge no less) for a pretty complete example of posting
including file uploads and redirects.
regards.
-a
···
On Wed, 15 Feb 2006 eastcoastcoder@gmail.com wrote:
Excellent, most appreciated.
Forgive my RFC ignorance, but is the same string appended to the URL
for GETs and sent as the bod for POST's? Or is there a difference in
the encoding somehow?
--
judge your success by what you had to give up in order to get it.
- h.h. the 14th dali lama