Sha256: 720c22914ab185ff3e5ebcf48229df040b4abfea13feca5cdfdc5c15df65451a
Contents?: true
Size: 1.73 KB
Versions: 1
Compression:
Stored size: 1.73 KB
Contents
require 'fog' module Sdbport module AWS class SimpleDB def initialize(args) @access_key = args[:access_key] @secret_key = args[:secret_key] @region = args[:region] end def domains sdb.list_domains.body['Domains'] end def domain_exists?(domain) domains.include? domain end def create_domain_unless_present(domain) sdb.create_domain(domain) unless domain_exists?(domain) end def select(query, options = {}) sdb.select(query, options).body end def select_and_follow_tokens(query, options = {}) data = {} next_token = nil final_token = false while true options.merge! 'NextToken' => next_token chunk = sdb.select(query, options).body data.merge! chunk['Items'] next_token = chunk['NextToken'] return data unless next_token end end def count(domain) body = sdb.select("SELECT count(*) FROM `#{domain}`").body body['Items']['Domain']['Count'].first.to_i end def domain_empty?(domain) count(domain).zero? end def put_attributes(domain, key, attributes, options = {}) sdb.put_attributes domain, key, attributes, options end def delete_domain(domain) sdb.delete_domain(domain) end def delete(domain, key) sdb.delete_attributes domain, key end private def sdb options = { :aws_access_key_id => @access_key, :aws_secret_access_key => @secret_key, :region => @region } @sdb ||= Fog::AWS::SimpleDB.new options end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sdbport-0.1.1 | lib/sdbport/aws/simpledb.rb |