public
Description: AWS SimpleDB ruby low level library
Homepage: http://github.com/hungryblank/aws_sdb_bare
Clone URL: git://github.com/hungryblank/aws_sdb_bare.git
README.rdoc

aws_sdb_bare

AwsSdb Bare is a ruby gem intended to provide a basic modular interface to use the SimpleDB service provided by Amazon.

Concept

The aim of the project is to not commit to any http handling strategy and to not enforce any response parsing solution by default.

The idea behind this project is to provide a basic layer on top of which more high level libraries can be built.

The library provides XML response parsing through Hpricot or Nokogiri to run the test against a specific parser

  rake nokogiri test

Or

  rake hpricot test

Project sources

the project is hosted on github github.com/hungryblank/aws_sdb_bare

blog posts explaining the usage can be found on assertbuggy.blogspot.com

Support and bug tracking

issues can be posted on github github.com/hungryblank/aws_sdb_bare forking and patch proposal throguh github are encouraged

Installation

  sudo gem install hungryblank-aws_sdb_bare -s http://gems.github.com

Usage - Requests

The most basic primitive is the request, as a sample here’s how a ListDomains request is generated

  require 'rubygems'
  require 'aws_sdb_bare'

  ENV['AMAZON_ACCESS_KEY_ID'] = 'your_amazon_access_key'
  ENV['AMAZON_SECRET_ACCESS_KEY'] = 'your_amazon_secret'

  #create the request object
  request = AwsSdb::Request::Base.new('GET', 'Action' => 'ListDomains')

  #using curl we can send the request as http get and print out the xml
  #response with the domains under your account
  puts `curl #{request.uri}`

The gem provides classes to create directly all the requests listed in Amazon’s 2007 11 07 specs so you can do

  request = AwsSdb::Request::ListDomains.new

Instead of using the Base class like the previous example.

Please refer to the gem rdocs and to the amazon documentation to see a list of all the available requests and their parameters

Usage - Responses

To parse a response you simply call AwsSdb::Response.parse(xml_doc) example:

  require 'open-uri'
  require 'aws_sdb_bare'
  #the following line could require nokogiri instead
  require 'hpricot'

  request = AwsSdb::Request::ListDomains.new
  xml_response = open request.uri
  response = AwsSdb::Response.parse(xml_response)
  puts response.domains
  puts response.metadata.box_usage

Documentation

Rdoc are available at rdoc.elastastic.com/aws_sdb_bare

Copyright

Copyright © 2009 Paolo Negri. See LICENSE for details.