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
-
#apply_options!(options = {}) ⇒ Object
For applying options for OptionDefinition.
- #default(value = nil, &block) ⇒ Object
- #delegate_to(&block) ⇒ Object
- #depends_on(*values) ⇒ Object
- #helper(name, *_args, &block) ⇒ Object
-
#initialize(name, options = {}) {|_self| ... } ⇒ Builder
constructor
A new instance of Builder.
- #lazy(value = true) ⇒ Object
- #meta ⇒ Object
- #on_set(&block) ⇒ Object
- #resetter(&block) ⇒ Object
- #setter(&block) ⇒ Object
- #to_definition ⇒ Object
- #type(value = nil) ⇒ Object
Constructor Details
#initialize(name, options = {}) {|_self| ... } ⇒ Builder
Returns a new instance of Builder.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 46 def initialize(name, = {}) @default = nil @delegate_to = nil @depends_on = [] @helpers = {} @lazy = false @name = name.to_sym @on_set = nil @resetter = nil @setter = OptionDefinition::IDENTITY @type = nil # 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.
43 44 45 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 43 def helpers @helpers end |
Instance Method Details
#apply_options!(options = {}) ⇒ Object
For applying options for OptionDefinition
102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 102 def ( = {}) return if .nil? || .empty? default([:default]) if .key?(:default) delegate_to(&[:delegate_to]) if .key?(:delegate_to) depends_on(*[:depends_on]) if .key?(:depends_on) lazy([:lazy]) if .key?(:lazy) on_set(&[:on_set]) if .key?(:on_set) resetter(&[:resetter]) if .key?(:resetter) setter(&[:setter]) if .key?(:setter) type(&[:type]) if .key?(:type) end |
#default(value = nil, &block) ⇒ Object
69 70 71 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 69 def default(value = nil, &block) @default = block || value end |
#delegate_to(&block) ⇒ Object
73 74 75 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 73 def delegate_to(&block) @delegate_to = block end |
#depends_on(*values) ⇒ Object
65 66 67 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 65 def depends_on(*values) @depends_on = values.flatten end |
#helper(name, *_args, &block) ⇒ Object
77 78 79 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 77 def helper(name, *_args, &block) @helpers[name] = block end |
#lazy(value = true) ⇒ Object
81 82 83 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 81 def lazy(value = true) @lazy = value end |
#meta ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 119 def { default: @default, delegate_to: @delegate_to, depends_on: @depends_on, lazy: @lazy, on_set: @on_set, resetter: @resetter, setter: @setter, type: @type } end |
#on_set(&block) ⇒ Object
85 86 87 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 85 def on_set(&block) @on_set = block end |
#resetter(&block) ⇒ Object
89 90 91 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 89 def resetter(&block) @resetter = block end |
#setter(&block) ⇒ Object
93 94 95 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 93 def setter(&block) @setter = block end |
#to_definition ⇒ Object
115 116 117 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 115 def to_definition OptionDefinition.new(@name, ) end |
#type(value = nil) ⇒ Object
97 98 99 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 97 def type(value = nil) @type = value end |