class Datadog::Contrib::Configuration::Resolvers::PatternResolver

Matches strings against Regexps.

Public Instance Methods

add(pattern) click to toggle source
# 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) click to toggle source
# 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

Private Instance Methods

patterns() click to toggle source
# File lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb, line 32
def patterns
  @patterns ||= Set.new
end