Sha256: e4c1d8e901cd111939ec89cf28cccdd1d47b0abffb0c30106067b1435646ff11

Contents?: true

Size: 1.17 KB

Versions: 15

Compression:

Stored size: 1.17 KB

Contents

require 'ddtrace/contrib/patcher'
require 'ddtrace/ext/app_types'
require 'ddtrace/contrib/active_model_serializers/ext'
require 'ddtrace/contrib/active_model_serializers/events'

module Datadog
  module Contrib
    module ActiveModelSerializers
      # Patcher enables patching of 'active_model_serializers' module.
      module Patcher
        include Contrib::Patcher

        module_function

        def patched?
          done?(:active_model_serializers)
        end

        def patch
          do_once(:active_model_serializers) do
            begin
              # Subscribe to ActiveModelSerializers events
              Events.subscribe!

              # Set service info
              get_option(:tracer).set_service_info(
                get_option(:service_name),
                Ext::APP,
                Datadog::Ext::AppTypes::WEB
              )
            rescue StandardError => e
              Datadog::Tracer.log.error("Unable to apply ActiveModelSerializers integration: #{e}")
            end
          end
        end

        def get_option(option)
          Datadog.configuration[:active_model_serializers].get_option(option)
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
ddtrace-0.22.0 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.21.2 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.21.1 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.21.0 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.20.0 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.19.1 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.19.0 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.18.3 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.18.2 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.18.1 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.18.0 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.17.3 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.17.2 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.17.1 lib/ddtrace/contrib/active_model_serializers/patcher.rb
ddtrace-0.17.0 lib/ddtrace/contrib/active_model_serializers/patcher.rb