Class: Julewire::GCP::LabelFormatter

Inherits:
Object
  • Object
show all
Defined in:
lib/julewire/gcp/label_formatter.rb

Instance Method Summary collapse

Constructor Details

#initialize(max_labels: GCP::DEFAULT_MAX_LABELS, max_label_key_bytes: GCP::DEFAULT_MAX_LABEL_KEY_BYTES, max_label_value_bytes: GCP::DEFAULT_MAX_LABEL_VALUE_BYTES) ⇒ LabelFormatter

Returns a new instance of LabelFormatter.



6
7
8
9
10
11
12
# File 'lib/julewire/gcp/label_formatter.rb', line 6

def initialize(max_labels: GCP::DEFAULT_MAX_LABELS,
               max_label_key_bytes: GCP::DEFAULT_MAX_LABEL_KEY_BYTES,
               max_label_value_bytes: GCP::DEFAULT_MAX_LABEL_VALUE_BYTES)
  @max_labels = validate_count_limit(max_labels, name: :max_labels)
  @max_label_key_bytes = validate_byte_limit(max_label_key_bytes, name: :max_label_key_bytes)
  @max_label_value_bytes = validate_byte_limit(max_label_value_bytes, name: :max_label_value_bytes)
end

Instance Method Details

#call(labels) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/julewire/gcp/label_formatter.rb', line 14

def call(labels)
  return if labels.empty?

  labels.each_with_object({}) do |(key, value), result|
    break result if @max_labels && result.size >= @max_labels

    label_key = label_key(key)
    next unless label_key

    result[label_key] = bounded_label_string(value, @max_label_value_bytes)
  end
end