Sha256: 916473d500e2c272fced68cadfbcaed043e3a970f73aae052099f6ebf8b11a96

Contents?: true

Size: 649 Bytes

Versions: 15

Compression:

Stored size: 649 Bytes

Contents

module Datadog
  module Configuration
    # Represents an instance of an integration configuration option
    class Option
      attr_reader \
        :definition

      def initialize(definition, context)
        @definition = definition
        @context = context
        @value = nil
        @is_set = false
      end

      def set(value)
        @value = @context.instance_exec(value, &definition.setter).tap do
          @is_set = true
        end
      end

      def get
        return definition.default_value unless @is_set
        @value
      end

      def reset
        @is_set = false
        @value = nil
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
ddtrace-0.26.1 lib/ddtrace/configuration/option.rb
ddtrace-0.28.0 lib/ddtrace/configuration/option.rb
ddtrace-0.27.0 lib/ddtrace/configuration/option.rb
ddtrace-0.26.0 lib/ddtrace/configuration/option.rb
ddtrace-0.25.1 lib/ddtrace/configuration/option.rb
ddtrace-0.25.0 lib/ddtrace/configuration/option.rb
ddtrace-0.24.0 lib/ddtrace/configuration/option.rb
ddtrace-0.23.3 lib/ddtrace/configuration/option.rb
ddtrace-0.23.2 lib/ddtrace/configuration/option.rb
ddtrace-0.23.1 lib/ddtrace/configuration/option.rb
ddtrace-0.23.0 lib/ddtrace/configuration/option.rb
ddtrace-0.22.0 lib/ddtrace/configuration/option.rb
ddtrace-0.21.2 lib/ddtrace/configuration/option.rb
ddtrace-0.21.1 lib/ddtrace/configuration/option.rb
ddtrace-0.21.0 lib/ddtrace/configuration/option.rb