Class: CFA::BooleanValue

Inherits:
Object
  • Object
show all
Defined in:
lib/cfa/base_model.rb

Overview

Represents a boolean value switcher in default grub configuration file. Allows easy switching and questioning for boolean value, even if represented by text in config file. It’s tristate: if unset, #enabled? and #disabled? return ‘nil` (but once set, we cannot return to an unset state).

Instance Method Summary collapse

Constructor Details

#initialize(name, model, true_value: "true", false_value: "false") ⇒ BooleanValue

Returns a new instance of BooleanValue.

Parameters:

  • name (String)
  • model (BaseModel)
  • true_value (String) (defaults to: "true")
  • false_value (String) (defaults to: "false")


179
180
181
182
183
184
# File 'lib/cfa/base_model.rb', line 179

def initialize(name, model, true_value: "true", false_value: "false")
  @name = name
  @model = model
  @true_value = true_value
  @false_value = false_value
end

Instance Method Details

#defined?Boolean

Returns true if the key has a value; false if #enabled? and #disabled? return ‘nil`.

Returns:



215
216
217
# File 'lib/cfa/base_model.rb', line 215

def defined?
  !data.nil?
end

#disableObject

Set to false



192
193
194
# File 'lib/cfa/base_model.rb', line 192

def disable
  @model.generic_set(@name, @false_value)
end

#disabled?Boolean?

Returns true, false, (nil if undefined).

Returns:

  • (Boolean, nil)

    true, false, (nil if undefined)



205
206
207
208
209
210
# File 'lib/cfa/base_model.rb', line 205

def disabled?
  d = data
  return nil unless d

  d != @true_value
end

#enableObject

Set to true



187
188
189
# File 'lib/cfa/base_model.rb', line 187

def enable
  @model.generic_set(@name, @true_value)
end

#enabled?Boolean?

Returns true, false, (nil if undefined).

Returns:

  • (Boolean, nil)

    true, false, (nil if undefined)



197
198
199
200
201
202
# File 'lib/cfa/base_model.rb', line 197

def enabled?
  d = data
  return nil unless d

  d == @true_value
end

#inspectObject Also known as: to_s

enhanced inspect method to contain important data



227
228
229
230
231
# File 'lib/cfa/base_model.rb', line 227

def inspect
  "#<CFA::BooleanValue:0x#{object_id} name=#{@name.inspect}, " \
    "data=#{data.inspect}, true_value=#{@true_value.inspect}, " \
    "false_value=#{@false_value.inspect}>"
end

#value=(value) ⇒ Object

sets boolean value, recommend to use for generic boolean setter. for constants prefer to use enable/disable

Parameters:

  • value (Boolean)


222
223
224
# File 'lib/cfa/base_model.rb', line 222

def value=(value)
  @model.generic_set(@name, value ? @true_value : @false_value)
end