fontist 1.18.2 → 1.19.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
- data/README.adoc +5 -3
- data/lib/fontist/cli.rb +1 -0
- data/lib/fontist/config.rb +23 -7
- data/lib/fontist/config_cli.rb +26 -8
- data/lib/fontist/errors.rb +2 -0
- data/lib/fontist/version.rb +1 -1
- data/lib/fontist.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f726f1ac899163c9c7346d540f5bcaf831d522dd59f3e3afd5bed661560ea40
|
4
|
+
data.tar.gz: a94c77482bd16d9f751b2d3d713e13bf1aefd78703d7bba973c8d2649469035d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d0fbfe9abf98ee2b28b2cf7f1aa73d0d3003519345d2f68f684043fb462f5df26a19a662e005ff07eb882923e3becbd52c616254ab6a704423a08f7c4588797
|
7
|
+
data.tar.gz: 74dd96f8a564fbcfab6d6372e0729b4aab1c3e80d14fd358626e8beaec505acdeb21b3e4de1eb589a13c9a490c8f595dc1e3ca40fc9650ae24dc29e68234a214
|
data/README.adoc
CHANGED
@@ -306,11 +306,13 @@ Roboto Mono:
|
|
306
306
|
|
307
307
|
Fontist supports system-wide settings for the following parameters:
|
308
308
|
|
309
|
+
`fonts_path`:: Sets path where to install fonts (default: `~/.fontist/fonts`)
|
310
|
+
|
309
311
|
`open_timeout`:: Sets timeout for opening a connection during download
|
310
|
-
(default: 10)
|
312
|
+
(default: `10`)
|
311
313
|
|
312
314
|
`read_timeout`:: Sets timeout for reading the opened connection during download
|
313
|
-
(default: 10)
|
315
|
+
(default: `10`)
|
314
316
|
|
315
317
|
Show current attributes in the config:
|
316
318
|
|
@@ -377,7 +379,7 @@ List of all commands could be seen by:
|
|
377
379
|
fontist help
|
378
380
|
----
|
379
381
|
|
380
|
-
=== Configuration
|
382
|
+
=== Configuration with environment variables
|
381
383
|
|
382
384
|
By default Fontist uses the `~/.fontist` directory to store fonts and its
|
383
385
|
files. It could be changed with the `FONTIST_PATH` environment variable.
|
data/lib/fontist/cli.rb
CHANGED
@@ -27,6 +27,7 @@ module Fontist
|
|
27
27
|
STATUS_FONTCONFIG_NOT_FOUND = 14
|
28
28
|
STATUS_FONTCONFIG_FILE_NOT_FOUND = 15
|
29
29
|
STATUS_FONTIST_VERSION_ERROR = 15
|
30
|
+
STATUS_INVALID_CONFIG_ATTRIBUTE = 16
|
30
31
|
|
31
32
|
ERROR_TO_STATUS = {
|
32
33
|
Fontist::Errors::UnsupportedFontError => [STATUS_NON_SUPPORTED_FONT_ERROR],
|
data/lib/fontist/config.rb
CHANGED
@@ -15,42 +15,58 @@ module Fontist
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def set(key, value)
|
18
|
+
attr = key.to_sym
|
19
|
+
unless default_values.key?(attr)
|
20
|
+
raise Errors::InvalidConfigAttributeError,
|
21
|
+
"No such attribute '#{attr}' exists."
|
22
|
+
end
|
23
|
+
|
18
24
|
v = normalize_value(value)
|
19
|
-
|
25
|
+
if respond_to?("#{attr}=")
|
26
|
+
public_send("#{attr}=", v)
|
27
|
+
else
|
28
|
+
@custom_values[attr] = v
|
29
|
+
end
|
20
30
|
|
21
31
|
persist
|
22
32
|
end
|
23
33
|
|
24
34
|
def delete(key)
|
25
|
-
@custom_values.delete(key.
|
35
|
+
@custom_values.delete(key.to_sym)
|
26
36
|
|
27
37
|
persist
|
28
38
|
end
|
29
39
|
|
30
40
|
def default_value(key)
|
31
|
-
default_values[key.
|
41
|
+
default_values[key.to_sym]
|
32
42
|
end
|
33
43
|
|
34
44
|
def default_values
|
35
|
-
{
|
36
|
-
|
45
|
+
{ fonts_path: Fontist.fontist_path.join("fonts"),
|
46
|
+
open_timeout: 10,
|
47
|
+
read_timeout: 10 }
|
37
48
|
end
|
38
49
|
|
39
50
|
def persist
|
51
|
+
values = @custom_values.transform_keys(&:to_s)
|
40
52
|
FileUtils.mkdir_p(File.dirname(Fontist.config_path))
|
41
|
-
File.write(Fontist.config_path, YAML.dump(
|
53
|
+
File.write(Fontist.config_path, YAML.dump(values))
|
42
54
|
end
|
43
55
|
|
44
56
|
def load
|
45
57
|
@custom_values = load_config_file
|
46
58
|
end
|
47
59
|
|
60
|
+
def fonts_path=(value)
|
61
|
+
@custom_values[:fonts_path] = File.expand_path(value)
|
62
|
+
end
|
63
|
+
|
48
64
|
private
|
49
65
|
|
50
66
|
def load_config_file
|
51
67
|
return {} unless File.exist?(Fontist.config_path)
|
52
68
|
|
53
|
-
YAML.load_file(Fontist.config_path)
|
69
|
+
YAML.load_file(Fontist.config_path).transform_keys(&:to_sym)
|
54
70
|
end
|
55
71
|
|
56
72
|
def normalize_value(value)
|
data/lib/fontist/config_cli.rb
CHANGED
@@ -2,15 +2,19 @@ module Fontist
|
|
2
2
|
class ConfigCLI < Thor
|
3
3
|
include CLI::ClassOptions
|
4
4
|
|
5
|
-
STATUS_SUCCESS = 0
|
6
|
-
|
7
5
|
desc "show", "Show values of the current config"
|
8
6
|
def show
|
9
7
|
handle_class_options(options)
|
10
8
|
values = Config.instance.custom_values
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
|
10
|
+
if values.empty?
|
11
|
+
Fontist.ui.success("Config is empty.")
|
12
|
+
else
|
13
|
+
Fontist.ui.success("Current config:")
|
14
|
+
Fontist.ui.success(format_hash(values))
|
15
|
+
end
|
16
|
+
|
17
|
+
CLI::STATUS_SUCCESS
|
14
18
|
end
|
15
19
|
|
16
20
|
desc "set KEY VALUE", "Set the KEY attribute to VALUE in the current config"
|
@@ -18,7 +22,10 @@ module Fontist
|
|
18
22
|
handle_class_options(options)
|
19
23
|
Config.instance.set(key, value)
|
20
24
|
Fontist.ui.success("'#{key}' set to '#{value}'.")
|
21
|
-
STATUS_SUCCESS
|
25
|
+
CLI::STATUS_SUCCESS
|
26
|
+
rescue Errors::InvalidConfigAttributeError => e
|
27
|
+
Fontist.ui.error(e.message)
|
28
|
+
CLI::STATUS_INVALID_CONFIG_ATTRIBUTE
|
22
29
|
end
|
23
30
|
|
24
31
|
desc "delete KEY", "Delete the KEY attribute from the current config"
|
@@ -28,13 +35,24 @@ module Fontist
|
|
28
35
|
Fontist.ui.success(
|
29
36
|
"'#{key}' reset to default ('#{Config.instance.default_value(key)}').",
|
30
37
|
)
|
31
|
-
STATUS_SUCCESS
|
38
|
+
CLI::STATUS_SUCCESS
|
39
|
+
end
|
40
|
+
|
41
|
+
desc "keys", "Print all available config attributes"
|
42
|
+
def keys
|
43
|
+
handle_class_options(options)
|
44
|
+
Fontist.ui.say("Available keys:")
|
45
|
+
Config.instance.default_values.each do |key, value|
|
46
|
+
Fontist.ui.say("#{key} (default: #{value})")
|
47
|
+
end
|
48
|
+
CLI::STATUS_SUCCESS
|
32
49
|
end
|
33
50
|
|
34
51
|
private
|
35
52
|
|
36
53
|
def format_hash(hash)
|
37
|
-
|
54
|
+
h = hash.transform_keys(&:to_s)
|
55
|
+
YAML.dump(h).gsub(/^---.*$/, "").strip
|
38
56
|
end
|
39
57
|
end
|
40
58
|
end
|
data/lib/fontist/errors.rb
CHANGED
data/lib/fontist/version.rb
CHANGED
data/lib/fontist.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fontist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01-
|
11
|
+
date: 2024-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: down
|