module Groonga::Client::Response::Drilldownable
Attributes
drilldowns[RW]
@return [::Array<Groonga::Client::Response::Select::Drilldown>,
::Hash<String, Groonga::Client::Response::Select::Drilldown>] If labeled drilldowns are used or command version 3 or later is used, `{"label1" => drilldown1, "label2" => drilldown2}` is returned since 0.3.1. Otherwise, `[drilldown1, drilldown2]` is returned.
Private Instance Methods
parse_drilldown(label, keys, raw_drilldown)
click to toggle source
# File lib/groonga/client/response/drilldownable.rb, line 31 def parse_drilldown(label, keys, raw_drilldown) if raw_drilldown.is_a?(::Array) n_hits = raw_drilldown[0][0] raw_columns = raw_drilldown[1] raw_records = raw_drilldown[2..-1] else n_hits = raw_drilldown["n_hits"] raw_columns = raw_drilldown["columns"] raw_records = raw_drilldown["records"] end records = parse_records(raw_columns, raw_records) Drilldown.new(label, keys, n_hits, records, raw_columns, raw_records) end
parse_drilldowns(keys, raw_drilldowns)
click to toggle source
# File lib/groonga/client/response/drilldownable.rb, line 50 def parse_drilldowns(keys, raw_drilldowns) (raw_drilldowns || []).collect.with_index do |raw_drilldown, i| key = keys[i] parse_drilldown(key, [key], raw_drilldown) end end
parse_labeled_drilldowns(labeled_drilldown_requests, raw_drilldowns)
click to toggle source
# File lib/groonga/client/response/drilldownable.rb, line 57 def parse_labeled_drilldowns(labeled_drilldown_requests, raw_drilldowns) drilldowns = {} (raw_drilldowns || {}).each do |label, raw_drilldown| labeled_drilldown_request = labeled_drilldown_requests[label] drilldowns[label] = parse_drilldown(label, labeled_drilldown_request.keys, raw_drilldown) end drilldowns end