Sha256: cc914007294a938a61fa238a64524a050e2f8be010d32696bdbfc69e785aff4b

Contents?: true

Size: 692 Bytes

Versions: 1

Compression:

Stored size: 692 Bytes

Contents

module Plister
  class Preferences
    attr_reader :path

    def initialize(path = nil)
      @path = path || "/Users/#{Plister.user}/.osx.yml"
    end

    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

    def domains
      @domains ||= data.map { |_k, v| v.keys }.flatten
    end

    private

    def data
      @data ||= Psych.load(contents) || {}
    end

    def contents
      @contents ||= File.open(path).read
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
plister-0.2.0 lib/plister/preferences.rb