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
- #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
98 99 100 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 98 def after_set(&block) @after_set = block end |
#apply_options!(options = {}) ⇒ Object
For applying options for OptionDefinition
118 119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 118 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
86 87 88 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 86 def default(value = nil, &block) @default = block || value end |
#default_proc(&block) ⇒ Object
90 91 92 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 90 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
82 83 84 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 82 def env_parser(&block) @env_parser = block end |
#helper(name, *_args, &block) ⇒ Object
94 95 96 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 94 def helper(name, *_args, &block) @helpers[name] = block end |
#meta ⇒ Object
136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 136 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
102 103 104 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 102 def resetter(&block) @resetter = block end |
#setter(&block) ⇒ Object
106 107 108 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 106 def setter(&block) @setter = block end |
#to_definition ⇒ Object
132 133 134 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 132 def to_definition OptionDefinition.new(@name, ) end |
#type(value, nilable: false) ⇒ Object
110 111 112 113 114 115 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 110 def type(value, nilable: false) @type = value @type_options = { nilable: nilable } value end |