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.
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 44 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.
41 42 43 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 41 def helpers @helpers end |
Instance Method Details
#apply_options!(options = {}) ⇒ Object
For applying options for OptionDefinition
100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 100 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
67 68 69 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 67 def default(value = nil, &block) @default = block || value end |
#delegate_to(&block) ⇒ Object
71 72 73 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 71 def delegate_to(&block) @delegate_to = block end |
#depends_on(*values) ⇒ Object
63 64 65 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 63 def depends_on(*values) @depends_on = values.flatten end |
#helper(name, *_args, &block) ⇒ Object
75 76 77 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 75 def helper(name, *_args, &block) @helpers[name] = block end |
#lazy(value = true) ⇒ Object
79 80 81 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 79 def lazy(value = true) @lazy = value end |
#meta ⇒ Object
117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 117 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
83 84 85 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 83 def on_set(&block) @on_set = block end |
#resetter(&block) ⇒ Object
87 88 89 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 87 def resetter(&block) @resetter = block end |
#setter(&block) ⇒ Object
91 92 93 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 91 def setter(&block) @setter = block end |
#to_definition ⇒ Object
113 114 115 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 113 def to_definition OptionDefinition.new(@name, ) end |
#type(value = nil) ⇒ Object
95 96 97 |
# File 'lib/datadog/core/configuration/option_definition.rb', line 95 def type(value = nil) @type = value end |