Sha256: 38f2b9ee70574cdd446f9e176e91c86cff2388ca9b5c35c921b8ee3a2427501d

Contents?: true

Size: 813 Bytes

Versions: 24

Compression:

Stored size: 813 Bytes

Contents

require 'ddtrace/registry'

module Datadog
  module Contrib
    # Defines registerable behavior for integrations
    module Registerable
      def self.included(base)
        base.send(:extend, ClassMethods)
        base.send(:include, InstanceMethods)
      end

      # Class methods for registerable behavior
      module ClassMethods
        def register_as(name, options = {})
          registry = options.fetch(:registry, Datadog.registry)
          auto_patch = options.fetch(:auto_patch, false)

          registry.add(name, new(name, options), auto_patch)
        end
      end

      # Instance methods for registerable behavior
      module InstanceMethods
        attr_reader \
          :name

        def initialize(name, options = {})
          @name = name
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
ddtrace-0.20.0 lib/ddtrace/contrib/registerable.rb
ddtrace-0.19.1 lib/ddtrace/contrib/registerable.rb
ddtrace-0.19.0 lib/ddtrace/contrib/registerable.rb
ddtrace-0.18.3 lib/ddtrace/contrib/registerable.rb
ddtrace-0.18.2 lib/ddtrace/contrib/registerable.rb
ddtrace-0.18.1 lib/ddtrace/contrib/registerable.rb
ddtrace-0.18.0 lib/ddtrace/contrib/registerable.rb
ddtrace-0.17.3 lib/ddtrace/contrib/registerable.rb
ddtrace-0.17.2 lib/ddtrace/contrib/registerable.rb
ddtrace-0.17.1 lib/ddtrace/contrib/registerable.rb
ddtrace-0.17.0 lib/ddtrace/contrib/registerable.rb
ddtrace-0.16.1 lib/ddtrace/contrib/registerable.rb
ddtrace-0.15.0.internaltracinfeature1 lib/ddtrace/contrib/registerable.rb
ddtrace-0.16.0 lib/ddtrace/contrib/registerable.rb
ddtrace-0.14.2.disableprotocolversion4 lib/ddtrace/contrib/registerable.rb
ddtrace-0.15.0 lib/ddtrace/contrib/registerable.rb
ddtrace-0.14.2.withoutpriorityparsing1 lib/ddtrace/contrib/registerable.rb
ddtrace-0.14.2 lib/ddtrace/contrib/registerable.rb
ddtrace-0.14.1 lib/ddtrace/contrib/registerable.rb
ddtrace-0.15.0.beta1 lib/ddtrace/contrib/registerable.rb