class Aws::ActiveSdb
Aws::ActiveSdb – RightScale SDB interface (alpha release)¶ ↑
The Aws::ActiveSdb class provides a complete interface to Amazon's Simple Database Service.
ActiveSdb is in alpha and does not load by default with the rest of Aws. You must use an additional require statement to load the ActiveSdb class. For example:
require 'right_aws' require 'sdb/active_sdb'
Additionally, the ActiveSdb class requires the 'uuidtools' gem; this gem is not normally required by Aws and is not installed as a dependency of Aws.
Simple ActiveSdb usage example:
class Client < Aws::ActiveSdb::Base end # connect to SDB Aws::ActiveSdb.establish_connection # create domain Client.create_domain # create initial DB Client.create 'name' => 'Bush', 'country' => 'USA', 'gender' => 'male', 'expiration' => '2009', 'post' => 'president' Client.create 'name' => 'Putin', 'country' => 'Russia', 'gender' => 'male', 'expiration' => '2008', 'post' => 'president' Client.create 'name' => 'Medvedev', 'country' => 'Russia', 'gender' => 'male', 'expiration' => '2012', 'post' => 'president' Client.create 'name' => 'Mary', 'country' => 'USA', 'gender' => 'female', 'hobby' => ['patchwork', 'bundle jumping'] Client.create 'name' => 'Mary', 'country' => 'Russia', 'gender' => 'female', 'hobby' => ['flowers', 'cats', 'cooking'] sandy_id = Client.create('name' => 'Sandy', 'country' => 'Russia', 'gender' => 'female', 'hobby' => ['flowers', 'cats', 'cooking']).id # find all Bushes in USA Client.find(:all, :conditions => ["['name'=?] intersection ['country'=?]",'Bush','USA']).each do |client| client.reload puts client.attributes.inspect end # find all Maries through the world Client.find_all_by_name_and_gender('Mary','female').each do |mary| mary.reload puts "#{mary[:name]}, gender: #{mary[:gender]}, hobbies: #{mary[:hobby].join(',')}" end # find new russian president medvedev = Client.find_by_post_and_country_and_expiration('president','Russia','2012') if medvedev medvedev.reload medvedev.save_attributes('age' => '42', 'hobby' => 'Gazprom') end # retire old president Client.find_by_name('Putin').delete # Sandy disappointed in 'cooking' and decided to hide her 'gender' and 'country' () sandy = Client.find(sandy_id) sandy.reload sandy.delete_values('hobby' => ['cooking'] ) sandy.delete_attributes('country', 'gender') # remove domain Client.delete_domain
Public Instance Methods
create_domain(domain_name)
click to toggle source
Create new domain. Raises no errors if the domain already exists.
Aws::ActiveSdb.create_domain('alpha') #=> {:request_id=>"6fc652a0-0000-41d5-91f4-3ed390a3d3b2", :box_usage=>"0.0055590278"}
# File lib/sdb/active_sdb.rb, line 149 def create_domain(domain_name) connection.create_domain(domain_name) end
delete_domain(domain_name)
click to toggle source
Remove domain from SDB. Raises no errors if the domain does not exist.
Aws::ActiveSdb.create_domain('alpha') #=> {:request_id=>"6fc652a0-0000-41c6-91f4-3ed390a3d3b2", :box_usage=>"0.0055590001"}
# File lib/sdb/active_sdb.rb, line 158 def delete_domain(domain_name) connection.delete_domain(domain_name) end
domains()
click to toggle source
Retreive a list of domains.
put Aws::ActiveSdb.domains #=> ['co-workers','family','friends','clients']
# File lib/sdb/active_sdb.rb, line 140 def domains connection.list_domains[:domains] end