class BatchedQuery::Runner
Constants
- DEFAULT_LIMIT
Public Class Methods
each_result(query, &block)
click to toggle source
# File lib/batched_query/runner.rb, line 22 def self.each_result(query, &block) each_set(query) do |set| set.each do |result| block.call result end end end
each_set(query, &block)
click to toggle source
# File lib/batched_query/runner.rb, line 13 def self.each_set(query, &block) cached_ids = get_ordered_list_of_ids(query) cached_ids.each_slice(limit).each do |batch_of_ids| results = query.where(:id => batch_of_ids) block.call results end end
limit()
click to toggle source
# File lib/batched_query/runner.rb, line 9 def self.limit @limit || DEFAULT_LIMIT end
limit=(limit)
click to toggle source
# File lib/batched_query/runner.rb, line 5 def self.limit=(limit) @limit = limit end
Private Class Methods
get_ordered_list_of_ids(query)
click to toggle source
# File lib/batched_query/runner.rb, line 32 def self.get_ordered_list_of_ids(query) query.pluck(:id) end