Class: MusaLCEServer::Toggle

Inherits:
Control
  • Object
show all
Defined in:
lib/surface.rb

Overview

A stateful on/off control with a three-valued enabled property: true (on), false (off available), :inactive (control is known but currently not actionable, typically rendered dimmed).

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**kwargs) ⇒ Toggle

Returns a new instance of Toggle.



262
263
264
265
# File 'lib/surface.rb', line 262

def initialize(**kwargs)
  super
  @enabled = :inactive
end

Instance Attribute Details

#enabledBoolean, Symbol

Returns true, false, or :inactive.

Returns:

  • (Boolean, Symbol)

    true, false, or :inactive



260
261
262
# File 'lib/surface.rb', line 260

def enabled
  @enabled
end

Class Method Details

.type_nameObject



257
# File 'lib/surface.rb', line 257

def self.type_name = :toggle

Instance Method Details

#emit_all_stateObject



303
304
305
306
# File 'lib/surface.rb', line 303

def emit_all_state
  super
  emit(:enabled, @enabled.to_s)
end

#enabled?Boolean

Returns true iff enabled is exactly true.

Returns:

  • (Boolean)

    true iff enabled is exactly true



277
278
279
# File 'lib/surface.rb', line 277

def enabled?
  @enabled == true
end

#inactive!Object

Convenience: set to :inactive.



291
# File 'lib/surface.rb', line 291

def inactive! = (self.enabled = :inactive)

#inactive?Boolean

Returns true iff enabled is :inactive.

Returns:

  • (Boolean)

    true iff enabled is :inactive



282
283
284
# File 'lib/surface.rb', line 282

def inactive?
  @enabled == :inactive
end

#off!Object

Convenience: set to false.



289
290
# File 'lib/surface.rb', line 289

def off! = (self.enabled = false)
# Convenience: set to +:inactive+.

#on!Object

Convenience: set to true.



287
288
# File 'lib/surface.rb', line 287

def on!  = (self.enabled = true)
# Convenience: set to +false+.

#toggle!Object

Toggles between true and false. From :inactive goes to true (entering active service).



295
296
297
298
299
300
301
# File 'lib/surface.rb', line 295

def toggle!
  case @enabled
  when true  then off!
  when false then on!
  else            on!
  end
end