Class: Datadog::Core::Configuration::OptionDefinition::Builder
- Inherits:
-
Object
- Object
- Datadog::Core::Configuration::OptionDefinition::Builder
- Defined in:
- lib/datadog/core/configuration/option_definition.rb
Overview
Acts as DSL for building OptionDefinitions
Instance Attribute Summary collapse
-
#helpers ⇒ Object
readonly
Returns the value of attribute helpers.
Instance Method Summary collapse
- #after_set(&block) ⇒ Object
-
#apply_options!(options = {}) ⇒ Object
For applying options for OptionDefinition.
- #default(value = nil, &block) ⇒ Object
- #default_proc(&block) ⇒ Object
- #deprecated_env(value) ⇒ Object
- #env(value) ⇒ Object
-
#env_parser(&block) ⇒ Object
Invoked when the option is first read, and #env is defined.
- #helper(name, *_args, &block) ⇒ Object
-
#initialize(name, options = {}) {|_self| ... } ⇒ Builder
constructor
A new instance of Builder.
- #meta ⇒ Object
- #resetter(&block) ⇒ Object
- #setter(&block) ⇒ Object
- #to_definition ⇒ Object
- #type(value, nilable: false) ⇒ Object
Constructor Details
#initialize(name, options = {}) {|_self| ... } ⇒ Builder
Returns a new instance of Builder.
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 52 def initialize(name, = {}) @env = nil @deprecated_env = nil @env_parser = nil @default = nil @default_proc = nil @helpers = {} @name = name.to_sym @after_set = nil @resetter = nil @setter = OptionDefinition::IDENTITY @type = nil @type_options = {} # If options were supplied, apply them. () # Apply block if given. yield(self) if block_given? end |
Instance Attribute Details
#helpers ⇒ Object (readonly)
Returns the value of attribute helpers.
49 50 51 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 49 def helpers @helpers end |
Instance Method Details
#after_set(&block) ⇒ Object
100 101 102 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 100 def after_set(&block) @after_set = block end |
#apply_options!(options = {}) ⇒ Object
For applying options for OptionDefinition
120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 120 def ( = {}) return if .nil? || .empty? default([:default]) if .key?(:default) default_proc(&[:default_proc]) if .key?(:default_proc) env([:env]) if .key?(:env) deprecated_env([:deprecated_env]) if .key?(:deprecated_env) env_parser(&[:env_parser]) if .key?(:env_parser) after_set(&[:after_set]) if .key?(:after_set) resetter(&[:resetter]) if .key?(:resetter) setter(&[:setter]) if .key?(:setter) type([:type], **([:type_options] || {})) if .key?(:type) end |
#default(value = nil, &block) ⇒ Object
88 89 90 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 88 def default(value = nil, &block) @default = block || value end |
#default_proc(&block) ⇒ Object
92 93 94 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 92 def default_proc(&block) @default_proc = block end |
#deprecated_env(value) ⇒ Object
78 79 80 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 78 def deprecated_env(value) @deprecated_env = value end |
#env(value) ⇒ Object
74 75 76 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 74 def env(value) @env = value end |
#env_parser(&block) ⇒ Object
Invoked when the option is first read, and #env is defined. The block provided is only invoked if the environment variable is present (not-nil).
84 85 86 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 84 def env_parser(&block) @env_parser = block end |
#helper(name, *_args, &block) ⇒ Object
96 97 98 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 96 def helper(name, *_args, &block) @helpers[name] = block end |
#meta ⇒ Object
138 139 140 141 142 143 144 145 146 147 148 149 150 151 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 138 def { default: @default, default_proc: @default_proc, env: @env, deprecated_env: @deprecated_env, env_parser: @env_parser, after_set: @after_set, resetter: @resetter, setter: @setter, type: @type, type_options: @type_options } end |
#resetter(&block) ⇒ Object
104 105 106 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 104 def resetter(&block) @resetter = block end |
#setter(&block) ⇒ Object
108 109 110 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 108 def setter(&block) @setter = block end |
#to_definition ⇒ Object
134 135 136 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 134 def to_definition OptionDefinition.new(@name, ) end |
#type(value, nilable: false) ⇒ Object
112 113 114 115 116 117 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 112 def type(value, nilable: false) @type = value @type_options = { nilable: nilable } value end |