Class: Directories
- Inherits:
-
Object
- Object
- Directories
- Defined in:
- lib/bombay.rb
Overview
Retrieves the values found inside $XDG_CONFIG_HOME/user-dirs.dirs.
Instance Attribute Summary collapse
-
#documents ⇒ Object
readonly
Returns the value of attribute documents.
-
#pictures ⇒ Object
readonly
Returns the value of attribute pictures.
-
#videos ⇒ Object
readonly
Returns the value of attribute videos.
Instance Method Summary collapse
- #config_directory ⇒ Object
-
#initialize ⇒ Directories
constructor
A new instance of Directories.
- #macos_directories ⇒ Object
- #user_dirs_file ⇒ Object
- #xdg_directories ⇒ Object
- #xdg_directory_type(dir) ⇒ Object
Constructor Details
#initialize ⇒ Directories
Returns a new instance of Directories.
71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/bombay.rb', line 71 def initialize dirs = if OS.linux? xdg_directories elsif OS.macos? macos_directories else abort("Unsupported platform.") end @documents = dirs["DOCUMENTS"] @pictures = dirs["PICTURES"] @videos = dirs["VIDEOS"] end |
Instance Attribute Details
#documents ⇒ Object (readonly)
Returns the value of attribute documents.
35 36 37 |
# File 'lib/bombay.rb', line 35 def documents @documents end |
#pictures ⇒ Object (readonly)
Returns the value of attribute pictures.
35 36 37 |
# File 'lib/bombay.rb', line 35 def pictures @pictures end |
#videos ⇒ Object (readonly)
Returns the value of attribute videos.
35 36 37 |
# File 'lib/bombay.rb', line 35 def videos @videos end |
Instance Method Details
#config_directory ⇒ Object
37 38 39 |
# File 'lib/bombay.rb', line 37 def config_directory ENV["XDG_CONFIG_HOME"] || File.join(Dir.home, ".config") end |
#macos_directories ⇒ Object
63 64 65 66 67 68 69 |
# File 'lib/bombay.rb', line 63 def macos_directories dirs = {} dirs.store("DOCUMENTS", File.join(Dir.home, "Documents")) dirs.store("PICTURES", File.join(Dir.home, "Pictures")) dirs.store("VIDEOS", File.join(Dir.home, "Movies")) dirs end |
#user_dirs_file ⇒ Object
45 46 47 |
# File 'lib/bombay.rb', line 45 def user_dirs_file File.join(config_directory, "user-dirs.dirs") end |
#xdg_directories ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/bombay.rb', line 49 def xdg_directories dirs = {} File.open(user_dirs_file).each do |line| next if line.start_with?("#") next if line.strip.empty? entry = line.split("=") key = xdg_directory_type(entry.first) value = entry.last.unquote..strip dirs.store(key, value) end dirs end |
#xdg_directory_type(dir) ⇒ Object
41 42 43 |
# File 'lib/bombay.rb', line 41 def xdg_directory_type(dir) dir.delete_prefix("XDG_").delete_suffix("_DIR") end |