module XDG::BaseDir::Mixin

The BaseDir::Mixin module can be used to add XDG base directory methods to your own classes.

class MyAppConfig
  include XDG::BaseDir::Mixin

  def subdirectory
    'myapp'
  end
end

c = MyAppConfig.new

c.config.home.list  #=> ['~/.config/myapp']

Public Instance Methods

cache() click to toggle source
# File lib/xdg/base_dir/mixin.rb, line 66
def cache
  obj = XDG['CACHE'].with_subdirectory(subdirectory)
  class << obj
    def home
      XDG['CACHE_HOME'].with_subdirectory(subdirectory)
    end
    def dirs
      XDG['CACHE_DIRS'].with_subdirectory(subdirectory)
    end
    def work
      XDG['CACHE_WORK'].with_subdirectory(subdirectory)
    end
  end
  return obj
end
config() click to toggle source
# File lib/xdg/base_dir/mixin.rb, line 49
def config
  obj = XDG['CONFIG'].with_subdirectory(subdirectory)
  class << obj
    def home
      XDG['CONFIG_HOME'].with_subdirectory(subdirectory)
    end
    def dirs
      XDG['CONFIG_DIRS'].with_subdirectory(subdirectory)
    end
    def work
      XDG['CONFIG_WORK'].with_subdirectory(subdirectory)
    end
  end
  return obj
end
data() click to toggle source
# File lib/xdg/base_dir/mixin.rb, line 35
def data
  obj = XDG['DATA'].with_subdirectory(subdirectory)
  class << obj
    def home
      XDG['DATA_HOME'].with_subdirectory(subdirectory)
    end
    def dirs
      XDG['DATA_DIRS'].with_subdirectory(subdirectory)
    end
  end
  return obj
end
home() click to toggle source
# File lib/xdg/base_dir/mixin.rb, line 30
def home
  File.expand_path('~')
end
subdirectory() click to toggle source

Override this method to change the subdirectory of the mixin.

# File lib/xdg/base_dir/mixin.rb, line 25
def subdirectory
  nil
end