Class: LogStash::Setting

Inherits:
Object
  • Object
show all
Includes:
Util::Loggable
Defined in:
lib/logstash/settings.rb

Defined Under Namespace

Classes: ArrayCoercible, Boolean, Bytes, Coercible, ExistingFilePath, Integer, Modules, NullableString, Numeric, Port, PortRange, PositiveInteger, SplittableStringArray, String, TimeValue, Validator, WritableDirectory

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, klass, default = nil, strict = true, &validator_proc) ⇒ Setting

Returns a new instance of Setting.



170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'lib/logstash/settings.rb', line 170

def initialize(name, klass, default=nil, strict=true, &validator_proc)
  @name = name
  unless klass.is_a?(Class)
    raise ArgumentError.new("Setting \"#{@name}\" must be initialized with a class (received #{klass})")
  end
  @klass = klass
  @validator_proc = validator_proc
  @value = nil
  @value_is_set = false
  @strict = strict

  validate(default) if @strict
  @default = default
end

Instance Attribute Details

#defaultObject (readonly)

Returns the value of attribute default.



168
169
170
# File 'lib/logstash/settings.rb', line 168

def default
  @default
end

#nameObject (readonly)

Returns the value of attribute name.



168
169
170
# File 'lib/logstash/settings.rb', line 168

def name
  @name
end

Instance Method Details

#==(other) ⇒ Object



224
225
226
# File 'lib/logstash/settings.rb', line 224

def ==(other)
  self.to_hash == other.to_hash
end

#resetObject



204
205
206
207
# File 'lib/logstash/settings.rb', line 204

def reset
  @value = nil
  @value_is_set = false
end

#set(value) ⇒ Object



197
198
199
200
201
202
# File 'lib/logstash/settings.rb', line 197

def set(value)
  validate(value) if @strict
  @value = value
  @value_is_set = true
  @value
end

#set?Boolean

Returns:



189
190
191
# File 'lib/logstash/settings.rb', line 189

def set?
  @value_is_set
end

#strict?Boolean

Returns:



193
194
195
# File 'lib/logstash/settings.rb', line 193

def strict?
  @strict
end

#to_hashObject



209
210
211
212
213
214
215
216
217
218
219
220
221
222
# File 'lib/logstash/settings.rb', line 209

def to_hash
  {
    "name" => @name,
    "klass" => @klass,
    "value" => @value,
    "value_is_set" => @value_is_set,
    "default" => @default,
    # Proc#== will only return true if it's the same obj
    # so no there's no point in comparing it
    # also thereÅ› no use case atm to return the proc
    # so let's not expose it
    #"validator_proc" => @validator_proc
  }
end

#validate_valueObject



228
229
230
# File 'lib/logstash/settings.rb', line 228

def validate_value
  validate(value)
end

#valueObject



185
186
187
# File 'lib/logstash/settings.rb', line 185

def value
  @value_is_set ? @value : default
end