Class: Hackle::IdentifiersBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/hackle/internal/identifiers/identifier_builder.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeIdentifiersBuilder

Returns a new instance of IdentifiersBuilder.



7
8
9
10
# File 'lib/hackle/internal/identifiers/identifier_builder.rb', line 7

def initialize
  # @type [Hash{String => String}]
  @identifiers = {}
end

Class Method Details

.sanitize_value_or_nil(identifier_value) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/hackle/internal/identifiers/identifier_builder.rb', line 41

def self.sanitize_value_or_nil(identifier_value)
  return nil if identifier_value.nil?

  if identifier_value.is_a?(String) && !identifier_value.empty? && identifier_value.length <= MAX_IDENTIFIER_VALUE_LENGTH
    return identifier_value
  end

  return identifier_value.to_s if identifier_value.is_a?(Numeric)

  nil
end

Instance Method Details

#add(identifier_type, identifier_value) ⇒ Hackle::IdentifiersBuilder

Parameters:

  • identifier_type (String)
  • identifier_value (String, nil)

Returns:



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/hackle/internal/identifiers/identifier_builder.rb', line 15

def add(identifier_type, identifier_value)
  value = IdentifiersBuilder.sanitize_value_or_nil(identifier_value)

  if valid_type?(identifier_type) && !value.nil?
    @identifiers[identifier_type] = value
  else
    Log.get.warn { "Invalid user identifier [type=#{identifier_type}] value=#{identifier_value}]" }
  end

  self
end

#add_all(identifiers) ⇒ Hackle::IdentifiersBuilder

Parameters:

  • identifiers (Hash)

Returns:



29
30
31
32
33
34
# File 'lib/hackle/internal/identifiers/identifier_builder.rb', line 29

def add_all(identifiers)
  identifiers.each do |identifier_type, identifier_value|
    add(identifier_type, identifier_value)
  end
  self
end

#buildHash{String => String}

Returns:

  • (Hash{String => String})


37
38
39
# File 'lib/hackle/internal/identifiers/identifier_builder.rb', line 37

def build
  @identifiers.dup
end