lib/runcom/data.rb in runcom-5.1.1 vs lib/runcom/data.rb in runcom-6.0.0
- old
+ new
@@ -1,33 +1,22 @@
# frozen_string_literal: true
-require "pathname"
+require "forwardable"
module Runcom
# A developer friendly wrapper of XDG data.
- Data = Struct.new :name, :home, :environment, keyword_init: true do
+ class Data
extend Forwardable
- delegate %i[inspect] => :data
+ DEFAULT_CONTEXT = Context.new xdg: XDG::Data
- def initialize *arguments
- super
+ delegate %i[relative namespace file_name current all inspect] => :common
- self[:home] ||= Runcom::Paths::Friendly
- self[:environment] ||= ENV
- @data = XDG::Data.new home: home, environment: environment
- freeze
+ def initialize path, context: DEFAULT_CONTEXT
+ @common = Paths::Common.new path, context: context
end
- def path
- paths.find(&:exist?)
- end
-
- def paths
- data.all.map { |root| Pathname "#{root}/#{name}" }
- end
-
private
- attr_reader :data
+ attr_reader :common
end
end