Class: OllamaChat::Switches::DatabaseSwitch
- Inherits:
-
Object
- Object
- OllamaChat::Switches::DatabaseSwitch
- Includes:
- CheckSwitch, PerformCallbacks
- Defined in:
- lib/ollama_chat/switches.rb
Overview
Manages boolean configuration states that are persisted in the database.
This class acts as a wrapper around a database attribute, allowing for toggling and setting of boolean values while ensuring that changes are immediately saved to the associated session.
Instance Attribute Summary collapse
-
#attribute ⇒ Object
readonly
Returns the value of attribute attribute.
Instance Method Summary collapse
-
#initialize(chat:, msg:, attribute:, callbacks: {}) ⇒ DatabaseSwitch
constructor
Initializes a new DatabaseSwitch instance.
-
#set(value, show: false, output: STDOUT) ⇒ String, ...
Updates the session attribute with the given value and optionally displays it.
-
#toggle(show: true) ⇒ String, ...
Toggles the value of a session attribute and optionally displays the new state.
-
#value ⇒ Boolean
Returns the current value of the attribute from the session.
Methods included from CheckSwitch
Constructor Details
#initialize(chat:, msg:, attribute:, callbacks: {}) ⇒ DatabaseSwitch
Initializes a new DatabaseSwitch instance.
155 156 157 158 159 160 |
# File 'lib/ollama_chat/switches.rb', line 155 def initialize(chat:, msg:, attribute:, callbacks: {}) @chat = chat @attribute = attribute @msg = msg @callbacks = callbacks.to_h end |
Instance Attribute Details
#attribute ⇒ Object (readonly)
Returns the value of attribute attribute.
171 172 173 |
# File 'lib/ollama_chat/switches.rb', line 171 def attribute @attribute end |
Instance Method Details
#set(value, show: false, output: STDOUT) ⇒ String, ...
Updates the session attribute with the given value and optionally displays it.
179 180 181 182 |
# File 'lib/ollama_chat/switches.rb', line 179 def set(value, show: false, output: STDOUT) @chat.session.update("#{attribute}": !!value) show && self.show(output:) end |
#toggle(show: true) ⇒ String, ...
Toggles the value of a session attribute and optionally displays the new state.
188 189 190 191 |
# File 'lib/ollama_chat/switches.rb', line 188 def toggle(show: true) @chat.session.update("#{attribute}": !value) show && self.show end |
#value ⇒ Boolean
Returns the current value of the attribute from the session.
165 166 167 |
# File 'lib/ollama_chat/switches.rb', line 165 def value @chat.session.send(@attribute) end |