class Rom::Dynamo::Gateway
Attributes
ddb[R]
options[R]
Public Class Methods
new(uri)
click to toggle source
# File lib/rom/dynamo/repository.rb, line 9 def initialize(uri) uri = Addressable::URI.parse(uri) opts = { region: uri.host } opts.merge!(uri.query_values) if uri.query opts.keys.each { |k| opts[k.to_sym] = opts.delete(k) } @options = opts @ddb = Aws::DynamoDB::Client.new(@options) @prefix = uri.path.gsub('/', '') @datasets = {} end
Public Instance Methods
[](name)
click to toggle source
# File lib/rom/dynamo/repository.rb, line 34 def [](name) @datasets["#{@prefix}#{name}"] end
dataset(name)
click to toggle source
# File lib/rom/dynamo/repository.rb, line 25 def dataset(name) name = "#{@prefix}#{name}" @datasets[name] ||= _has?(name) && Dataset.new(connection: @ddb, name: name) end
dataset?(name)
click to toggle source
# File lib/rom/dynamo/repository.rb, line 30 def dataset?(name) !!self[name] end
use_logger(logger)
click to toggle source
# File lib/rom/dynamo/repository.rb, line 21 def use_logger(logger) @logger = logger end
Private Instance Methods
_has?(name)
click to toggle source
# File lib/rom/dynamo/repository.rb, line 39 def _has?(name) @ddb.describe_table(table_name: name) rescue Aws::DynamoDB::Errors::ResourceNotFoundException return false end