Sha256: 4c7dc284ab123d77970e19fcc3802931efbdfc61109d4eb0c39daf50cb3340a2

Contents?: true

Size: 603 Bytes

Versions: 3

Compression:

Stored size: 603 Bytes

Contents

module ReportsKit
  module Reports
    class ContextualFilter
      attr_accessor :key, :model_settings

      delegate :settings_from_model, to: :model_settings

      def initialize(key, model_class)
        self.key = key.to_sym
        self.model_settings = ModelSettings.new(model_class, :contextual_filters, self.key)
      end

      def apply(relation, context_params)
        raise ArgumentError.new("contextual_filter with key :#{key} not defined in #{model_class}") if settings_from_model.blank?
        settings_from_model[:method].call(relation, context_params)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
reports_kit-0.7.1 lib/reports_kit/reports/contextual_filter.rb
reports_kit-0.7.0 lib/reports_kit/reports/contextual_filter.rb
reports_kit-0.5.0 lib/reports_kit/reports/contextual_filter.rb