Sha256: 8d6957976ca1af8e151d5c364c69c3c21737a4e9499a93ee7a965746f47d7150

Contents?: true

Size: 1.23 KB

Versions: 6

Compression:

Stored size: 1.23 KB

Contents

require 'fog'

module Heirloom
  module AWS
    class SimpleDB

      def initialize(args)
        @config = args[:config]
        @sdb = Fog::AWS::SimpleDB.new :aws_access_key_id     => @config.access_key,
                                      :aws_secret_access_key => @config.secret_key,
                                      :region                => @config.primary_region
      end

      def domains
        @sdb.list_domains.body['Domains']
      end

      def domain_exists?(domain)
        domains.include? domain
      end

      def create_domain(domain)
        @sdb.create_domain(domain) unless domain_exists?(domain)
      end

      def delete_domain(domain)
        @sdb.delete_domain(domain)
      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 select(query)
        @sdb.select(query).body['Items']
      end

      def delete(domain, key)
        @sdb.delete_attributes domain, key
      end

      def count(domain)
        body = @sdb.select("SELECT count(*) FROM #{domain}").body
        body['Items']['Domain']['Count'].first.to_i
      end

    end
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
heirloom-0.5.0rc4 lib/heirloom/aws/simpledb.rb
heirloom-0.5.0rc3 lib/heirloom/aws/simpledb.rb
heirloom-0.5.0rc2 lib/heirloom/aws/simpledb.rb
heirloom-0.5.0rc1 lib/heirloom/aws/simpledb.rb
heirloom-0.4.1rc1 lib/heirloom/aws/simpledb.rb
heirloom-0.4.0 lib/heirloom/aws/simpledb.rb