module Git::Copilot::Configuration

Constants

User

Protected Instance Methods

add_user(username, name, email) click to toggle source
# File lib/git/copilot/configuration.rb, line 70
def add_user(username, name, email)
  user = User.new(username, name, email)
  users.store(user.username, user)
end
clear_pairs() click to toggle source
# File lib/git/copilot/configuration.rb, line 62
def clear_pairs
  self.current_pairs = []
end
commit_config() click to toggle source
# File lib/git/copilot/configuration.rb, line 46
def commit_config
  File.write(config_file_path, YAML.dump(config_to_commit))
end
commit_message_template_path() click to toggle source
# File lib/git/copilot/configuration.rb, line 28
def commit_message_template_path
  File.join(config_dir, ".gitcopilot-commit-template")
end
config_dir() click to toggle source
# File lib/git/copilot/configuration.rb, line 20
def config_dir
  File.expand_path(ENV["HOME"])
end
config_file_path() click to toggle source
# File lib/git/copilot/configuration.rb, line 24
def config_file_path
  File.join(config_dir, ".gitcopilot.yml")
end
config_to_commit() click to toggle source
# File lib/git/copilot/configuration.rb, line 36
def config_to_commit
  {
    "template" => configuration["template"],
    "users" => users.each_with_object({}) do |(username, user), memo|
      memo[username.to_s] = user.to_h
    end,
    "current_pairs" => current_pairs.map(&:username),
  }
end
configuration() click to toggle source
# File lib/git/copilot/configuration.rb, line 32
def configuration
  @configuration ||= YAML.safe_load(File.read(config_file_path))
end
current_pairs() click to toggle source
# File lib/git/copilot/configuration.rb, line 56
def current_pairs
  @current_pairs ||= configuration.fetch("current_pairs", []).map do |username|
    users.fetch(username)
  end
end
current_pairs=(usernames) click to toggle source
# File lib/git/copilot/configuration.rb, line 66
def current_pairs=(usernames)
  @current_pairs = usernames.to_a.flatten
end
users() click to toggle source
# File lib/git/copilot/configuration.rb, line 50
def users
  @users ||= configuration.fetch("users", {}).each_with_object({}) do |(username, data), memo|
    memo[username] = User.new(username, data["name"], data["email"])
  end
end