Sha256: b0122fbcb51eda614fe686e116faa61bda087aff596d1c8f5503a77061874f8a

Contents?: true

Size: 772 Bytes

Versions: 27

Compression:

Stored size: 772 Bytes

Contents

module Datadog
  module Contrib
    # Base provides features that are shared across all integrations
    module Patchable
      def self.included(base)
        base.send(:extend, ClassMethods)
        base.send(:include, InstanceMethods)
      end

      # Class methods for integrations
      module ClassMethods
        def version
          nil
        end

        def present?
          !version.nil?
        end

        def compatible?
          RUBY_VERSION >= '1.9.3' && present?
        end
      end

      # Instance methods for integrations
      module InstanceMethods
        def patcher
          nil
        end

        def patch
          return if !self.class.compatible? || patcher.nil?
          patcher.patch
        end
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
ddtrace-0.21.2 lib/ddtrace/contrib/patchable.rb
ddtrace-0.21.1 lib/ddtrace/contrib/patchable.rb
ddtrace-0.21.0 lib/ddtrace/contrib/patchable.rb
ddtrace-0.20.0 lib/ddtrace/contrib/patchable.rb
ddtrace-0.19.1 lib/ddtrace/contrib/patchable.rb
ddtrace-0.19.0 lib/ddtrace/contrib/patchable.rb
ddtrace-0.18.3 lib/ddtrace/contrib/patchable.rb
ddtrace-0.18.2 lib/ddtrace/contrib/patchable.rb
ddtrace-0.18.1 lib/ddtrace/contrib/patchable.rb
ddtrace-0.18.0 lib/ddtrace/contrib/patchable.rb
ddtrace-0.17.3 lib/ddtrace/contrib/patchable.rb
ddtrace-0.17.2 lib/ddtrace/contrib/patchable.rb
ddtrace-0.17.1 lib/ddtrace/contrib/patchable.rb
ddtrace-0.17.0 lib/ddtrace/contrib/patchable.rb
ddtrace-0.16.1 lib/ddtrace/contrib/patchable.rb
ddtrace-0.15.0.internaltracinfeature1 lib/ddtrace/contrib/patchable.rb
ddtrace-0.16.0 lib/ddtrace/contrib/patchable.rb
ddtrace-0.14.2.disableprotocolversion4 lib/ddtrace/contrib/patchable.rb
ddtrace-0.15.0 lib/ddtrace/contrib/patchable.rb
ddtrace-0.14.2.withoutpriorityparsing1 lib/ddtrace/contrib/patchable.rb