Sha256: d709713b1813f203765b5518a9355b6582ac840fb74be8ec6edd491ff72cc7db
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
module ReportsKits module Reports module FilterTypes class Base attr_accessor :settings, :properties, :primary_dimension def initialize(settings, properties, primary_dimension:) self.settings = settings || {} self.properties = properties self.primary_dimension = primary_dimension end def apply_filter(records) return records unless valid? records = records.joins(joins) if joins.present? return records if value.blank? && !is_a?(FilterTypes::Boolean) apply_conditions(records) end def default_criteria self.class::DEFAULT_CRITERIA end private def apply_conditions(_records) raise NotImplementedError end def criteria @criteria ||= default_criteria.merge(properties[:criteria]) end def value criteria[:value] end def joins settings[:joins] end def column settings[:column] || Data::Utils.quote_column_name(properties[:key]) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
reports_kits-0.7.8 | lib/reports_kits/reports/filter_types/base.rb |
reports_kits-0.7.7 | lib/reports_kits/reports/filter_types/base.rb |