class AwsTestDump::DynamoTableDump

Attributes

data_dump_definition[RW]
table_name[RW]

Public Class Methods

new(data_dump_definition=nil, dump_dir=nil, table_name=nil) click to toggle source
Calls superclass method AwsTestDump::BaseDynamoProcessor::new
# File lib/aws_test_dump.rb, line 172
def initialize(data_dump_definition=nil, dump_dir=nil, table_name=nil)
  super nil
  @data_dump_definition = data_dump_definition
  @data_dump_definition ||= {}
  @table_name = table_name
  @table_name ||= @data_dump_definition[:table_name]
  @dump_dir = dump_dir
  @dump_dir ||= DEFAULT_DATA_DUMP_DIR
  @dump_file = File.join(@dump_dir, "#{@table_name}.yml")
  @query_results = nil
end

Public Instance Methods

_query() click to toggle source
# File lib/aws_test_dump.rb, line 196
def _query
  @dynamo_client.query({
    :table_name => @table_name,
    :select => 'ALL_ATTRIBUTES',
    :key_conditions => @data_dump_definition[:key_conditions]
  })
end
_scan() click to toggle source
# File lib/aws_test_dump.rb, line 204
def _scan
  @dynamo_client.scan({table_name: @table_name})
end
dump_data() click to toggle source
# File lib/aws_test_dump.rb, line 188
def dump_data
  data = {table_name: @table_name, data: query_results}
  unless File.directory?(@dump_dir)
    FileUtils.mkdir_p(@dump_dir)
  end
  File.open(@dump_file, 'w') { |file| file.write data.to_yaml }
end
query_results() click to toggle source
# File lib/aws_test_dump.rb, line 208
def query_results
  if @query_results.nil?
    response = !@data_dump_definition[:key_conditions].nil? ? _query : _scan
    @query_results = response.items
  end
  @query_results
end
run() click to toggle source
# File lib/aws_test_dump.rb, line 184
def run
  dump_data
end