Class: Preferences

Inherits:
Object
  • Object
show all
Includes:
ClioHelper, SettingsAccessors, SettingsInspector, Singleton
Defined in:
lib/oro/settings.rb

Overview

Singleton class representing preferred settings

Constant Summary collapse

FILE =
File.join(Dir.home, '.oro')

Instance Method Summary collapse

Methods included from ClioHelper

#clio, clioize

Methods included from SettingsAccessors

#actions, #actions=, #config, #config=, #plan, #plan=

Methods included from SettingsInspector

#to_s

Constructor Details

#initializePreferences

Returns a new instance of Preferences.



26
27
28
29
# File 'lib/oro/settings.rb', line 26

def initialize
  reset_defaults unless FileTest.readable?(FILE) # Create preference file if missing
  settings
end

Instance Method Details

#reset_defaultsObject



41
42
43
# File 'lib/oro/settings.rb', line 41

def reset_defaults
  self.settings = Defaults.instance.settings
end

#settingsObject



31
32
33
# File 'lib/oro/settings.rb', line 31

def settings
  @settings ||= YAML.safe_load(File.read(FILE), permitted_classes: [OpenStruct, Symbol])
end

#settings=(settings) ⇒ Object



35
36
37
38
39
# File 'lib/oro/settings.rb', line 35

def settings=(settings)
  settings.delete_field('actions') if settings.actions
  File.open(FILE, 'w') { |f| f.write YAML.dump(settings) }
  @settings = settings
end