Module: Gitlab::Database::Aggregation::ParameterizedDefinition
- Extended by:
- ActiveSupport::Concern
- Included in:
- ActiveRecord::DateBucketDimension, ClickHouse::DateBucketDimension, ClickHouse::Quantile
- Defined in:
- lib/gitlab/database/aggregation/parameterized_definition.rb
Instance Attribute Summary collapse
-
#parameters ⇒ Object
readonly
Returns the value of attribute parameters.
Instance Method Summary collapse
Instance Attribute Details
#parameters ⇒ Object (readonly)
Returns the value of attribute parameters.
15 16 17 |
# File 'lib/gitlab/database/aggregation/parameterized_definition.rb', line 15 def parameters @parameters end |
Instance Method Details
#initialize(*args, parameters: {}, **kwargs) ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/gitlab/database/aggregation/parameterized_definition.rb', line 17 def initialize(*args, parameters: {}, **kwargs) super guard_parameters_definition!(parameters) @parameters = parameters || {} end |
#instance_key(configuration) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/gitlab/database/aggregation/parameterized_definition.rb', line 25 def instance_key(configuration) return super unless parameterized? && configuration[:parameters].present? parameters_postfix = parameters.keys.map { |p_key| instance_parameter(p_key, configuration) || '' }.join('_') unless /\A\w+\z/.match?(parameters_postfix) parameters_postfix = OpenSSL::Digest::SHA256.hexdigest(parameters_postfix)[0...5] end "#{super}_#{parameters_postfix}" end |