Sha256: 26d11d78eaea1223b5cef3d2a69762f0d0b11047e5a3cd9d0f87cf4fbb9d86be

Contents?: true

Size: 1.07 KB

Versions: 14

Compression:

Stored size: 1.07 KB

Contents

require 'ddtrace/contrib/configuration/resolver'

module Datadog
  module Contrib
    module Configuration
      # Resolves a value to a configuration key
      module Resolvers
        # Matches strings against Regexps.
        class PatternResolver < Datadog::Contrib::Configuration::Resolver
          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

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

          private

          def patterns
            @patterns ||= Set.new
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
ddtrace-0.42.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.41.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ls-trace-0.2.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.40.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.39.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.38.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.37.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.36.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.35.2 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.35.1 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.35.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.34.2 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.34.1 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb
ddtrace-0.34.0 lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb