Sha256: bc3b1da4f2afea525fda5dc4855a096f95fa2b2ef2d78a5ce1eacc414f2a631e

Contents?: true

Size: 874 Bytes

Versions: 5

Compression:

Stored size: 874 Bytes

Contents

module Dyna
  class DynamoDBWrapper
    include Logger::ClientHelper

    def initialize(ddb, options)
      @ddb = ddb
      @options = options.dup
    end

    def tables
      @ddb.list_tables.map { |tables|
        tables.table_names.map do |table_name|
          describe_table = @ddb.describe_table(table_name: table_name).table
          Table.new(@ddb, describe_table, @options)
        end
      }.flatten
    end

    def create(dsl)
      log(:info, 'Create Table', :cyan, "#{dsl.table_name}")

      unless @options.dry_run
        params = dsl.symbolize_keys
        params.delete(:scalable_targets)
        params.delete(:scaling_policies)
        params.delete(:time_to_live_specification)
        result = @ddb.create_table(params)
        @options.updated = true
        result
      end
    end

    def updated?
      !!@options.updated
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
dyna-0.2.3 lib/dyna/wrapper/dynamo_db_wrapper.rb
dyna-0.2.2 lib/dyna/wrapper/dynamo_db_wrapper.rb
dyna-0.2.1 lib/dyna/wrapper/dynamo_db_wrapper.rb
dyna-0.2.1.beta2 lib/dyna/wrapper/dynamo_db_wrapper.rb
dyna-0.2.1.beta1 lib/dyna/wrapper/dynamo_db_wrapper.rb