1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
# frozen_string_literal: true
require "forwardable"
require "xdg/pair"
module XDG
# Provides configuration support.
class Config
extend Forwardable
HOME_PAIR = Pair["XDG_CONFIG_HOME", ".config"].freeze
DIRS_PAIR = Pair["XDG_CONFIG_DIRS", "/etc/xdg"].freeze
delegate %i[home directories all to_s to_str] => :combined
def initialize home: Paths::Home, directories: Paths::Directory, environment: ENV
@combined = Paths::Combined.new home.new(HOME_PAIR, environment),
directories.new(DIRS_PAIR, environment)
freeze
end
def inspect = "#<#{self.class}:#{object_id} #{self}>"
private
attr_reader :combined
end
end
|