module Groonga::Client::Searcher::SelectRequest::SourcesSupport

Public Instance Methods

sources() click to toggle source
# File lib/groonga/client/searcher/select_request.rb, line 35
def sources
  @sources ||= fetch_sources
end

Private Instance Methods

fetch_sources() click to toggle source
# File lib/groonga/client/searcher/select_request.rb, line 40
def fetch_sources
  source_ids = {}
  records.collect do |record|
    model_name, id = record._key.split(/-/, 2)
    source_ids[model_name] ||= []
    source_ids[model_name] << id
  end
  sources = {}
  source_ids.each do |model_name, ids|
    model_name.constantize.find(ids).each_with_index do |model, i|
      sources["#{model_name}-#{ids[i]}"] = model
    end
  end
  records.collect do |record|
    source = sources[record._key]
    record.source = source
    source
  end
end