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..box_usage
Contributors
* Michael Gorsuch
Copyright
Copyright © 2009 Paolo Negri. See LICENSE for details.