fontist 1.15.2 → 1.17.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 +47 -1
- data/fontist.gemspec +2 -2
- data/lib/fontist/cli/class_options.rb +8 -1
- data/lib/fontist/cli.rb +9 -1
- data/lib/fontist/errors.rb +2 -0
- data/lib/fontist/font.rb +4 -1
- data/lib/fontist/font_installer.rb +40 -7
- data/lib/fontist/formula.rb +4 -0
- data/lib/fontist/formula_picker.rb +98 -39
- data/lib/fontist/import/create_formula.rb +2 -2
- data/lib/fontist/import/otf/font_file.rb +3 -1
- data/lib/fontist/import/recursive_extraction.rb +14 -2
- data/lib/fontist/utils/cache.rb +5 -0
- data/lib/fontist/version.rb +1 -1
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1c609003084e7675dfd55c7488c57b9f216a7e9f6412e2dd707e589bdb5f11e
|
4
|
+
data.tar.gz: ff531fc17364227dc60b47eaa64fe5547bc9c1d30e05c94364109d79d7276b5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2bcb373787926878310fa113e4454ac09e203c82708bd2edb3df796ce1e92f7e038a5c54011aade53f7cbc2ac2f20c311e449d5d5304a0235b93bfb0433750de
|
7
|
+
data.tar.gz: 6ad5b3863ed427316065477a3c873264ffa6d543bb86be696396e61d8f727533bc8bb50268ce8818b45bb15da387e6913b88f2c1a9abb7ed4a4944e0a8d57691
|
data/README.adoc
CHANGED
@@ -73,6 +73,10 @@ All commands support the following global options:
|
|
73
73
|
NOTE: See <<preferred-family-change>> for the differences between
|
74
74
|
"`preferred family`" and "`default family`".
|
75
75
|
|
76
|
+
`-q, --quiet`:: Print as little information as possible, mostly critical errors.
|
77
|
+
|
78
|
+
`-v, --verbose`:: Set the log level to debug. It prints formulas excluded
|
79
|
+
during installation and information for developers of fontist.
|
76
80
|
|
77
81
|
=== Install fonts: `fontist install`
|
78
82
|
|
@@ -123,7 +127,13 @@ for the newest version of the font among formulas with size below a limit
|
|
123
127
|
(300 MB). This behavior can be changed with options.
|
124
128
|
|
125
129
|
NOTE: If styles of a font are spread among several formulas, then all
|
126
|
-
available formulas would be installed.
|
130
|
+
available styles from all formulas would be installed.
|
131
|
+
|
132
|
+
NOTE: Some formulas may have the `min_fontist` attribute, which defines the
|
133
|
+
minimum version of fontist by which they can be installed. If `fontist` is of a
|
134
|
+
older version, then the formula is avoided to use. In order to see which
|
135
|
+
formulas were excluded from the search, the `-v, --verbose` option can be
|
136
|
+
specified.
|
127
137
|
|
128
138
|
Supported options:
|
129
139
|
|
@@ -936,12 +946,48 @@ its font location was only obtainable using the full "`Courier New`" font name.
|
|
936
946
|
From v1.10 onwards the behavior has been made consistent -- only the proper
|
937
947
|
"`Courier New`" name should be used.
|
938
948
|
|
949
|
+
[[install-font-change]]
|
950
|
+
==== To v1.16+
|
951
|
+
|
952
|
+
Fontist versions beyond v1.16 treats the `font` argument of the `install`
|
953
|
+
command differently.
|
954
|
+
After the upgrade, please ensure all required fonts are specified when using
|
955
|
+
`fontist install`, `fontist manifest-install` (and their corresponding Ruby
|
956
|
+
interface `Font.install` and `Manifest::Install`), or use the `-F, --formula`
|
957
|
+
option.
|
958
|
+
|
959
|
+
Starting from v1.16, Fontist installs only requested fonts instead of a whole
|
960
|
+
formula, unless specified explicitly.
|
961
|
+
changed now.
|
962
|
+
|
963
|
+
For example, an installation request for the "`Arial`" font prior to v1.16 will
|
964
|
+
setup all fonts found in the "`ms_truetype`" formula: "`Arial`", "`Trebuchet
|
965
|
+
MS`", "`Verdana`" and "`Times New Roman`".
|
966
|
+
|
967
|
+
From v1.16 onwards, Fontist will install _only_ the requested "`Arial`" font.
|
968
|
+
|
969
|
+
To install all fonts from a formula, the `-F, --formula` option can be used:
|
970
|
+
|
971
|
+
[source,sh]
|
972
|
+
----
|
973
|
+
$ fontist install --formula ms_truetype
|
974
|
+
----
|
975
|
+
|
939
976
|
|
940
977
|
|
941
978
|
== Maintenance (for Fontist maintainers only!)
|
942
979
|
|
943
980
|
WARNING: This section is only for Fontist maintainers.
|
944
981
|
|
982
|
+
=== Formulas versioning
|
983
|
+
|
984
|
+
To add a new attribute, change how formula is treated or completely replace the structure, there are 2 ways to change a formula format:
|
985
|
+
|
986
|
+
1. Use the `min_fontist` attribute in a formula. It sets a requirement for fontist to install the formula only if its version is equal or more than a specified version.
|
987
|
+
2. Use a new branch in the formulas repo, e.g. "v2", "v3", "v4", etc. After creating a new branch, it should be defined in https://github.com/fontist/fontist/blob/v1.16.0/lib/fontist.rb#L51[`Fontist.formulas_version`]
|
988
|
+
|
989
|
+
NOTE: Using a new branch would require all users to re-download the entire formulas repo. Since this method has a significant overhead, the former one (`min_fontist`) should be used whenever possible.
|
990
|
+
|
945
991
|
=== Dynamically importing formulas from Google Fonts
|
946
992
|
|
947
993
|
https://fonts.google.com[Google Fonts] provides probably the largest collection
|
data/fontist.gemspec
CHANGED
@@ -38,7 +38,7 @@ Gem::Specification.new do |spec|
|
|
38
38
|
spec.add_runtime_dependency "git", "~> 1.0"
|
39
39
|
spec.add_runtime_dependency "ttfunk", "~> 1.6"
|
40
40
|
spec.add_runtime_dependency "plist", "~> 3.0"
|
41
|
-
spec.add_runtime_dependency "excavate", "~> 0.3"
|
41
|
+
spec.add_runtime_dependency "excavate", "~> 0.3", '>= 0.3.4'
|
42
42
|
spec.add_runtime_dependency "socksify", "~> 1.7"
|
43
43
|
|
44
44
|
spec.add_development_dependency "pry", "~> 0.14"
|
@@ -46,7 +46,7 @@ Gem::Specification.new do |spec|
|
|
46
46
|
spec.add_development_dependency "rake", "~> 13"
|
47
47
|
spec.add_development_dependency "rspec", "~> 3.0"
|
48
48
|
spec.add_development_dependency "rspec-benchmark", "~> 0.6"
|
49
|
-
spec.add_development_dependency "rubocop", "~> 1.
|
49
|
+
spec.add_development_dependency "rubocop", "~> 1.22.1"
|
50
50
|
spec.add_development_dependency "rubocop-rails", "~> 2.9"
|
51
51
|
spec.add_development_dependency "rubocop-performance", "~> 1.10"
|
52
52
|
end
|
@@ -3,12 +3,19 @@ module Fontist
|
|
3
3
|
module ClassOptions
|
4
4
|
def handle_class_options(options)
|
5
5
|
Fontist.preferred_family = options[:preferred_family]
|
6
|
-
Fontist.log_level = options
|
6
|
+
Fontist.log_level = log_level(options)
|
7
7
|
|
8
8
|
if options[:formulas_path]
|
9
9
|
Fontist.formulas_path = Pathname.new(options[:formulas_path])
|
10
10
|
end
|
11
11
|
end
|
12
|
+
|
13
|
+
def log_level(options)
|
14
|
+
return :debug if options[:verbose]
|
15
|
+
return :fatal if options[:quiet]
|
16
|
+
|
17
|
+
:info
|
18
|
+
end
|
12
19
|
end
|
13
20
|
end
|
14
21
|
end
|
data/lib/fontist/cli.rb
CHANGED
@@ -25,6 +25,7 @@ module Fontist
|
|
25
25
|
STATUS_FORMULA_NOT_FOUND = 13
|
26
26
|
STATUS_FONTCONFIG_NOT_FOUND = 14
|
27
27
|
STATUS_FONTCONFIG_FILE_NOT_FOUND = 15
|
28
|
+
STATUS_FONTIST_VERSION_ERROR = 15
|
28
29
|
|
29
30
|
ERROR_TO_STATUS = {
|
30
31
|
Fontist::Errors::UnsupportedFontError => [STATUS_NON_SUPPORTED_FONT_ERROR],
|
@@ -50,6 +51,7 @@ module Fontist
|
|
50
51
|
Fontist::Errors::FontconfigNotFoundError => [STATUS_FONTCONFIG_NOT_FOUND],
|
51
52
|
Fontist::Errors::FontconfigFileNotFoundError =>
|
52
53
|
[STATUS_FONTCONFIG_FILE_NOT_FOUND],
|
54
|
+
Fontist::Errors::FontistVersionError => [STATUS_FONTIST_VERSION_ERROR],
|
53
55
|
}.freeze
|
54
56
|
|
55
57
|
def self.exit_on_failure?
|
@@ -65,6 +67,11 @@ module Fontist
|
|
65
67
|
type: :boolean,
|
66
68
|
desc: "Hide all messages"
|
67
69
|
|
70
|
+
class_option :verbose,
|
71
|
+
aliases: :v,
|
72
|
+
type: :boolean,
|
73
|
+
desc: "Print debug messages"
|
74
|
+
|
68
75
|
class_option :formulas_path, type: :string, desc: "Path to formulas"
|
69
76
|
|
70
77
|
desc "install FONT", "Install font"
|
@@ -179,9 +186,10 @@ module Fontist
|
|
179
186
|
desc "create-formula URL", "Create a new formula with fonts from URL"
|
180
187
|
option :name, desc: "Example: Times New Roman"
|
181
188
|
option :mirror, repeatable: true
|
182
|
-
option :subarchive, desc: "Subarchive to choose when there are several ones"
|
183
189
|
option :subdir, desc: "Subdirectory to take fonts from, starting with the " \
|
184
190
|
"root dir, e.g.: stixfonts-2.10/fonts/static_otf. May include `fnmatch` patterns."
|
191
|
+
option :file_pattern, desc: "File pattern, e.g. '*.otf'. " \
|
192
|
+
"Uses `fnmatch` patterns."
|
185
193
|
def create_formula(url)
|
186
194
|
handle_class_options(options)
|
187
195
|
require "fontist/import/create_formula"
|
data/lib/fontist/errors.rb
CHANGED
data/lib/fontist/font.rb
CHANGED
@@ -125,7 +125,10 @@ module Fontist
|
|
125
125
|
end
|
126
126
|
|
127
127
|
def font_installer(formula)
|
128
|
-
|
128
|
+
options = { no_progress: @no_progress }
|
129
|
+
return FontInstaller.new(formula, **options) if @by_formula
|
130
|
+
|
131
|
+
FontInstaller.new(formula, font_name: @name, **options)
|
129
132
|
end
|
130
133
|
|
131
134
|
def sufficient_formulas
|
@@ -3,15 +3,15 @@ require "excavate"
|
|
3
3
|
|
4
4
|
module Fontist
|
5
5
|
class FontInstaller
|
6
|
-
def initialize(formula, no_progress: false)
|
6
|
+
def initialize(formula, font_name: nil, no_progress: false)
|
7
7
|
@formula = formula
|
8
|
+
@font_name = font_name
|
8
9
|
@no_progress = no_progress
|
9
10
|
end
|
10
11
|
|
11
12
|
def install(confirmation:)
|
12
|
-
|
13
|
-
|
14
|
-
end
|
13
|
+
raise_fontist_version_error unless supported_version?
|
14
|
+
raise_licensing_error unless license_is_accepted?(confirmation)
|
15
15
|
|
16
16
|
install_font
|
17
17
|
end
|
@@ -20,6 +20,33 @@ module Fontist
|
|
20
20
|
|
21
21
|
attr_reader :formula
|
22
22
|
|
23
|
+
def supported_version?
|
24
|
+
return true unless @formula.min_fontist
|
25
|
+
|
26
|
+
fontist_version = Gem::Version.new(Fontist::VERSION)
|
27
|
+
min_fontist_required = Gem::Version.new(@formula.min_fontist)
|
28
|
+
|
29
|
+
fontist_version >= min_fontist_required
|
30
|
+
end
|
31
|
+
|
32
|
+
def raise_fontist_version_error
|
33
|
+
raise Fontist::Errors::FontistVersionError,
|
34
|
+
"Formula requires higher version of fontist. " \
|
35
|
+
"Please upgrade fontist.\n" \
|
36
|
+
"Minimum required version: #{formula.min_fontist}. " \
|
37
|
+
"Current fontist version: #{Fontist::VERSION}."
|
38
|
+
end
|
39
|
+
|
40
|
+
def license_is_accepted?(confirmation)
|
41
|
+
return true unless @formula.license_required
|
42
|
+
|
43
|
+
"yes".casecmp?(confirmation)
|
44
|
+
end
|
45
|
+
|
46
|
+
def raise_licensing_error
|
47
|
+
raise(Fontist::Errors::LicensingError)
|
48
|
+
end
|
49
|
+
|
23
50
|
def install_font
|
24
51
|
fonts_paths = run_in_temp_dir { extract }
|
25
52
|
fonts_paths.empty? ? nil : fonts_paths
|
@@ -90,9 +117,15 @@ module Fontist
|
|
90
117
|
|
91
118
|
def source_files
|
92
119
|
@source_files ||= @formula.fonts.flat_map do |font|
|
93
|
-
font.
|
94
|
-
|
95
|
-
|
120
|
+
next [] if @font_name && !font.name.casecmp?(@font_name)
|
121
|
+
|
122
|
+
font_files(font)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
def font_files(font)
|
127
|
+
font.styles.map do |style|
|
128
|
+
style.source_font || style.font
|
96
129
|
end
|
97
130
|
end
|
98
131
|
|
data/lib/fontist/formula.rb
CHANGED
@@ -5,66 +5,117 @@ module Fontist
|
|
5
5
|
def initialize(font_name, size_limit:, version:, smallest:, newest:)
|
6
6
|
@font_name = font_name
|
7
7
|
@size_limit = size_limit || Fontist.formula_size_limit_in_megabytes
|
8
|
-
|
9
|
-
@
|
10
|
-
@
|
8
|
+
|
9
|
+
@options = {}
|
10
|
+
@version = @options[:version] = version if version
|
11
|
+
@smallest = @options[:smallest] = smallest if smallest
|
12
|
+
@newest = @options[:newest] = newest if newest
|
11
13
|
end
|
12
14
|
|
13
15
|
def call(formulas)
|
14
|
-
return [] if formulas.
|
15
|
-
|
16
|
-
|
17
|
-
return
|
18
|
-
return smallest(formulas) if smallest_is_passed?
|
16
|
+
return [] if formulas.empty?
|
17
|
+
|
18
|
+
list = filter(formulas)
|
19
|
+
return [] if list.empty?
|
19
20
|
|
20
|
-
|
21
|
+
choose(list)
|
21
22
|
end
|
22
23
|
|
23
24
|
private
|
24
25
|
|
25
|
-
def
|
26
|
-
|
26
|
+
def filter(formulas)
|
27
|
+
list = formulas
|
28
|
+
|
29
|
+
list = filter_by_passed_version(formulas) if @version
|
30
|
+
return [] if list.empty?
|
31
|
+
|
32
|
+
list = ensure_size_limit(list) if @options.empty?
|
33
|
+
|
34
|
+
ensure_fontist_version(list)
|
27
35
|
end
|
28
36
|
|
29
|
-
def
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
+
def ensure_fontist_version(formulas)
|
38
|
+
suitable, unsuitable = filter_by_fontist_version(formulas)
|
39
|
+
raise_fontist_version_error(unsuitable) if suitable.empty?
|
40
|
+
|
41
|
+
suitable
|
42
|
+
end
|
43
|
+
|
44
|
+
def filter_by_fontist_version(formulas)
|
45
|
+
suitable, unsuitable = formulas.partition do |f|
|
46
|
+
f.min_fontist.nil? ||
|
47
|
+
Gem::Version.new(Fontist::VERSION) >= Gem::Version.new(f.min_fontist)
|
48
|
+
end
|
49
|
+
|
50
|
+
unless unsuitable.empty?
|
51
|
+
print_formulas_with_unsuitable_fontist_version(unsuitable)
|
52
|
+
end
|
53
|
+
|
54
|
+
[suitable, unsuitable]
|
55
|
+
end
|
56
|
+
|
57
|
+
def print_formulas_with_unsuitable_fontist_version(formulas)
|
58
|
+
Fontist.ui.debug(
|
59
|
+
"Some formulas were excluded from choice, because they require " \
|
60
|
+
"higher version of fontist: #{formulas_versions(formulas)}. " \
|
61
|
+
"Current fontist version: #{Fontist::VERSION}.",
|
62
|
+
)
|
63
|
+
end
|
64
|
+
|
65
|
+
def raise_fontist_version_error(formulas)
|
66
|
+
raise Fontist::Errors::FontistVersionError,
|
67
|
+
"Suitable formulas require higher version of fontist. " \
|
68
|
+
"Please upgrade fontist.\n" \
|
69
|
+
"Minimum required version: #{formulas_versions(formulas)}. " \
|
70
|
+
"Current fontist version: #{Fontist::VERSION}."
|
71
|
+
end
|
72
|
+
|
73
|
+
def formulas_versions(formulas)
|
74
|
+
formulas.map { |f| "#{f.key} (#{f.min_fontist})" }.join(", ")
|
75
|
+
end
|
76
|
+
|
77
|
+
def filter_by_passed_version(formulas)
|
78
|
+
formulas.select do |formula|
|
79
|
+
contain_passed_version?(formula)
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
def contain_passed_version?(formula)
|
84
|
+
fonts = formula.fonts_by_name(@font_name)
|
85
|
+
fonts.each do |font|
|
86
|
+
font.styles.each do |style|
|
87
|
+
version = StyleVersion.new(style.version)
|
88
|
+
return true if version == passed_version
|
37
89
|
end
|
38
90
|
end
|
39
91
|
|
40
|
-
|
92
|
+
false
|
41
93
|
end
|
42
94
|
|
43
95
|
def passed_version
|
44
96
|
@passed_version ||= StyleVersion.new(@version)
|
45
97
|
end
|
46
98
|
|
47
|
-
def
|
48
|
-
|
49
|
-
end
|
99
|
+
def choose(formulas)
|
100
|
+
return formulas if contain_different_styles?(formulas)
|
50
101
|
|
51
|
-
|
52
|
-
newest_formulas = filter_by_max_version(formulas)
|
53
|
-
smallest(newest_formulas)
|
54
|
-
end
|
102
|
+
list = formulas
|
55
103
|
|
56
|
-
|
57
|
-
|
104
|
+
if @options.empty? || @newest
|
105
|
+
list = choose_max_version(list)
|
106
|
+
end
|
107
|
+
|
108
|
+
smallest(list)
|
58
109
|
end
|
59
110
|
|
60
111
|
def smallest(formulas)
|
61
112
|
[choose_smallest_formula(formulas)]
|
62
113
|
end
|
63
114
|
|
64
|
-
def
|
65
|
-
|
66
|
-
|
67
|
-
|
115
|
+
def choose_smallest_formula(formulas)
|
116
|
+
formulas.min_by do |formula|
|
117
|
+
formula.file_size || 0
|
118
|
+
end
|
68
119
|
end
|
69
120
|
|
70
121
|
def contain_different_styles?(formulas)
|
@@ -80,9 +131,17 @@ module Fontist
|
|
80
131
|
styles_by_formula.uniq.size > 1
|
81
132
|
end
|
82
133
|
|
134
|
+
def ensure_size_limit(formulas)
|
135
|
+
list = filter_by_size_limit(formulas)
|
136
|
+
raise_size_limit_error if list.empty?
|
137
|
+
|
138
|
+
list
|
139
|
+
end
|
140
|
+
|
83
141
|
def filter_by_size_limit(formulas)
|
84
142
|
formulas.select do |formula|
|
85
|
-
formula.file_size.nil? || formula
|
143
|
+
formula.file_size.nil? || resources_cached?(formula) ||
|
144
|
+
formula.file_size < size_limit_in_bytes
|
86
145
|
end
|
87
146
|
end
|
88
147
|
|
@@ -96,7 +155,7 @@ module Fontist
|
|
96
155
|
"(#{@size_limit} MB)."
|
97
156
|
end
|
98
157
|
|
99
|
-
def
|
158
|
+
def choose_max_version(formulas)
|
100
159
|
formulas_with_version = detect_formula_version(formulas)
|
101
160
|
max_version = formulas_with_version.map(&:first).max
|
102
161
|
formulas_with_version.select do |version, _formula|
|
@@ -117,10 +176,10 @@ module Fontist
|
|
117
176
|
end
|
118
177
|
end
|
119
178
|
|
120
|
-
def
|
121
|
-
|
122
|
-
formula.
|
123
|
-
|
179
|
+
def resources_cached?(formula)
|
180
|
+
Utils::Cache.new.already_fetched?(
|
181
|
+
formula.resources.flat_map(&:urls),
|
182
|
+
)
|
124
183
|
end
|
125
184
|
end
|
126
185
|
end
|
@@ -8,9 +8,10 @@ module Fontist
|
|
8
8
|
LICENSE_PATTERN =
|
9
9
|
/(ofl\.txt|ufl\.txt|licenses?\.txt|license(\.md)?|copying)$/i.freeze
|
10
10
|
|
11
|
-
def initialize(archive,
|
11
|
+
def initialize(archive, subdir: nil, file_pattern: nil)
|
12
12
|
@archive = archive
|
13
13
|
@subdir = subdir
|
14
|
+
@file_pattern = file_pattern
|
14
15
|
@operations = {}
|
15
16
|
@font_files = []
|
16
17
|
@collection_files = []
|
@@ -72,10 +73,11 @@ module Fontist
|
|
72
73
|
|
73
74
|
def extract_data(archive)
|
74
75
|
Excavate::Archive.new(path(archive)).files(recursive_packages: true) do |path|
|
76
|
+
Fontist.ui.debug(path)
|
75
77
|
next unless File.file?(path)
|
76
78
|
|
77
79
|
match_license(path)
|
78
|
-
match_font(path) if
|
80
|
+
match_font(path) if font_candidate?(path)
|
79
81
|
end
|
80
82
|
end
|
81
83
|
|
@@ -110,6 +112,10 @@ module Fontist
|
|
110
112
|
end
|
111
113
|
end
|
112
114
|
|
115
|
+
def font_candidate?(path)
|
116
|
+
font_directory?(path) && file_pattern?(path)
|
117
|
+
end
|
118
|
+
|
113
119
|
def font_directory?(path)
|
114
120
|
return true unless subdirectory_pattern
|
115
121
|
|
@@ -119,6 +125,12 @@ module Fontist
|
|
119
125
|
def subdirectory_pattern
|
120
126
|
@subdirectory_pattern ||= "*" + @subdir.chomp("/") if @subdir
|
121
127
|
end
|
128
|
+
|
129
|
+
def file_pattern?(path)
|
130
|
+
return true unless @file_pattern
|
131
|
+
|
132
|
+
File.fnmatch?(@file_pattern, File.basename(path))
|
133
|
+
end
|
122
134
|
end
|
123
135
|
end
|
124
136
|
end
|
data/lib/fontist/utils/cache.rb
CHANGED
data/lib/fontist/version.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.17.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: 2023-05
|
11
|
+
date: 2023-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: down
|
@@ -143,6 +143,9 @@ dependencies:
|
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '0.3'
|
146
|
+
- - ">="
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: 0.3.4
|
146
149
|
type: :runtime
|
147
150
|
prerelease: false
|
148
151
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -150,6 +153,9 @@ dependencies:
|
|
150
153
|
- - "~>"
|
151
154
|
- !ruby/object:Gem::Version
|
152
155
|
version: '0.3'
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: 0.3.4
|
153
159
|
- !ruby/object:Gem::Dependency
|
154
160
|
name: socksify
|
155
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -240,14 +246,14 @@ dependencies:
|
|
240
246
|
requirements:
|
241
247
|
- - "~>"
|
242
248
|
- !ruby/object:Gem::Version
|
243
|
-
version:
|
249
|
+
version: 1.22.1
|
244
250
|
type: :development
|
245
251
|
prerelease: false
|
246
252
|
version_requirements: !ruby/object:Gem::Requirement
|
247
253
|
requirements:
|
248
254
|
- - "~>"
|
249
255
|
- !ruby/object:Gem::Version
|
250
|
-
version:
|
256
|
+
version: 1.22.1
|
251
257
|
- !ruby/object:Gem::Dependency
|
252
258
|
name: rubocop-rails
|
253
259
|
requirement: !ruby/object:Gem::Requirement
|