Class: Dyna::DynamoDBWrapper

Inherits:
Object
  • Object
show all
Includes:
Logger::ClientHelper
Defined in:
lib/dyna/wrapper/table.rb,
lib/dyna/wrapper/dynamo_db_wrapper.rb

Defined Under Namespace

Classes: Table

Instance Method Summary collapse

Methods included from Logger::ClientHelper

#log

Constructor Details

#initialize(ddb, options) ⇒ DynamoDBWrapper

Returns a new instance of DynamoDBWrapper.



5
6
7
8
# File 'lib/dyna/wrapper/dynamo_db_wrapper.rb', line 5

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

Instance Method Details

#create(dsl) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/dyna/wrapper/dynamo_db_wrapper.rb', line 19

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

#tablesObject



10
11
12
13
14
15
16
17
# File 'lib/dyna/wrapper/dynamo_db_wrapper.rb', line 10

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

#updated?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/dyna/wrapper/dynamo_db_wrapper.rb', line 33

def updated?
  !!@options.updated
end