Class: QTimetrap::Services::SettingsStore
- Inherits:
-
Object
- Object
- QTimetrap::Services::SettingsStore
- Defined in:
- app/services/settings_store.rb
Overview
Persists lightweight UI settings in a YAML file under user config.
Instance Method Summary collapse
-
#initialize(path: default_path) ⇒ SettingsStore
constructor
A new instance of SettingsStore.
- #read_theme_name ⇒ Object
- #read_window_geometry ⇒ Object
- #write_theme_name(theme_name) ⇒ Object
- #write_window_geometry(left:, top:, width:, height:) ⇒ Object
Constructor Details
#initialize(path: default_path) ⇒ SettingsStore
Returns a new instance of SettingsStore.
10 11 12 |
# File 'app/services/settings_store.rb', line 10 def initialize(path: default_path) @path = path end |
Instance Method Details
#read_theme_name ⇒ Object
14 15 16 |
# File 'app/services/settings_store.rb', line 14 def read_theme_name data['theme'] end |
#read_window_geometry ⇒ Object
27 28 29 30 31 32 33 |
# File 'app/services/settings_store.rb', line 27 def read_window_geometry value = data['window'] return nil unless value.is_a?(Hash) geometry = stringify_keys(value) parse_window_geometry(geometry) end |
#write_theme_name(theme_name) ⇒ Object
18 19 20 21 22 23 24 25 |
# File 'app/services/settings_store.rb', line 18 def write_theme_name(theme_name) value = theme_name.to_s.strip return if value.empty? payload = data.merge('theme' => value) FileUtils.mkdir_p(File.dirname(path)) File.write(path, payload.to_yaml) end |
#write_window_geometry(left:, top:, width:, height:) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/services/settings_store.rb', line 35 def write_window_geometry(left:, top:, width:, height:) payload = data.merge( 'window' => { 'left' => Integer(left), 'top' => Integer(top), 'width' => Integer(width), 'height' => Integer(height) } ) FileUtils.mkdir_p(File.dirname(path)) File.write(path, payload.to_yaml) end |