xdg 7.1.3 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +76 -53
- data/lib/xdg/cache.rb +3 -1
- data/lib/xdg/config.rb +3 -1
- data/lib/xdg/data.rb +3 -1
- data/lib/xdg/environment.rb +5 -1
- data/lib/xdg/pair.rb +10 -3
- data/lib/xdg/paths/combined.rb +5 -1
- data/lib/xdg/paths/directory.rb +10 -1
- data/lib/xdg/paths/home.rb +5 -1
- data/lib/xdg/state.rb +3 -1
- data/xdg.gemspec +2 -2
- data.tar.gz.sig +4 -3
- metadata +4 -7
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5ba853f70091e4dba915e9ef34a112bffe535bbe0c8fd0836101d35f98a7372
|
4
|
+
data.tar.gz: 987ec6392ec13cdb03bc8cf7cbc7348c9bfa33a69c67936d4a61f4914557aaab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 15218c612f1ca1bf9ad52bbdc3dc1fb0007383b99d62233fcf3a4aa8302f24281261ed9447f1f8b4d1f5fa9e3ea785155469f0403d919a6fbedc8011958414f1
|
7
|
+
data.tar.gz: 3b8d5106b0610e471e45e9370762a2f85eabc40dabc08ddc0b307fde81907ac53eba8e06b3b9c15ab55bde49696a5c892a5b6b05f86373e41fb94c1cb3f03158
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -2,13 +2,15 @@
|
|
2
2
|
:toclevels: 5
|
3
3
|
:figure-caption!:
|
4
4
|
|
5
|
+
:dotfiles_link: link:https://alchemists.io/projects/dotfiles[Dotfiles]
|
6
|
+
:runcom_link: link:https://alchemists.io/projects/runcom[Runcom]
|
7
|
+
:sod_link: link:https://alchemists.io/projects/sod[Sod]
|
8
|
+
|
5
9
|
= XDG
|
6
10
|
|
7
|
-
Provides a Ruby implementation of the link:https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html[XDG Base Directory
|
8
|
-
Specification] for managing common configurations without polluting your dotfiles. XDG is great for command line interfaces or any application that needs a common configuration, cache, data, state, or runtime.
|
11
|
+
Provides a Ruby implementation of the link:https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html[XDG Base Directory Specification] for managing common configurations without polluting your {dotfiles_link}. XDG is great for command line interfaces or any application that needs a common configuration, cache, data, state, or runtime.
|
9
12
|
|
10
|
-
💡 If you write a lot of Command Line Interfaces and would like additional
|
11
|
-
link:https://alchemists.io/projects/runcom[Runcom] gem too.
|
13
|
+
💡 If you write a lot of Command Line Interfaces (CLIs) and would like additional behavior built atop this gem, then check out the {runcom_link} gem or the more advanced {sod_link} gem.
|
12
14
|
|
13
15
|
toc::[]
|
14
16
|
|
@@ -77,7 +79,7 @@ xdg.data_dirs # Answers computed `$XDG_DATA_DIRS` value.
|
|
77
79
|
xdg.state_home # Answers computed `$XDG_STATE_HOME` value.
|
78
80
|
----
|
79
81
|
|
80
|
-
Behinds the scenes, use of `XDG.new`
|
82
|
+
Behinds the scenes, use of `XDG.new` wraps `XDG::Environment.new` which provides a unified Object API to the following objects:
|
81
83
|
|
82
84
|
[source,ruby]
|
83
85
|
----
|
@@ -89,63 +91,79 @@ state = XDG::State.new
|
|
89
91
|
|
90
92
|
Generally, use of `XDG.new` is all you need but knowing you can create a specialized instance of any aspect of the XDG specification can be handy for specific use cases. Additionally, the `cache`, `config`, `data`, and `state` objects share the same API which means you can send the following messages:
|
91
93
|
|
92
|
-
* `#home
|
93
|
-
* `#directories
|
94
|
-
* `#all
|
94
|
+
* `#home`: Answers the home directory as computed via the `$XDG_*_HOME` key.
|
95
|
+
* `#directories`: Answers an array directories as computed via the `$XDG_*_DIRS` key.
|
96
|
+
* `#all`: Answers an array of _all_ directories as computed from the combined `$XDG_*_HOME` and
|
95
97
|
`$XDG_*_DIRS` values (with `$XDG_*_HOME` prefixed at the start of the array).
|
98
|
+
* `#to_s`: Answers an _explicit_ string cast for the current environment.
|
99
|
+
* `#to_str`: Answers an _implicit_ string cast for the current environment.
|
100
|
+
* `#inspect`: Answers object inspection complete with object type, object ID, and all environment variables.
|
96
101
|
|
97
102
|
The _computed_ value of each method is either the user-defined value of the key or the default value, per specification, when the key is not defined or empty. For more on this, scroll down to the _Variable Defaults_ section to learn more.
|
98
103
|
|
99
104
|
=== Examples
|
100
105
|
|
101
|
-
The following are examples of what you
|
102
|
-
IRB console (taken from my own environment):
|
106
|
+
The following are examples of what you will see when exploring the XDG objects within an IRB console:
|
103
107
|
|
104
108
|
[source,ruby]
|
105
109
|
----
|
106
110
|
require "xdg"
|
107
111
|
|
108
112
|
# Initialization
|
113
|
+
|
109
114
|
xdg = XDG.new
|
110
115
|
cache = XDG::Cache.new
|
111
116
|
config = XDG::Config.new
|
112
117
|
data = XDG::Data.new
|
113
118
|
state = XDG::State.new
|
114
119
|
|
115
|
-
# Inspection
|
116
|
-
xdg.inspect # "XDG_CACHE_HOME=/Users/demo/.cache XDG_CONFIG_HOME=/Users/demo/.config XDG_CONFIG_DIRS=/etc/xdg XDG_DATA_HOME=/Users/demo/.local/share XDG_DATA_DIRS=/usr/local/share:/usr/share XDG_STATE_HOME=/Users/demo/.local/state"
|
117
|
-
cache.inspect # "XDG_CACHE_HOME=/Users/demo/.cache"
|
118
|
-
config.inspect # "XDG_CONFIG_HOME=/Users/demo/.config XDG_CONFIG_DIRS=/etc/xdg"
|
119
|
-
data.inspect # "XDG_DATA_HOME=/Users/demo/.local/share XDG_DATA_DIRS=/usr/local/share:/usr/share"
|
120
|
-
state.inspect # "XDG_STATE_HOME=/Users/demo/.local/state"
|
121
|
-
|
122
120
|
# Paths
|
123
|
-
|
124
|
-
xdg.
|
125
|
-
xdg.
|
126
|
-
xdg.
|
127
|
-
xdg.
|
128
|
-
xdg.
|
129
|
-
|
130
|
-
|
121
|
+
|
122
|
+
xdg.cache_home # "#<Pathname:/Users/demo/.cache>"
|
123
|
+
xdg.config_home # "#<Pathname:/Users/demo/.config>"
|
124
|
+
xdg.config_dirs # ["#<Pathname:/etc/xdg>"]
|
125
|
+
xdg.data_home # "#<Pathname:/Users/demo/.local/share>"
|
126
|
+
xdg.data_dirs # ["#<Pathname:/usr/local/share>", "#<Pathname:/usr/share>"]
|
127
|
+
xdg.state_home # "#<Pathname:/Users/demo/.local/state>"
|
128
|
+
|
129
|
+
cache.home # "#<Pathname:/Users/demo/.cache>"
|
131
130
|
cache.directories # []
|
132
|
-
cache.all # [#<Pathname:/Users/demo/.cache>]
|
131
|
+
cache.all # ["#<Pathname:/Users/demo/.cache>"]
|
133
132
|
|
134
|
-
config.home # #<Pathname:/Users/demo/.config>
|
135
|
-
config.directories # [#<Pathname:/etc/xdg>]
|
136
|
-
config.all # [#<Pathname:/Users/demo/.config
|
133
|
+
config.home # "#<Pathname:/Users/demo/.config>"
|
134
|
+
config.directories # ["#<Pathname:/etc/xdg>"]
|
135
|
+
config.all # ["#<Pathname:/Users/demo/.config>", "#<Pathname:/etc/xdg>"]
|
137
136
|
|
138
|
-
data.home # #<Pathname:/Users/demo/.local/share>
|
139
|
-
data.directories # [#<Pathname:/usr/local/share
|
140
|
-
data.all # [#<Pathname:/Users/demo/.local/share
|
137
|
+
data.home # "#<Pathname:/Users/demo/.local/share>"
|
138
|
+
data.directories # ["#<Pathname:/usr/local/share>", "#<Pathname:/usr/share>"]
|
139
|
+
data.all # ["#<Pathname:/Users/demo/.local/share>", "#<Pathname:/usr/local/share>", "#<Pathname:/usr/share>"]
|
141
140
|
|
142
|
-
state.home # #<Pathname:/Users/demo/.local/state>
|
141
|
+
state.home # "#<Pathname:/Users/demo/.local/state>"
|
143
142
|
state.directories # []
|
144
|
-
state.all # [#<Pathname:/Users/demo/.local/state>]
|
145
|
-
|
143
|
+
state.all # ["#<Pathname:/Users/demo/.local/state>"]
|
144
|
+
|
145
|
+
# Casts (explicit and implicit)
|
146
|
+
|
147
|
+
xdg.to_s # "XDG_CACHE_HOME=/Users/demo/.cache XDG_CONFIG_HOME=/Users/demo/.config XDG_CONFIG_DIRS=/etc/xdg XDG_DATA_HOME=/Users/demo/.local/share XDG_DATA_DIRS=/usr/local/share:/usr/share XDG_STATE_HOME=/Users/demo/.local/state"
|
148
|
+
cache.to_s # "XDG_CACHE_HOME=/Users/demo/.cache"
|
149
|
+
config.to_s # "XDG_CONFIG_HOME=/Users/demo/.config XDG_CONFIG_DIRS=/etc/xdg"
|
150
|
+
data.to_s # "XDG_DATA_HOME=/Users/demo/.local/share XDG_DATA_DIRS=/usr/local/share:/usr/share"
|
151
|
+
state.to_s # "XDG_STATE_HOME=/Users/demo/.local/state"
|
146
152
|
|
147
|
-
|
148
|
-
|
153
|
+
xdg.to_str # "XDG_CACHE_HOME=/Users/demo/.cache XDG_CONFIG_HOME=/Users/demo/.config XDG_CONFIG_DIRS=/etc/xdg XDG_DATA_HOME=/Users/demo/.local/share XDG_DATA_DIRS=/usr/local/share:/usr/share XDG_STATE_HOME=/Users/demo/.local/state"
|
154
|
+
cache.to_str # "XDG_CACHE_HOME=/Users/demo/.cache"
|
155
|
+
config.to_str # "XDG_CONFIG_HOME=/Users/demo/.config XDG_CONFIG_DIRS=/etc/xdg"
|
156
|
+
data.to_str # "XDG_DATA_HOME=/Users/demo/.local/share XDG_DATA_DIRS=/usr/local/share:/usr/share"
|
157
|
+
state.to_str # "XDG_STATE_HOME=/Users/demo/.local/state"
|
158
|
+
|
159
|
+
# Inspection
|
160
|
+
|
161
|
+
xdg.inspect # "#<XDG::Environment:2020 XDG_CACHE_HOME=/Users/demo/.cache XDG_CONFIG_HOME=/Users/demo/.config XDG_CONFIG_DIRS=/etc/xdg XDG_DATA_HOME=/Users/demo/.local/share XDG_DATA_DIRS=/usr/local/share:/usr/share XDG_STATE_HOME=/Users/demo/.local/state>"
|
162
|
+
cache.inspect # "#<XDG::Cache:2040 XDG_CACHE_HOME=/Users/demo/.cache>"
|
163
|
+
config.inspect # "#<XDG::Config:2060 XDG_CONFIG_HOME=/Users/demo/.config XDG_CONFIG_DIRS=/etc/xdg>"
|
164
|
+
data.inspect # "#<XDG::Data:2080 XDG_DATA_HOME=/Users/demo/.local/share XDG_DATA_DIRS=/usr/local/share:/usr/share>"
|
165
|
+
state.inspect # "#<XDG::State:2100 XDG_STATE_HOME=/Users/demo/.local/state>"
|
166
|
+
----
|
149
167
|
|
150
168
|
=== Variable Defaults
|
151
169
|
|
@@ -161,9 +179,7 @@ objects:
|
|
161
179
|
* `$XDG_RUNTIME_DIR`
|
162
180
|
* `$XDG_STATE_HOME="$HOME/.local/state"`
|
163
181
|
|
164
|
-
The `$XDG_RUNTIME_DIR` deserves special mention
|
165
|
-
this gem because it is more user/environment specific. Here is how the `$XDG_RUNTIME_DIR` is meant
|
166
|
-
to be used should you choose to use it:
|
182
|
+
The `$XDG_RUNTIME_DIR` environment variable deserves special mention because it’s not, _currently_, implemented as part of this gem because it is more user/environment specific. Here is how the `$XDG_RUNTIME_DIR` is meant to be used should you choose to use it:
|
167
183
|
|
168
184
|
* _Must_ reference user-specific non-essential runtime files and other file objects (such as
|
169
185
|
sockets, named pipes, etc.)
|
@@ -204,21 +220,21 @@ example, here is a situation where the `XDG_CONFIG_DIRS` key has a custom value:
|
|
204
220
|
|
205
221
|
[source,bash]
|
206
222
|
----
|
207
|
-
XDG_CONFIG_DIRS="/
|
223
|
+
XDG_CONFIG_DIRS="/demo/one/.config:/demo/two/.settings:/demo/three/.configuration"
|
208
224
|
----
|
209
225
|
|
210
|
-
|
226
|
+
The above then yields the following, colon delimited, array:
|
211
227
|
|
212
228
|
[source,ruby]
|
213
229
|
----
|
214
230
|
[
|
215
|
-
"/
|
216
|
-
"/
|
217
|
-
"/
|
231
|
+
"/demo/one/.config",
|
232
|
+
"/demo/two/.settings",
|
233
|
+
"/demo/three/.configuration"
|
218
234
|
]
|
219
235
|
----
|
220
236
|
|
221
|
-
In the above example, the `"/
|
237
|
+
In the above example, the `"/demo/one/.config"` path takes _highest_ priority since it was
|
222
238
|
defined first.
|
223
239
|
|
224
240
|
==== Homes
|
@@ -228,23 +244,23 @@ a modified version of the `$XDG_*_DIRS` example, shown above, we could have the
|
|
228
244
|
|
229
245
|
[source,bash]
|
230
246
|
----
|
231
|
-
XDG_CONFIG_HOME="/
|
232
|
-
XDG_CONFIG_DIRS="/
|
247
|
+
XDG_CONFIG_HOME="/demo/priority"
|
248
|
+
XDG_CONFIG_DIRS="/demo/one/.config:/demo/two/.settings"
|
233
249
|
----
|
234
250
|
|
235
|
-
|
251
|
+
The above then yields the following, colon delimited, array:
|
236
252
|
|
237
253
|
[source,ruby]
|
238
254
|
----
|
239
255
|
[
|
240
|
-
"/
|
241
|
-
"/
|
242
|
-
"/
|
256
|
+
"/demo/priority",
|
257
|
+
"/demo/one/.config",
|
258
|
+
"/demo/two/.settings"
|
243
259
|
]
|
244
260
|
----
|
245
261
|
|
246
262
|
Due to `XDG_CONFIG_HOME` taking precedence over the `XDG_CONFIG_DIRS`, the path with the
|
247
|
-
_highest_ priority
|
263
|
+
_highest_ priority is: `"/demo/priority"`.
|
248
264
|
|
249
265
|
=== Variable Priority
|
250
266
|
|
@@ -272,6 +288,13 @@ You can also use the IRB console for direct access to all objects:
|
|
272
288
|
bin/console
|
273
289
|
----
|
274
290
|
|
291
|
+
Lastly, there is a `bin/demo` script which displays default functionality for quick visual reference. This is the same script used to generate the usage examples shown at the top of this document.
|
292
|
+
|
293
|
+
[source,bash]
|
294
|
+
----
|
295
|
+
bin/demo
|
296
|
+
----
|
297
|
+
|
275
298
|
== Tests
|
276
299
|
|
277
300
|
To test, run:
|
data/lib/xdg/cache.rb
CHANGED
@@ -10,13 +10,15 @@ module XDG
|
|
10
10
|
|
11
11
|
HOME_PAIR = Pair["XDG_CACHE_HOME", ".cache"].freeze
|
12
12
|
|
13
|
-
delegate %i[home directories all
|
13
|
+
delegate %i[home directories all to_s to_str] => :combined
|
14
14
|
|
15
15
|
def initialize home: Paths::Home, directories: Paths::Directory, environment: ENV
|
16
16
|
@combined = Paths::Combined.new home.new(HOME_PAIR, environment),
|
17
17
|
directories.new(Pair.new, environment)
|
18
18
|
end
|
19
19
|
|
20
|
+
def inspect = "#<#{self.class}:#{object_id} #{self}>"
|
21
|
+
|
20
22
|
private
|
21
23
|
|
22
24
|
attr_reader :combined
|
data/lib/xdg/config.rb
CHANGED
@@ -11,13 +11,15 @@ module XDG
|
|
11
11
|
HOME_PAIR = Pair["XDG_CONFIG_HOME", ".config"].freeze
|
12
12
|
DIRS_PAIR = Pair["XDG_CONFIG_DIRS", "/etc/xdg"].freeze
|
13
13
|
|
14
|
-
delegate %i[home directories all
|
14
|
+
delegate %i[home directories all to_s to_str] => :combined
|
15
15
|
|
16
16
|
def initialize home: Paths::Home, directories: Paths::Directory, environment: ENV
|
17
17
|
@combined = Paths::Combined.new home.new(HOME_PAIR, environment),
|
18
18
|
directories.new(DIRS_PAIR, environment)
|
19
19
|
end
|
20
20
|
|
21
|
+
def inspect = "#<#{self.class}:#{object_id} #{self}>"
|
22
|
+
|
21
23
|
private
|
22
24
|
|
23
25
|
attr_reader :combined
|
data/lib/xdg/data.rb
CHANGED
@@ -11,13 +11,15 @@ module XDG
|
|
11
11
|
HOME_PAIR = Pair["XDG_DATA_HOME", ".local/share"].freeze
|
12
12
|
DIRS_PAIR = Pair["XDG_DATA_DIRS", "/usr/local/share:/usr/share"].freeze
|
13
13
|
|
14
|
-
delegate %i[home directories all
|
14
|
+
delegate %i[home directories all to_s to_str] => :combined
|
15
15
|
|
16
16
|
def initialize home: Paths::Home, directories: Paths::Directory, environment: ENV
|
17
17
|
@combined = Paths::Combined.new home.new(HOME_PAIR, environment),
|
18
18
|
directories.new(DIRS_PAIR, environment)
|
19
19
|
end
|
20
20
|
|
21
|
+
def inspect = "#<#{self.class}:#{object_id} #{self}>"
|
22
|
+
|
21
23
|
private
|
22
24
|
|
23
25
|
attr_reader :combined
|
data/lib/xdg/environment.rb
CHANGED
@@ -22,7 +22,11 @@ module XDG
|
|
22
22
|
|
23
23
|
def state_home = state.home
|
24
24
|
|
25
|
-
def
|
25
|
+
def to_s = "#{cache} #{config} #{data} #{state}"
|
26
|
+
|
27
|
+
alias to_str to_s
|
28
|
+
|
29
|
+
def inspect = "#<#{self.class}:#{object_id} #{self}>"
|
26
30
|
|
27
31
|
private
|
28
32
|
|
data/lib/xdg/pair.rb
CHANGED
@@ -7,14 +7,21 @@ module XDG
|
|
7
7
|
super
|
8
8
|
end
|
9
9
|
|
10
|
-
def to_env = {key => value}
|
11
|
-
|
12
10
|
def key? = key.to_s.size.positive?
|
13
11
|
|
14
12
|
def value? = value.to_s.size.positive?
|
15
13
|
|
16
14
|
def empty? = !(key? && value?)
|
17
15
|
|
18
|
-
def
|
16
|
+
def to_env = {key => value}
|
17
|
+
|
18
|
+
def to_s = key? || value? ? "#{key}#{DELIMITER}#{value}" : ""
|
19
|
+
|
20
|
+
alias_method :to_str, :to_s
|
21
|
+
|
22
|
+
def inspect
|
23
|
+
type = self.class
|
24
|
+
key? || value? ? "#<data #{type} #{key}#{DELIMITER}#{value}>" : "#<data #{type}>"
|
25
|
+
end
|
19
26
|
end
|
20
27
|
end
|
data/lib/xdg/paths/combined.rb
CHANGED
@@ -17,7 +17,11 @@ module XDG
|
|
17
17
|
|
18
18
|
def all = directories.prepend(*home)
|
19
19
|
|
20
|
-
def
|
20
|
+
def to_s = [initial_home.to_s, initial_directories.to_s].reject(&:empty?).join " "
|
21
|
+
|
22
|
+
alias to_str to_s
|
23
|
+
|
24
|
+
def inspect = "#<#{self.class}:#{object_id} #{self}>"
|
21
25
|
|
22
26
|
private
|
23
27
|
|
data/lib/xdg/paths/directory.rb
CHANGED
@@ -22,7 +22,16 @@ module XDG
|
|
22
22
|
.map { |path| expand path }
|
23
23
|
end
|
24
24
|
|
25
|
-
def
|
25
|
+
def to_s = [key, dynamic.join(DELIMITER)].reject(&:empty?).join XDG::DELIMITER
|
26
|
+
|
27
|
+
alias to_str to_s
|
28
|
+
|
29
|
+
def inspect
|
30
|
+
pairs = to_s
|
31
|
+
type = self.class
|
32
|
+
|
33
|
+
pairs.empty? ? "#<#{type}:#{object_id}>" : "#<#{type}:#{object_id} #{self}>"
|
34
|
+
end
|
26
35
|
|
27
36
|
private
|
28
37
|
|
data/lib/xdg/paths/home.rb
CHANGED
@@ -22,7 +22,11 @@ module XDG
|
|
22
22
|
|
23
23
|
def dynamic = String(environment[key]).then { |path| path.empty? ? default : expand(path) }
|
24
24
|
|
25
|
-
def
|
25
|
+
def to_s = [pair.key, dynamic].compact.join XDG::DELIMITER
|
26
|
+
|
27
|
+
alias to_str to_s
|
28
|
+
|
29
|
+
def inspect = "#<#{self.class}:#{object_id} #{self}>"
|
26
30
|
|
27
31
|
private
|
28
32
|
|
data/lib/xdg/state.rb
CHANGED
@@ -10,13 +10,15 @@ module XDG
|
|
10
10
|
|
11
11
|
HOME_PAIR = Pair["XDG_STATE_HOME", ".local/state"].freeze
|
12
12
|
|
13
|
-
delegate %i[home directories all
|
13
|
+
delegate %i[home directories all to_s to_str] => :combined
|
14
14
|
|
15
15
|
def initialize home: Paths::Home, directories: Paths::Directory, environment: ENV
|
16
16
|
@combined = Paths::Combined.new home.new(HOME_PAIR, environment),
|
17
17
|
directories.new(Pair.new, environment)
|
18
18
|
end
|
19
19
|
|
20
|
+
def inspect = "#<#{self.class}:#{object_id} #{self}>"
|
21
|
+
|
20
22
|
private
|
21
23
|
|
22
24
|
attr_reader :combined
|
data/xdg.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "xdg"
|
5
|
-
spec.version = "
|
5
|
+
spec.version = "8.0.0"
|
6
6
|
spec.authors = ["Brooke Kuhlmann"]
|
7
7
|
spec.email = ["brooke@alchemists.io"]
|
8
8
|
spec.homepage = "https://alchemists.io/projects/xdg"
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.signing_key = Gem.default_key_path
|
23
23
|
spec.cert_chain = [Gem.default_cert_path]
|
24
24
|
|
25
|
-
spec.required_ruby_version =
|
25
|
+
spec.required_ruby_version = "~> 3.3"
|
26
26
|
|
27
27
|
spec.files = Dir["*.gemspec", "lib/**/*"]
|
28
28
|
spec.extra_rdoc_files = Dir["README*", "LICENSE*"]
|
data.tar.gz.sig
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
�E�p%b�;�֎UJ�g�G���_0��=�QU�GN}��Y�]sj�[G%�FUއ��B���������s'��Am �r9
|
2
|
+
W:��9�=`��+�2���J"�ܙ����Jn��U��،;��t��d\�&C��h���[]���1����-^Lm��Y*i{<�m�F����T�
|
3
|
+
�+�.��78��3A�����b:�m#�%v��r�kg�ò3x@
|
4
|
+
2������RaZDž���~�k�x�pF7�h��N�B�MW�B�M���.��?�!�.�6i��咒�rQ�tѐ��CL�$q�/�(���+S��x�^Nm�F�+ JUW�WH��d����<�群N����c
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xdg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 8.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -35,7 +35,7 @@ cert_chain:
|
|
35
35
|
3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
|
36
36
|
gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
|
37
37
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
38
|
+
date: 2024-01-01 00:00:00.000000000 Z
|
39
39
|
dependencies: []
|
40
40
|
description:
|
41
41
|
email:
|
@@ -76,10 +76,7 @@ require_paths:
|
|
76
76
|
- lib
|
77
77
|
required_ruby_version: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- - "
|
80
|
-
- !ruby/object:Gem::Version
|
81
|
-
version: '3.2'
|
82
|
-
- - "<="
|
79
|
+
- - "~>"
|
83
80
|
- !ruby/object:Gem::Version
|
84
81
|
version: '3.3'
|
85
82
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -88,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
85
|
- !ruby/object:Gem::Version
|
89
86
|
version: '0'
|
90
87
|
requirements: []
|
91
|
-
rubygems_version: 3.
|
88
|
+
rubygems_version: 3.5.3
|
92
89
|
signing_key:
|
93
90
|
specification_version: 4
|
94
91
|
summary: A XDG Base Directory Specification implementation.
|
metadata.gz.sig
CHANGED
Binary file
|