Class: Eurydice::ColumnEnumerator
- Inherits:
-
ColumnEnumeratorBase
- Object
- ColumnEnumeratorBase
- Eurydice::ColumnEnumerator
- Defined in:
- lib/eurydice/column_enumerator.rb
Instance Method Summary collapse
-
#initialize(*args) ⇒ ColumnEnumerator
constructor
A new instance of ColumnEnumerator.
- #next ⇒ Object
- #rewind ⇒ Object
Methods inherited from ColumnEnumeratorBase
Constructor Details
#initialize(*args) ⇒ ColumnEnumerator
Returns a new instance of ColumnEnumerator.
29 30 31 32 |
# File 'lib/eurydice/column_enumerator.rb', line 29 def initialize(*args) super rewind end |
Instance Method Details
#next ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/eurydice/column_enumerator.rb', line 34 def next if @buffer.empty? && @exhausted raise StopIteration elsif @buffer.empty? result = @column_family.get(@row_key, @options.merge(from_column: @offset)) keys = result.keys if result if result.nil? || result.empty? || keys.last == @offset @exhausted = true raise StopIteration end result.shift if keys.first == @offset result.each do |pair| @buffer << pair end @offset = keys.last end @buffer.shift end |
#rewind ⇒ Object
53 54 55 56 57 58 |
# File 'lib/eurydice/column_enumerator.rb', line 53 def rewind @offset = @options[:from_column] || (@options[:reversed] ? LAST_KEY : FIRST_KEY) @reversed = @options[:reversed] @buffer = [] @exhausted = false end |