Class: SimpleDB::Driver::Iterator

Inherits:
Object
  • Object
show all
Defined in:
lib/sdbcli/sdb-driver.rb

Instance Method Summary collapse

Constructor Details

#initialize(client, method, params = {}, iteratable = false, token = :first) ⇒ Iterator

Returns a new instance of Iterator.



368
369
370
371
372
373
374
# File 'lib/sdbcli/sdb-driver.rb', line 368

def initialize(client, method, params = {}, iteratable = false, token = :first)
  @client = client
  @method = method
  @params = params.dup
  @token = token
  @iteratable = iteratable
end

Instance Method Details

#eachObject



376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
# File 'lib/sdbcli/sdb-driver.rb', line 376

def each
  token = nil

  while @token
    if @token != :first
      tok = @token.kind_of?(String) ? @token : @token.content
      @params.update(:NextToken => tok)
    end

    doc = @client.send(@method, @params)
    yield(doc)
    token = doc.at_css('NextToken')

    if @iteratable
      @token = token
    else
      @token = nil
    end
  end

  return token
end