Peter Williams (author)
Wed Aug 05 08:26:45 -0700 2009
commit d96e853e6e01c4b7a54cb18dd483a1b60c1cbf98
tree b8aa558b5cecb39e2170f8273afc5fbf334a7e0c
parent 2bc32d060476369df4b34eb0a23cabcef687e8ff
tree b8aa558b5cecb39e2170f8273afc5fbf334a7e0c
parent 2bc32d060476369df4b34eb0a23cabcef687e8ff
| name | age | message | |
|---|---|---|---|
| |
.autotest | Mon May 12 17:18:16 -0700 2008 | |
| |
.gitignore | ||
| |
MIT-LICENSE | Tue Jun 24 08:18:11 -0700 2008 | |
| |
Manifest | ||
| |
README.markdown | ||
| |
Rakefile | ||
| |
ext/ | ||
| |
lib/ | ||
| |
spec/ |
README.markdown
Resourceful
Resourceful provides a convenient Ruby API for making HTTP requests.
Features:
- GET, PUT, POST and DELETE HTTP requests
- HTTP Basic and Digest authentication
- HTTP Caching with pluggable backends
- Follow redirects based on the results of a callback
More Info
- Source: Github
- Bug Tracking: Lighthouse
- Project Page: Rubyforge
- Documentation: API Docs
Examples
Getting started
gem install resourceful
Simplest example
require 'resourceful'
http = Resourceful::HttpAccessor.new
resp = http.resource('http://rubyforge.org').get
puts resp.body
Get a page requiring HTTP Authentication
my_realm_authenticator = Resourceful::BasicAuthenticator.new('My Realm', 'admin', 'secret')
http = Resourceful::HttpAccessor.new(:authenticator => my_realm_authenticator)
resp = http.resource('http://example.com/').get
puts resp.body
Redirection based on callback results
Resourceful will by default follow redirects on read requests (GET and HEAD), but not for POST, etc. If you want to follow a redirect after a post, you will need to set the resource#on_redirect callback. If the callback evaluates to true, it will follow the redirect.
resource = http.resource('http://example.com/redirect_me')
resource.on_redirect { |req, resp| resp.header['Location'] =~ /example.com/ }
resource.get # Will only follow the redirect if the new location is example.com
Post a URL encoded form
require 'resourceful'
http = Resourceful::HttpAccessor.new
resp = http.resource('http://mysite.example/service').
post('hostname=test&level=super', :content_type => 'application/x-www-form-urlencoded')
Put an XML document
require 'resourceful'
http = Resourceful::HttpAccessor.new
resp = http.resource('http://mysite.example/service').
put('<?xml version="1.0"?><test/>', :content_type => 'application/xml')
Delete a resource
require 'resourceful'
http = Resourceful::HttpAccessor.new
resp = http.resource('http://mysite.example/service').delete
Copyright
Copyright (c) 2008 Absolute Performance, Inc, Peter Williams. Released under the MIT License.

