class Abt::DirectoryConfig

Constants

FILE_NAME

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/abt/directory_config.rb, line 7
def initialize
  super
  load! if config_file_path && File.exist?(config_file_path)
end

Public Instance Methods

available?() click to toggle source
# File lib/abt/directory_config.rb, line 12
def available?
  !config_file_path.nil?
end
load!() click to toggle source
# File lib/abt/directory_config.rb, line 16
def load!
  merge!(YAML.load_file(config_file_path))
end
save!() click to toggle source
# File lib/abt/directory_config.rb, line 20
def save!
  raise Abt::Cli::Abort("Configuration files are not available outside of git repositories") unless available?

  config_file = File.open(config_file_path, "w")
  YAML.dump(to_h, config_file)
  config_file.close
end

Private Instance Methods

config_file_path() click to toggle source
# File lib/abt/directory_config.rb, line 30
def config_file_path
  @config_file_path ||= begin
    path = nil
    Open3.popen3("git rev-parse --show-toplevel") do |_i, output, _e, thread|
      if thread.value.success?
        repo_root = output.read.chomp
        path = File.join(repo_root, FILE_NAME)
      end
    end
    path
  end
end