class Plister::Preferences

Attributes

path[R]

Public Class Methods

new(path = nil) click to toggle source
# File lib/plister/preferences.rb, line 5
def initialize(path = nil)
  @path = path || "/Users/#{Plister.user}/.osx.yml"
end

Public Instance Methods

domains() click to toggle source
# File lib/plister/preferences.rb, line 20
def domains
  @domains ||= data.map { |_k, v| v.keys }.flatten
end
set!(verbose: false) click to toggle source
# File lib/plister/preferences.rb, line 9
def set!(verbose: false)
  data.each do |type, domains|
    domains.each do |domain, prefs|
      puts "Setting #{type} preferences for #{domain}" if verbose
      plist = Plist.new(domain, type: type)
      plist.merge(prefs)
      plist.write
    end
  end
end

Private Instance Methods

contents() click to toggle source
# File lib/plister/preferences.rb, line 30
def contents
  @contents ||= File.open(path).read
end
data() click to toggle source
# File lib/plister/preferences.rb, line 26
def data
  @data ||= Psych.load(contents) || {}
end