Method: CommandKit::XDG#initialize

Defined in:
lib/command_kit/xdg.rb

#initialize(**kwargs) ⇒ Object

Note:

If the $XDG_CONFIG_HOME env variable is set, then #config_dir will be initialized to effectively $XDG_CONFIG_HOME/<xdg_namespace>. Otherwise #config_dir will be initialized to ~/.config/<xdg_namespace>.

Note:

If the $XDG_DATA_HOME env variable is set, then #local_share_dir will be initialized to effectively $XDG_DATA_HOME/<xdg_namespace>. Otherwise #local_share_dir will be initialized to ~/.local/share/<xdg_namespace>.

Note:

If the $XDG_CACHE_HOME env variable is set, then #cache_dir will be initialized to effectively $XDG_CACHE_HOME/<xdg_namespace>. Otherwise #cache_dir will be initialized to ~/.cache/<xdg_namespace>.

Initializes #config_dir, #local_share_dir, and #cache_dir.

Parameters:

  • kwargs (Hash{Symbol => Object})

    Additional keyword arguments.



129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/command_kit/xdg.rb', line 129

def initialize(**kwargs)
  super(**kwargs)

  xdg_config_home = env.fetch('XDG_CONFIG_HOME') do
    File.join(home_dir,'.config')
  end

  @config_dir = File.join(xdg_config_home,xdg_namespace)

  xdg_data_home = env.fetch('XDG_DATA_HOME') do
    File.join(home_dir,'.local','share')
  end

  @local_share_dir = File.join(xdg_data_home,xdg_namespace)

  xdg_cache_home = env.fetch('XDG_CACHE_HOME') do
    File.join(home_dir,'.cache')
  end

  @cache_dir = File.join(xdg_cache_home,xdg_namespace)
end