Sha256: 222f4687c9ad727f3f7aa160c8691f2344ba1102e18f4b6fb6c346eff1965e67
Contents?: true
Size: 1.84 KB
Versions: 1
Compression:
Stored size: 1.84 KB
Contents
require 'env_paths/version' require 'tmpdir' require 'etc' module EnvPaths OSData = Struct.new(:data, :config, :cache, :log, :temp) HOMEDIR = Dir.home module Linux def self.config(app_name) OSData.new( File.join(ENV.fetch('XDG_DATA_HOME', File.join(HOMEDIR, '.local', 'share')), app_name), File.join(ENV.fetch('XDG_CONFIG_HOME', File.join(HOMEDIR, '.config')), app_name), File.join(ENV.fetch('XDG_CACHE_HOME', File.join(HOMEDIR, '.cache')), app_name), # https://wiki.debian.org/XDGBaseDirectorySpecification#state File.join(ENV.fetch('XDG_STATE_HOME', File.join(HOMEDIR, '.local', 'state')), app_name), File.join(Dir.tmpdir, Etc.getlogin, app_name) ) end end module Windows def self.config(app_name) app_data = ENV.fetch('LOCALAPPDATA', File.join(HOMEDIR, 'AppData', 'Local')) OSData.new( File.join(app_data, app_name, 'Data'), File.join(app_data, app_name, 'Config'), File.join(app_data, app_name, 'Cache'), File.join(app_data, app_name, 'Log'), File.join(Dir.tmpdir, app_name) ) end end module MacOs def self.config(app_name) library = File.join(Dir.home, 'Library') OSData.new( File.join(library, 'Application Support', app_name), File.join(library, 'Preferences', app_name), File.join(library, 'Caches', app_name), File.join(library, 'Logs', app_name), File.join(Dir.tmpdir, app_name) ) end end def self._platform RUBY_PLATFORM end def self.get(app_name, opts = {}) suffix = opts.fetch(:suffix, 'ruby') app_name += "-#{suffix}" unless opts[:suffix] == false case _platform.downcase when /win32/ Windows.config(app_name) when /darwin/ MacOs.config(app_name) else Linux.config(app_name) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
env_paths-1.0.0 | lib/env_paths.rb |