Sha256: bfb4e922c352cddda1a632c16676899fdba7bd300599c636dd4c59a3ba3edee6

Contents?: true

Size: 1.01 KB

Versions: 6

Compression:

Stored size: 1.01 KB

Contents

require 'ddtrace/contrib/configuration/resolver'

module Datadog
  module Contrib
    module Configuration
      # Resolves a value to a configuration key
      module Resolvers
        # Matches Strings and Regexps against `object.to_s` objects
        # and Procs against plain objects.
        class PatternResolver < Contrib::Configuration::Resolver
          def resolve(value)
            return if configurations.empty?

            # Try to find a matching pattern
            _, config = configurations.reverse_each.find do |matcher, _|
              matcher === if matcher.is_a?(Proc)
                            value
                          else
                            value.to_s
                          end
            end

            config
          end

          protected

          def parse_matcher(matcher)
            if matcher.is_a?(Regexp) || matcher.is_a?(Proc)
              matcher
            else
              matcher.to_s
            end
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ddtrace-0.51.1 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.51.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.50.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.49.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.48.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.47.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb