Sha256: 1f24d63331ca6cb979b7b7f3a7bc5dd50536dfda8c4fd0991121b4ec77d90291
Contents?: true
Size: 1.63 KB
Versions: 3
Compression:
Stored size: 1.63 KB
Contents
require "crimp" require "alephant/lookup/lookup_location" require "alephant/logger" module Alephant module Lookup class LookupQuery include Logger attr_reader :table_name, :lookup_location def initialize(table_name, component_id, opts, batch_version) @client = AWS::DynamoDB::Client::V20120810.new @table_name = table_name @lookup_location = LookupLocation.new(component_id, opts, batch_version) logger.info "LookupQuery#initialize: table name '#{table_name}', component id '#{component_id}', batch version '#{batch_version}', location '#{lookup_location}'" end def run! lookup_location.tap do |l| l.location = s3_location_from( @client.query(to_q) ).tap { |loc| logger.info "LookupQuery#run!: location '#{loc}'" } end end private def s3_location_from(result) result[:count] == 1 ? result[:member].first["location"][:s] : nil end def to_q { :table_name => table_name, :consistent_read => true, :select => "SPECIFIC_ATTRIBUTES", :attributes_to_get => ["location"], :key_conditions => { "component_key" => { :comparison_operator => "EQ", :attribute_value_list => [ { "s" => @lookup_location.component_key } ], }, "batch_version" => { :comparison_operator => "EQ", :attribute_value_list => [ { "n" => @lookup_location.batch_version.to_s } ] } } } end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
alephant-lookup-0.4.2 | lib/alephant/lookup/lookup_query.rb |
alephant-lookup-0.4.1 | lib/alephant/lookup/lookup_query.rb |
alephant-lookup-0.4.0 | lib/alephant/lookup/lookup_query.rb |