Class: Datadog::Contrib::Configuration::Resolvers::PatternResolver

Inherits:
Datadog::Contrib::Configuration::Resolver show all
Defined in:
lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb

Overview

Matches strings against Regexps.

Instance Method Summary collapse

Instance Method Details

#add(pattern) ⇒ Object



26
27
28
# File 'lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb', line 26

def add(pattern)
  patterns << (pattern.is_a?(Regexp) || pattern.is_a?(Proc) ? pattern : pattern.to_s)
end

#resolve(name) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb', line 10

def resolve(name)
  # Try to find a matching pattern
  matching_pattern = patterns.find do |pattern|
    # Rubocop incorrectly thinks assignment is done here...
    # rubocop:disable Style/ConditionalAssignment
    if pattern.is_a?(Proc)
      pattern === name
    else
      pattern === name.to_s # Co-erce to string
    end
  end

  # Return match or default
  matching_pattern || :default
end