module Groonga::Command::Drilldownable

Public Instance Methods

drilldown() click to toggle source

@return [String] `drilldown` parameter value.

@since 1.1.3

# File lib/groonga/command/drilldownable.rb, line 23
def drilldown
  self[:drilldown]
end
drilldown_calc_target() click to toggle source

@return [String] `drilldown_calc_target` parameter value.

@since 1.1.3

# File lib/groonga/command/drilldownable.rb, line 86
def drilldown_calc_target
  self[:drilldown_calc_target]
end
drilldown_calc_types() click to toggle source

@return [String] `drilldown_calc_types` parameter value.

@since 1.1.3

# File lib/groonga/command/drilldownable.rb, line 79
def drilldown_calc_types
  self[:drilldown_calc_types]
end
drilldown_filter() click to toggle source

@return [String, nil] The filter for the drilled down result.

@since 1.3.3

# File lib/groonga/command/drilldownable.rb, line 34
def drilldown_filter
  self[:drilldown_filter]
end
drilldown_limit() click to toggle source

@return [String] `drilldown_limit` parameter value.

@since 1.1.3

# File lib/groonga/command/drilldownable.rb, line 72
def drilldown_limit
  integer_value(:drilldown_limit)
end
drilldown_offset() click to toggle source

@return [String] `drilldown_offset` parameter value.

@since 1.1.3

# File lib/groonga/command/drilldownable.rb, line 65
def drilldown_offset
  integer_value(:drilldown_offset)
end
drilldown_output_columns() click to toggle source

@return [String] `drilldown_output_columns` parameter value.

@since 1.1.3

# File lib/groonga/command/drilldownable.rb, line 58
def drilldown_output_columns
  self[:drilldown_output_columns]
end
drilldown_sort_keys() click to toggle source

@return [::Array<String>] The sort keys for drilldowns.

@since 1.2.8

# File lib/groonga/command/drilldownable.rb, line 50
def drilldown_sort_keys
  value = self[:drilldown_sort_keys] || self[:drilldown_sortby] || ""
  parse_array_value(value)
end
drilldown_sortby() click to toggle source

@return [String] `drilldown_sortby` parameter value.

@since 1.1.3

@deprecated since 1.4.4. Use `drilldown_sort_keys` instead.

# File lib/groonga/command/drilldownable.rb, line 43
def drilldown_sortby
  self[:drilldown_sortby]
end
drilldowns() click to toggle source
# File lib/groonga/command/drilldownable.rb, line 27
def drilldowns
  @drilldowns ||= array_value(:drilldown)
end
labeled_drilldowns() click to toggle source

@return [::Hash<String, Drilldown>] The labeled drilldowns.

@since 1.2.8

# File lib/groonga/command/drilldownable.rb, line 93
def labeled_drilldowns
  @labeled_drilldowns ||= parse_labeled_drilldowns("")
end

Private Instance Methods

build_labeled_drilldowns(raw_labeled_drilldowns) click to toggle source
# File lib/groonga/command/drilldownable.rb, line 112
def build_labeled_drilldowns(raw_labeled_drilldowns)
  labeled_drilldowns = {}
  raw_labeled_drilldowns.each do |label, raw_drilldown|
    keys = parse_array_value(raw_drilldown["keys"])
    sort_keys = raw_drilldown["sort_keys"] || raw_drilldown["sortby"]
    sort_keys = parse_array_value(sort_keys)
    output_columns = parse_array_value(raw_drilldown["output_columns"])
    offset = parse_integer_value(raw_drilldown["offset"])
    limit = parse_integer_value(raw_drilldown["limit"])
    calc_types = parse_array_value(raw_drilldown["calc_types"])
    calc_target = raw_drilldown["calc_target"]
    filter = raw_drilldown["filter"]
    drilldown = Drilldown.new(keys,
                              sort_keys,
                              output_columns,
                              offset,
                              limit,
                              calc_types,
                              calc_target,
                              filter,
                              label)
    labeled_drilldowns[label] = drilldown
  end
  labeled_drilldowns
end
parse_labeled_drilldowns(prefix) click to toggle source
# File lib/groonga/command/drilldownable.rb, line 98
def parse_labeled_drilldowns(prefix)
  raw_labeled_drilldowns = {}
  @arguments.each do |name, value|
    case name.to_s
    when /\A#{Regexp.escape(prefix)}drilldowns?\[(.+?)\]\.(.+?)\z/
      label = $1
      parameter_name = $2
      raw_labeled_drilldowns[label] ||= {}
      raw_labeled_drilldowns[label][parameter_name] = value
    end
  end
  build_labeled_drilldowns(raw_labeled_drilldowns)
end