Class: XDG::Paths::Directory

Inherits:
Object
  • Object
show all
Defined in:
lib/xdg/paths/directory.rb

Overview

A collection of XDG directories.

Constant Summary collapse

DELIMITER =
":"

Instance Method Summary collapse

Constructor Details

#initialize(pair, environment = ENV) ⇒ Directory

Returns a new instance of Directory.



11
12
13
14
# File 'lib/xdg/paths/directory.rb', line 11

def initialize pair, environment = ENV
  @pair = pair
  @environment = environment
end

Instance Method Details

#defaultObject



16
# File 'lib/xdg/paths/directory.rb', line 16

def default = value.split(DELIMITER).map { |path| expand path }

#dynamicObject



18
19
20
21
22
23
# File 'lib/xdg/paths/directory.rb', line 18

def dynamic
  String(environment[key]).then { |env_value| env_value.empty? ? value : env_value }
                          .split(DELIMITER)
                          .uniq
                          .map { |path| expand path }
end

#inspectObject



29
30
31
32
33
34
# File 'lib/xdg/paths/directory.rb', line 29

def inspect
  pairs = to_s
  type = self.class

  pairs.empty? ? "#<#{type}:#{object_id}>" : "#<#{type}:#{object_id} #{self}>"
end

#to_sObject Also known as: to_str



25
# File 'lib/xdg/paths/directory.rb', line 25

def to_s = [key, dynamic.join(DELIMITER)].reject(&:empty?).join XDG::DELIMITER