Problems with the standard open-uri library
sometimes it returns String and sometimes StringIO (check out OpenURI::Buffer::StringMax, usually 10,240 bytes)
sometimes you have to call gets (for example open('http://yahoo.com').gets)
it overrides #open everywhere, which may be confusing.
Try #eat, which ALWAYS returns a String:
require 'eat' eat('http://yahoo.com') #=> String eat('/home/seamus/foo.txt') #=> String eat('file:///home/seamus/foo.txt') #=> String
eat('http://yahoo.com', :timeout => 10) # timeout after 10 seconds eat('http://yahoo.com', :limit => 1024) # only read the first 1024 chars eat('https://yahoo.com', :openssl_verify_mode => 'none') # don't bother verifying SSL certificate
Warning: DOES verify SSL certs
If you want to disable verification of SSL certificates, use
:openssl_verify_mode => 'none'
Thanks @codahale and @peterc for their suggestions.
Copyright 2011 Seamus Abshere