Class: Datadog::Core::Configuration::OptionDefinition::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/datadog/core/configuration/option_definition.rb

Overview

Acts as DSL for building OptionDefinitions

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, options = {}) {|_self| ... } ⇒ Builder

Returns a new instance of Builder.

Yields:

  • (_self)

Yield Parameters:



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, options = {})
  @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_options!(options)

  # Apply block if given.
  yield(self) if block_given?
end

Instance Attribute Details

#helpersObject (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 apply_options!(options = {})
  return if options.nil? || options.empty?

  default(options[:default]) if options.key?(:default)
  delegate_to(&options[:delegate_to]) if options.key?(:delegate_to)
  depends_on(*options[:depends_on]) if options.key?(:depends_on)
  lazy(options[:lazy]) if options.key?(:lazy)
  on_set(&options[:on_set]) if options.key?(:on_set)
  resetter(&options[:resetter]) if options.key?(:resetter)
  setter(&options[:setter]) if options.key?(:setter)
  type(&options[:type]) if options.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

#metaObject



119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/datadog/core/configuration/option_definition.rb', line 119

def meta
  {
    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_definitionObject



115
116
117
# File 'lib/datadog/core/configuration/option_definition.rb', line 115

def to_definition
  OptionDefinition.new(@name, meta)
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