Class: Preferences::Manager
- Inherits:
-
Hash
- Object
- Hash
- Preferences::Manager
- Defined in:
- lib/preferences/manager.rb
Instance Attribute Summary collapse
-
#filename ⇒ Object
Returns the value of attribute filename.
Instance Method Summary collapse
- #[]=(key, value) ⇒ Object
- #default_writer ⇒ Object
-
#initialize(name, settings = {}) ⇒ Manager
constructor
A new instance of Manager.
- #save ⇒ Object
Constructor Details
#initialize(name, settings = {}) ⇒ Manager
Returns a new instance of Manager.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/preferences/manager.rb', line 8 def initialize(name, settings={}) @type = settings[:type] || :user @autosave = settings[:autosave] || false directory = case @type when :system then Platform::config_directory_system when :user then Platform::config_directory_user when :test then Platform::config_directory_test end file = case @type when :system then "#{name}.conf" when :user then ".#{name}" when :test then "#{name}.preferences.test" end @filename = File.join(directory, file) if File.exists?(@filename) File.open(@filename, "r") do |file| self.merge!(YAML.load(file)) end end end |
Instance Attribute Details
#filename ⇒ Object
Returns the value of attribute filename.
6 7 8 |
# File 'lib/preferences/manager.rb', line 6 def filename @filename end |
Instance Method Details
#[]=(key, value) ⇒ Object
42 43 44 45 |
# File 'lib/preferences/manager.rb', line 42 def []=(key, value) default_writer(key, value) save if @autosave end |
#default_writer ⇒ Object
40 |
# File 'lib/preferences/manager.rb', line 40 alias_method :default_writer, :[]= |
#save ⇒ Object
34 35 36 37 38 |
# File 'lib/preferences/manager.rb', line 34 def save File.open(@filename, "w") do |file| YAML.dump(self, file) end end |