Sha256: 96ce655e6d0237659107fba0da70bd86a23eda617a4de2b01891ca80f715bb30

Contents?: true

Size: 1.32 KB

Versions: 63

Compression:

Stored size: 1.32 KB

Contents

require 'active_support/all'
require_relative '../validators/params_validator'

module Gitlab
  module Triage
    module Filters
      class BaseConditionsFilter
        def initialize(resource, condition)
          @resource = resource
          validate_condition(condition)
          initialize_variables(condition)
        end

        def calculate
          raise NotImplementedError
        end

        def self.filter_parameters
          []
        end

        def self.params_filter_names(params = nil)
          params ||= filter_parameters

          params.map do |param|
            param[:name]
          end
        end

        def self.all_params_filter_names
          params_filter_names
        end

        def self.params_checking_condition_value
          params_filter_names params_check_for_field(:values)
        end

        def self.params_checking_condition_type
          params_filter_names params_check_for_field(:type)
        end

        def self.params_check_for_field(field)
          filter_parameters.select do |param|
            param[field].present?
          end
        end

        private

        def validate_condition(condition)
          ParamsValidator.new(self.class.filter_parameters, condition).validate!
        end

        def initialize_variables(condition); end
      end
    end
  end
end

Version data entries

63 entries across 63 versions & 2 rubygems

Version Path
gitlab-triage-1.42.2 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.42.1 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.42.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.41.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.40.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.30.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.29.0 lib/gitlab/triage/filters/base_conditions_filter.rb
payping-gitlab-triage-0.1.3 lib/gitlab/triage/filters/base_conditions_filter.rb
payping-gitlab-triage-0.1.2 lib/gitlab/triage/filters/base_conditions_filter.rb
payping-gitlab-triage-0.1.1 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.28.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.27.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.26.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.25.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.24.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.23.1 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.23.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.22.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.21.0 lib/gitlab/triage/filters/base_conditions_filter.rb
gitlab-triage-1.20.0 lib/gitlab/triage/filters/base_conditions_filter.rb