class ReportsKit::Reports::PropertiesToFilter
Attributes
context_record[RW]
properties[RW]
Public Class Methods
new(properties, context_record: nil)
click to toggle source
# File lib/reports_kit/reports/properties_to_filter.rb, line 6 def initialize(properties, context_record: nil) self.properties = properties self.context_record = context_record end
Public Instance Methods
perform(filter_key)
click to toggle source
# File lib/reports_kit/reports/properties_to_filter.rb, line 11 def perform(filter_key) filter_key = filter_key.to_s filter = filters.find { |f| f.key == filter_key } raise ArgumentError.new("A filter with key '#{filter_key}' is not configured in this report") unless filter filter end
Private Instance Methods
filters()
click to toggle source
# File lib/reports_kit/reports/properties_to_filter.rb, line 20 def filters @filters ||= ui_filters + series_filters end
series_filters()
click to toggle source
# File lib/reports_kit/reports/properties_to_filter.rb, line 24 def series_filters serieses.map(&:filters).flatten end
serieses()
click to toggle source
# File lib/reports_kit/reports/properties_to_filter.rb, line 35 def serieses Reports::Series.new_from_properties!(properties, context_record: context_record) end
ui_filters()
click to toggle source
# File lib/reports_kit/reports/properties_to_filter.rb, line 28 def ui_filters return [] if properties[:ui_filters].blank? properties[:ui_filters].map do |ui_filter_properties| Reports::Filter.new(ui_filter_properties) end end