Class: MusaLCEServer::Toggle
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
-
#enabled ⇒ Boolean, Symbol
+true+, +false+, or +:inactive+.
Class Method Summary collapse
Instance Method Summary collapse
- #emit_all_state ⇒ Object
-
#enabled? ⇒ Boolean
True iff +enabled+ is exactly +true+.
-
#inactive! ⇒ Object
Convenience: set to +:inactive+.
-
#inactive? ⇒ Boolean
True iff +enabled+ is +:inactive+.
-
#initialize(**kwargs) ⇒ Toggle
constructor
A new instance of Toggle.
-
#off! ⇒ Object
Convenience: set to +false+.
-
#on! ⇒ Object
Convenience: set to +true+.
-
#toggle! ⇒ Object
Toggles between +true+ and +false+.
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
#enabled ⇒ Boolean, Symbol
Returns +true+, +false+, or +:inactive+.
260 261 262 |
# File 'lib/surface.rb', line 260 def enabled @enabled end |
Class Method Details
.type_name ⇒ Object
257 |
# File 'lib/surface.rb', line 257 def self.type_name = :toggle |
Instance Method Details
#emit_all_state ⇒ Object
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+.
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+.
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 |