class Preferences

Attributes

preferences[R]

Public Class Methods

defaults() click to toggle source
# File lib/models/preferences.rb, line 16
def self.defaults
  @@defaults
end
defaults_yaml() click to toggle source
# File lib/models/preferences.rb, line 24
def self.defaults_yaml
  @@primary_defaults.to_yaml
end
new(prefs=nil) click to toggle source
# File lib/models/preferences.rb, line 28
def initialize(prefs=nil)
  @preferences = load_preferences(prefs)
end
prefs_file() click to toggle source
# File lib/models/preferences.rb, line 20
def self.prefs_file
  @@prefs_file
end
write_yaml_defaults() click to toggle source
# File lib/models/preferences.rb, line 32
def self.write_yaml_defaults
  File.write(@@prefs_file, self.defaults_yaml)
end

Public Instance Methods

method_missing(attribute) click to toggle source
Calls superclass method
# File lib/models/preferences.rb, line 36
def method_missing(attribute)
  return @preferences[attribute] if @preferences.has_key?(attribute)
  super
end

Private Instance Methods

load_preferences(prefs) click to toggle source
# File lib/models/preferences.rb, line 53
def load_preferences(prefs)
  if prefs.nil?
    if File.exists?(@@prefs_file)
      prefs = load_yaml_preferences
    else
      prefs = @@defaults
    end
  end
  merged_prefs = @@defaults.merge(prefs)
  merged_prefs[:notes_dir] = File.expand_path(merged_prefs[:notes_dir])
  return merged_prefs
end
load_yaml_preferences() click to toggle source
# File lib/models/preferences.rb, line 43
def load_yaml_preferences
  prefs = YAML::load_file(@@prefs_file)
  return(
    prefs.inject({}) do |processed, (key, val)|
      processed[key.to_sym] = val
      processed
    end
   )
end