Sha256: 1824184aa7d3bfb9cfb6662878fbcd8ea18b07bbb7e34ba66d5f83223ee6cec1

Contents?: true

Size: 623 Bytes

Versions: 2

Compression:

Stored size: 623 Bytes

Contents

# frozen_string_literal: true

require "pathname"

module Runcom
  # A developer friendly wrapper of XDG data.
  Data = Struct.new :name, :home, :environment, keyword_init: true do
    extend Forwardable

    delegate %i[inspect] => :data

    def initialize *arguments
      super

      self[:home] ||= Runcom::Paths::Friendly
      self[:environment] ||= ENV
      @data = XDG::Data.new home: home, environment: environment
      freeze
    end

    def path
      paths.find(&:exist?)
    end

    def paths
      data.all.map { |root| Pathname "#{root}/#{name}" }
    end

    private

    attr_reader :data
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
runcom-5.1.1 lib/runcom/data.rb
runcom-5.1.0 lib/runcom/data.rb