class GitContext::Storage::YML

Attributes

config[R]

Public Class Methods

new(config) click to toggle source
# File lib/git_context/storage/yml.rb, line 10
def initialize(config)
  @config = config
end

Public Instance Methods

load() click to toggle source
# File lib/git_context/storage/yml.rb, line 20
def load
  return unless config_filepath && FileTest.exist?(config_filepath)

  load_profiles_from_file
  load_contexts_from_file
end
save() click to toggle source
# File lib/git_context/storage/yml.rb, line 27
def save
  File.open(config_filepath, 'w') do |file|
    file.write(YAML.dump(serialized_data))
  end
end
setup() click to toggle source
# File lib/git_context/storage/yml.rb, line 14
def setup
  return if FileTest.exist?(config_filepath)

  FileUtils.touch(config_filepath)
end

Private Instance Methods

config_filepath() click to toggle source
# File lib/git_context/storage/yml.rb, line 56
def config_filepath
  File.join(git_context_dir, CONFIG_FILE)
end
content() click to toggle source
# File lib/git_context/storage/yml.rb, line 48
def content
  @content ||= YAML.load_file(config_filepath) || {}
end
git_context_dir() click to toggle source
# File lib/git_context/storage/yml.rb, line 60
def git_context_dir
  File.join(config.home, BASE_STORAGE_DIR)
end
load_contexts_from_file() click to toggle source
# File lib/git_context/storage/yml.rb, line 42
def load_contexts_from_file
  content['contexts']&.each do |context|
    config.contexts << Context.new(context['work_dir'], context['profile_name'])
  end
end
load_profiles_from_file() click to toggle source
# File lib/git_context/storage/yml.rb, line 35
def load_profiles_from_file
  content['profiles']&.each do |profile|
    user = User.new(profile['name'], profile['email'], profile['signing_key'])
    config.profiles << Profile.new(profile['profile_name'], user)
  end
end
serialized_data() click to toggle source
# File lib/git_context/storage/yml.rb, line 52
def serialized_data
  config.serialize
end