Class Restr
In: lib/restr.rb
Parent: Object

A very simple REST client, best explained by example:

  # Retrieve a Kitten and print its name and colour
  kitten = Restr.get('http://example.com/kittens/1.xml')
  puts kitten['name']
  puts kitten['colour']

  # Create a Kitten
  kitten = Restr.post('http://example.com/kittens.xml',
    :name => 'batman', :colour => 'black')

  # Update a Kitten
  kitten = Restr.put('http://example.com/kittens/1.xml',
    :age => '6 months')

  # Delete a Kitten :(
  kitten = Restr.delete('http://example.com/kittens/1.xml')

  # Retrieve a list of Kittens
  kittens = Restr.get('http://example.com/kittens.xml')

When the response to a Restr request has content type ‘text/xml’, the response body will be parsed from XML into a nested Hash (using XmlSimple — see xml-simple.rubyforge.org/). Otherwise the response is returned untouched, as a String.

Authentication

If the remote REST resource requires authentication (Restr only supports HTTP Basic authentication, for now):

  Restr.get('http://example.com/kittens/1.xml, {},
    {:username => 'foo', :password => 'bar'})

Logging

A standard Ruby Logger can be attached to the Restr client like so:

  logger = Logger.new('restr.log')
  logger.level = Logger::DEBUG
  Restr.logger = logger

Restr will now log its activity to the given Logger. The default_logger can be overridden by supplying a :logger option to a client call:

  kitten_logger = Logger.new('kitten.log'}
  Restr.get('http://example.com/kittens/1.xml, {},
    {:logger => kitten_logger)

Methods

do   logger   logger=   method_missing  

Classes and Modules

Class Restr::InvalidRequestMethod

Public Class methods

[Validate]