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