xdg 7.1.3 → 8.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|