Sha256: 9e595e659436506482b9f6f950aef307085cb83cfc2017f30e442fc636d3d2e5

Contents?: true

Size: 823 Bytes

Versions: 1

Compression:

Stored size: 823 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)
        result = @ddb.create_table(params)
        @options.updated = true
        result
      end
    end

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dyna-0.2.0 lib/dyna/wrapper/dynamo_db_wrapper.rb