Class: Defaulty
- Inherits:
-
Object
show all
- Defined in:
- lib/defaulty.rb,
lib/defaulty/version.rb
Defined Under Namespace
Classes: Domain, Property
Constant Summary
collapse
- VERSION =
"0.1.0"
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.all_defaults ⇒ Object
70
71
72
73
74
75
76
77
|
# File 'lib/defaulty.rb', line 70
def self.all_defaults
all_domains = domains + ['NSGlobalDomain']
selected_domains = all_domains
pairs = selected_domains.map do |domain|
[domain, defaults(domain)]
end
Hash[pairs]
end
|
.defaults(domain) ⇒ Object
63
64
65
66
67
68
|
# File 'lib/defaulty.rb', line 63
def self.defaults(domain)
Plist::parse_xml `defaults export #{domain} -`
rescue
puts "failed to parse #{domain}"
[]
end
|
.domains ⇒ Object
59
60
61
|
# File 'lib/defaulty.rb', line 59
def self.domains
`defaults domains`.split(",").map { |domain| domain.strip }
end
|
.load(*urls) ⇒ Object
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/defaulty.rb', line 46
def self.load(*urls)
defs = urls.map do |url|
if github_index_url?(url)
load_ymls_from_github(url)
else
load_ymls_from_path(url)
end
end
Defaulty.new(defs.flatten)
end
|
Instance Method Details
#write(app, options) ⇒ Object
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/defaulty.rb', line 79
def write(app, options)
domain = @domains[app]
raise "Can't find domain for '#{app}'" unless domain
options.each do |key, value|
key = key.to_s
property = domain.properties[key]
raise "Can't find a property '#{key}' in domain '#{domain.name}'" unless property
cmd = "defaults write #{domain.name} #{property.name} -#{property.type} #{value}"
puts cmd
`#{cmd}`
end
end
|