Sha256: 80a9cdbb3a293b651dce161a90d81dcef6f6bda3d5c5580c70d4063b9b9d22f7

Contents?: true

Size: 616 Bytes

Versions: 2

Compression:

Stored size: 616 Bytes

Contents

require 'forwardable'

module Datadog
  class Configuration
    # Proxy provides a hash-like interface for fetching/setting configurations
    class Proxy
      extend Forwardable

      def initialize(integration)
        @integration = integration
      end

      def [](param)
        value = @integration.get_option(param)

        return value.call if value.respond_to?(:call)

        value
      end

      def []=(param, value)
        @integration.set_option(param, value)
      end

      def_delegators :@integration, :to_h, :reset_options!
      def_delegators :to_h, :to_hash, :merge
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ddtrace-0.11.0.beta1 lib/ddtrace/configuration/proxy.rb
ddtrace-0.10.0 lib/ddtrace/configuration/proxy.rb