Class: CassandraModel::ResultPaginator
- Inherits:
-
Object
- Object
- CassandraModel::ResultPaginator
- Includes:
- Enumerable
- Defined in:
- lib/cassandra_model/result_paginator.rb
Instance Method Summary collapse
- #each(&block) ⇒ Object
- #each_slice ⇒ Object
-
#initialize(first_page, &callback) ⇒ ResultPaginator
constructor
A new instance of ResultPaginator.
Constructor Details
#initialize(first_page, &callback) ⇒ ResultPaginator
Returns a new instance of ResultPaginator.
5 6 7 8 |
# File 'lib/cassandra_model/result_paginator.rb', line 5 def initialize(first_page, &callback) @page = first_page @callback = callback end |
Instance Method Details
#each(&block) ⇒ Object
10 11 12 13 14 |
# File 'lib/cassandra_model/result_paginator.rb', line 10 def each(&block) return to_enum(:each) unless block_given? each_slice { |slice| slice.each(&block) } end |
#each_slice ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/cassandra_model/result_paginator.rb', line 16 def each_slice return to_enum(:each_slice) unless block_given? current_page = @page loop do page_results = current_page.get modified_results = page_results.map { |result| @callback.call(result, page_results.execution_info) } break if page_results.empty? if page_results.last_page? yield modified_results break else current_page = page_results.next_page_async yield modified_results end end end |