class MacAppSync::Defaults::Save
Attributes
domain_configs[R]
Public Class Methods
new(config)
click to toggle source
# File lib/mac_app_sync/defaults/save.rb, line 10 def initialize(config) @domain_configs = parse_config(config) end
run(config)
click to toggle source
# File lib/mac_app_sync/defaults/save.rb, line 6 def self.run(config) new(config).run end
Public Instance Methods
run()
click to toggle source
# File lib/mac_app_sync/defaults/save.rb, line 14 def run return if domain_configs.empty? persistence.reset! save_domains end
Private Instance Methods
parse_config(config)
click to toggle source
# File lib/mac_app_sync/defaults/save.rb, line 23 def parse_config(config) config.fetch("defaults", []).map do |domain_config| if domain_config.is_a?(String) [domain_config, {}] else domain_config.to_a.first end end end
persist(domain, data)
click to toggle source
# File lib/mac_app_sync/defaults/save.rb, line 52 def persist(domain, data) persistence.in_dir(domain) do data.each do |key, value| persistence.write(key, value) end end end
persistence()
click to toggle source
# File lib/mac_app_sync/defaults/save.rb, line 60 def persistence @persistence ||= Persistence.new("defaults") end
save_domain(domain, opts)
click to toggle source
# File lib/mac_app_sync/defaults/save.rb, line 39 def save_domain(domain, opts) data = values_to_save(domain, opts) return if data.empty? persist(domain, data) end
save_domains()
click to toggle source
# File lib/mac_app_sync/defaults/save.rb, line 33 def save_domains domain_configs.each do |domain, opts| save_domain(domain, opts) end end
values_to_save(domain, opts)
click to toggle source
# File lib/mac_app_sync/defaults/save.rb, line 47 def values_to_save(domain, opts) all_values = Store.new(domain).values Filter.filter(all_values, opts) end