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