class Repor::Dimensions::CategoryDimension

Public Instance Methods

all_values() click to toggle source
# File lib/repor/dimensions/category_dimension.rb, line 24
def all_values
  relate(report.base_relation).
    pluck("DISTINCT #{expression}").
    map(&method(:sanitize_sql_value))
end
filter(relation) click to toggle source
# File lib/repor/dimensions/category_dimension.rb, line 4
def filter(relation)
  values = filter_values
  query = "#{expression} IN (?)"
  query = "#{expression} IS NULL OR #{query}" if values.include?(nil)
  relation.where(query, values.compact)
end
group(relation) click to toggle source
# File lib/repor/dimensions/category_dimension.rb, line 11
def group(relation)
  order relation.select("#{expression} AS #{sql_value_name}").group(sql_value_name)
end
group_values() click to toggle source
# File lib/repor/dimensions/category_dimension.rb, line 15
def group_values
  if filtering?
    filter_values
  else
    i = report.groupers.index(self)
    report.raw_data.map { |x, _y| x[i] }.uniq
  end
end