class Moe::Sequence::ItemFetcher

Attributes

dyna[RW]
items[RW]
owner_id[R]
sequence_id[RW]
table_name[R]
uid[R]

Public Class Methods

new(table_name, owner_id, uid) click to toggle source
# File lib/moe/sequence/item_fetcher.rb, line 7
def initialize(table_name, owner_id, uid)
  @dyna = Dyna.new
  @items = []
  @owner_id = owner_id
  @sequence_id = 1
  @table_name = table_name
  @uid = uid
end

Public Instance Methods

fetch(limit) click to toggle source
# File lib/moe/sequence/item_fetcher.rb, line 16
def fetch(limit)
  request = {
    request_items: {
      table_name => { keys: [] }
    }
  }
  keys = request[:request_items][table_name][:keys]

  limit.times do
    keys << dyna.explode( Locksmith.key(owner_id, sequence_id, uid) )

    self.sequence_id += 1
  end

  munge dyna.dynamodb.batch_get_item(request)
end

Private Instance Methods

munge(results) click to toggle source
# File lib/moe/sequence/item_fetcher.rb, line 35
def munge(results)
  results.responses.each_value do |item|
    item.each do |i|
      items << dyna.implode(i)
    end
  end
end