class MGit::AppData::AppDataVersion1

Public Instance Methods

active?() click to toggle source
# File lib/mgit/appdata.rb, line 106
def active?
  File.directory?(config_dir) && (load(:version, nil) == '1')
end
load(key, default) click to toggle source
# File lib/mgit/appdata.rb, line 123
def load(key, default)
  case key
  when :repositories
    repos = YAML.load_file(repo_file)
    repos ? repos : default
  when :version, *Configuration::KEYS.keys
    config = YAML.load_file(config_file)
    (config && config.key?(key)) ? config[key] : default
  else
    fail ImplementationError, "AppDataVersion1::load called with unknown key #{key}."
  end
end
migrate!() click to toggle source
# File lib/mgit/appdata.rb, line 110
def migrate!
  setup!

  old_repofile = LegacyAppData.new.send(:repofile)
  FileUtils.mv(old_repofile, repo_file) if File.file?(old_repofile)
end
save!(key, value) click to toggle source
# File lib/mgit/appdata.rb, line 136
def save!(key, value)
  case key
  when :repositories
    File.open(repo_file, 'w') { |fd| fd.write value.to_yaml }
  when *Configuration::KEYS.keys
    config = YAML.load_file(config_file)
    config[key] = value
    File.open(config_file, 'w') { |fd| fd.write config.to_yaml }
  else
    fail ImplementationError, "AppDataVersion1::save! called with unknown key #{key}."
  end
end
setup!() click to toggle source
# File lib/mgit/appdata.rb, line 117
def setup!
  FileUtils.mkdir_p(config_dir)
  File.open(config_file, 'w') { |fd| fd.write({ version: '1' }.to_yaml) }
  FileUtils.touch(repo_file)
end
version() click to toggle source
# File lib/mgit/appdata.rb, line 102
def version
  1
end

Private Instance Methods

config_dir() click to toggle source
# File lib/mgit/appdata.rb, line 151
def config_dir
  XDG['CONFIG_HOME'].to_path.join('mgit')
end
config_file() click to toggle source
# File lib/mgit/appdata.rb, line 159
def config_file
  File.join(config_dir, 'config.yml')
end
repo_file() click to toggle source
# File lib/mgit/appdata.rb, line 155
def repo_file
  File.join(config_dir, 'repositories.yml')
end