e621_export_downloader 0.0.1

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.
Files changed (78) hide show
  1. checksums.yaml +7 -0
  2. data/.irbrc +14 -0
  3. data/.ruby-version +1 -0
  4. data/LICENSE +21 -0
  5. data/README.md +148 -0
  6. data/Rakefile +8 -0
  7. data/exe/e621-export-downloader +112 -0
  8. data/lib/e621_export_downloader/client/options/builder/parsers.rb +42 -0
  9. data/lib/e621_export_downloader/client/options/builder.rb +44 -0
  10. data/lib/e621_export_downloader/client/options.rb +37 -0
  11. data/lib/e621_export_downloader/client.rb +120 -0
  12. data/lib/e621_export_downloader/constants.rb +17 -0
  13. data/lib/e621_export_downloader/export.rb +128 -0
  14. data/lib/e621_export_downloader/export_helper.rb +83 -0
  15. data/lib/e621_export_downloader/models/pool.rb +69 -0
  16. data/lib/e621_export_downloader/models/post.rb +166 -0
  17. data/lib/e621_export_downloader/models/tag.rb +41 -0
  18. data/lib/e621_export_downloader/models/tag_alias.rb +46 -0
  19. data/lib/e621_export_downloader/models/tag_implication.rb +46 -0
  20. data/lib/e621_export_downloader/models/wiki_page.rb +61 -0
  21. data/lib/e621_export_downloader/types.rb +14 -0
  22. data/lib/e621_export_downloader/version.rb +10 -0
  23. data/lib/e621_export_downloader.rb +12 -0
  24. data/sorbet/config +5 -0
  25. data/sorbet/rbi/annotations/.gitattributes +1 -0
  26. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  27. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  28. data/sorbet/rbi/gems/.gitattributes +1 -0
  29. data/sorbet/rbi/gems/ast@2.4.3.rbi +550 -0
  30. data/sorbet/rbi/gems/benchmark@0.5.0.rbi +621 -0
  31. data/sorbet/rbi/gems/csv@3.3.5.rbi +4462 -0
  32. data/sorbet/rbi/gems/date@3.5.1.rbi +391 -0
  33. data/sorbet/rbi/gems/erb@6.0.4.rbi +1538 -0
  34. data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
  35. data/sorbet/rbi/gems/faraday-net_http@3.4.2.rbi +9 -0
  36. data/sorbet/rbi/gems/faraday@2.14.1.rbi +9 -0
  37. data/sorbet/rbi/gems/io-console@0.8.2.rbi +9 -0
  38. data/sorbet/rbi/gems/json@2.19.5.rbi +2240 -0
  39. data/sorbet/rbi/gems/language_server-protocol@3.17.0.5.rbi +9 -0
  40. data/sorbet/rbi/gems/lint_roller@1.1.0.rbi +189 -0
  41. data/sorbet/rbi/gems/logger@1.7.0.rbi +896 -0
  42. data/sorbet/rbi/gems/net-http@0.9.1.rbi +4029 -0
  43. data/sorbet/rbi/gems/netrc@0.11.0.rbi +147 -0
  44. data/sorbet/rbi/gems/parallel@2.1.0.rbi +321 -0
  45. data/sorbet/rbi/gems/parser@3.3.11.1.rbi +5229 -0
  46. data/sorbet/rbi/gems/pp@0.6.3.rbi +377 -0
  47. data/sorbet/rbi/gems/prettyprint@0.2.0.rbi +455 -0
  48. data/sorbet/rbi/gems/prism@1.9.0.rbi +42224 -0
  49. data/sorbet/rbi/gems/psych@5.3.1.rbi +2374 -0
  50. data/sorbet/rbi/gems/racc@1.8.1.rbi +165 -0
  51. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +362 -0
  52. data/sorbet/rbi/gems/rake@13.4.2.rbi +3130 -0
  53. data/sorbet/rbi/gems/rbi@0.3.11.rbi +5505 -0
  54. data/sorbet/rbi/gems/rbs@4.0.2.rbi +6908 -0
  55. data/sorbet/rbi/gems/rdoc@7.2.0.rbi +9 -0
  56. data/sorbet/rbi/gems/regexp_parser@2.12.0.rbi +3398 -0
  57. data/sorbet/rbi/gems/reline@0.6.3.rbi +2446 -0
  58. data/sorbet/rbi/gems/require-hooks@0.4.0.rbi +152 -0
  59. data/sorbet/rbi/gems/rexml@3.4.4.rbi +4905 -0
  60. data/sorbet/rbi/gems/rubocop-ast@1.49.1.rbi +7062 -0
  61. data/sorbet/rbi/gems/rubocop-rake@0.7.1.rbi +314 -0
  62. data/sorbet/rbi/gems/rubocop@1.86.1.rbi +62227 -0
  63. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +988 -0
  64. data/sorbet/rbi/gems/rubydex@0.2.0.rbi +663 -0
  65. data/sorbet/rbi/gems/spoom@1.7.13.rbi +6151 -0
  66. data/sorbet/rbi/gems/stringio@3.2.0.rbi +9 -0
  67. data/sorbet/rbi/gems/tapioca@0.19.1.rbi +3555 -0
  68. data/sorbet/rbi/gems/thor@1.5.0.rbi +3870 -0
  69. data/sorbet/rbi/gems/tsort@0.2.0.rbi +389 -0
  70. data/sorbet/rbi/gems/unicode-display_width@3.2.0.rbi +130 -0
  71. data/sorbet/rbi/gems/unicode-emoji@4.2.0.rbi +332 -0
  72. data/sorbet/rbi/gems/uri@1.1.1.rbi +2400 -0
  73. data/sorbet/rbi/gems/zeitwerk@2.7.5.rbi +1090 -0
  74. data/sorbet/rbi/shims/faraday.rbi +42 -0
  75. data/sorbet/rbi/todo.rbi +7 -0
  76. data/sorbet/tapioca/config.yml +13 -0
  77. data/sorbet/tapioca/require.rb +4 -0
  78. metadata +177 -0
@@ -0,0 +1,389 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `tsort` gem.
5
+ # Please instead update this file by running `bin/tapioca gem tsort`.
6
+
7
+
8
+ # TSort implements topological sorting using Tarjan's algorithm for
9
+ # strongly connected components.
10
+ #
11
+ # TSort is designed to be able to be used with any object which can be
12
+ # interpreted as a directed graph.
13
+ #
14
+ # TSort requires two methods to interpret an object as a graph,
15
+ # tsort_each_node and tsort_each_child.
16
+ #
17
+ # * tsort_each_node is used to iterate for all nodes over a graph.
18
+ # * tsort_each_child is used to iterate for child nodes of a given node.
19
+ #
20
+ # The equality of nodes are defined by eql? and hash since
21
+ # TSort uses Hash internally.
22
+ #
23
+ # == A Simple Example
24
+ #
25
+ # The following example demonstrates how to mix the TSort module into an
26
+ # existing class (in this case, Hash). Here, we're treating each key in
27
+ # the hash as a node in the graph, and so we simply alias the required
28
+ # #tsort_each_node method to Hash's #each_key method. For each key in the
29
+ # hash, the associated value is an array of the node's child nodes. This
30
+ # choice in turn leads to our implementation of the required #tsort_each_child
31
+ # method, which fetches the array of child nodes and then iterates over that
32
+ # array using the user-supplied block.
33
+ #
34
+ # require 'tsort'
35
+ #
36
+ # class Hash
37
+ # include TSort
38
+ # alias tsort_each_node each_key
39
+ # def tsort_each_child(node, &block)
40
+ # fetch(node).each(&block)
41
+ # end
42
+ # end
43
+ #
44
+ # {1=>[2, 3], 2=>[3], 3=>[], 4=>[]}.tsort
45
+ # #=> [3, 2, 1, 4]
46
+ #
47
+ # {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}.strongly_connected_components
48
+ # #=> [[4], [2, 3], [1]]
49
+ #
50
+ # == A More Realistic Example
51
+ #
52
+ # A very simple `make' like tool can be implemented as follows:
53
+ #
54
+ # require 'tsort'
55
+ #
56
+ # class Make
57
+ # def initialize
58
+ # @dep = {}
59
+ # @dep.default = []
60
+ # end
61
+ #
62
+ # def rule(outputs, inputs=[], &block)
63
+ # triple = [outputs, inputs, block]
64
+ # outputs.each {|f| @dep[f] = [triple]}
65
+ # @dep[triple] = inputs
66
+ # end
67
+ #
68
+ # def build(target)
69
+ # each_strongly_connected_component_from(target) {|ns|
70
+ # if ns.length != 1
71
+ # fs = ns.delete_if {|n| Array === n}
72
+ # raise TSort::Cyclic.new("cyclic dependencies: #{fs.join ', '}")
73
+ # end
74
+ # n = ns.first
75
+ # if Array === n
76
+ # outputs, inputs, block = n
77
+ # inputs_time = inputs.map {|f| File.mtime f}.max
78
+ # begin
79
+ # outputs_time = outputs.map {|f| File.mtime f}.min
80
+ # rescue Errno::ENOENT
81
+ # outputs_time = nil
82
+ # end
83
+ # if outputs_time == nil ||
84
+ # inputs_time != nil && outputs_time <= inputs_time
85
+ # sleep 1 if inputs_time != nil && inputs_time.to_i == Time.now.to_i
86
+ # block.call
87
+ # end
88
+ # end
89
+ # }
90
+ # end
91
+ #
92
+ # def tsort_each_child(node, &block)
93
+ # @dep[node].each(&block)
94
+ # end
95
+ # include TSort
96
+ # end
97
+ #
98
+ # def command(arg)
99
+ # print arg, "\n"
100
+ # system arg
101
+ # end
102
+ #
103
+ # m = Make.new
104
+ # m.rule(%w[t1]) { command 'date > t1' }
105
+ # m.rule(%w[t2]) { command 'date > t2' }
106
+ # m.rule(%w[t3]) { command 'date > t3' }
107
+ # m.rule(%w[t4], %w[t1 t3]) { command 'cat t1 t3 > t4' }
108
+ # m.rule(%w[t5], %w[t4 t2]) { command 'cat t4 t2 > t5' }
109
+ # m.build('t5')
110
+ #
111
+ # == Bugs
112
+ #
113
+ # * 'tsort.rb' is wrong name because this library uses
114
+ # Tarjan's algorithm for strongly connected components.
115
+ # Although 'strongly_connected_components.rb' is correct but too long.
116
+ #
117
+ # == References
118
+ #
119
+ # R. E. Tarjan, "Depth First Search and Linear Graph Algorithms",
120
+ # <em>SIAM Journal on Computing</em>, Vol. 1, No. 2, pp. 146-160, June 1972.
121
+ #
122
+ # pkg:gem/tsort#lib/tsort.rb:124
123
+ module TSort
124
+ # The iterator version of the #strongly_connected_components method.
125
+ # <tt><em>obj</em>.each_strongly_connected_component</tt> is similar to
126
+ # <tt><em>obj</em>.strongly_connected_components.each</tt>, but
127
+ # modification of _obj_ during the iteration may lead to unexpected results.
128
+ #
129
+ # #each_strongly_connected_component returns +nil+.
130
+ #
131
+ # class G
132
+ # include TSort
133
+ # def initialize(g)
134
+ # @g = g
135
+ # end
136
+ # def tsort_each_child(n, &b) @g[n].each(&b) end
137
+ # def tsort_each_node(&b) @g.each_key(&b) end
138
+ # end
139
+ #
140
+ # graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
141
+ # graph.each_strongly_connected_component {|scc| p scc }
142
+ # #=> [4]
143
+ # # [2]
144
+ # # [3]
145
+ # # [1]
146
+ #
147
+ # graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
148
+ # graph.each_strongly_connected_component {|scc| p scc }
149
+ # #=> [4]
150
+ # # [2, 3]
151
+ # # [1]
152
+ #
153
+ # pkg:gem/tsort#lib/tsort.rb:316
154
+ def each_strongly_connected_component(&block); end
155
+
156
+ # Iterates over strongly connected component in the subgraph reachable from
157
+ # _node_.
158
+ #
159
+ # Return value is unspecified.
160
+ #
161
+ # #each_strongly_connected_component_from doesn't call #tsort_each_node.
162
+ #
163
+ # class G
164
+ # include TSort
165
+ # def initialize(g)
166
+ # @g = g
167
+ # end
168
+ # def tsort_each_child(n, &b) @g[n].each(&b) end
169
+ # def tsort_each_node(&b) @g.each_key(&b) end
170
+ # end
171
+ #
172
+ # graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
173
+ # graph.each_strongly_connected_component_from(2) {|scc| p scc }
174
+ # #=> [4]
175
+ # # [2]
176
+ #
177
+ # graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
178
+ # graph.each_strongly_connected_component_from(2) {|scc| p scc }
179
+ # #=> [4]
180
+ # # [2, 3]
181
+ #
182
+ # pkg:gem/tsort#lib/tsort.rb:386
183
+ def each_strongly_connected_component_from(node, id_map = T.unsafe(nil), stack = T.unsafe(nil), &block); end
184
+
185
+ # Returns strongly connected components as an array of arrays of nodes.
186
+ # The array is sorted from children to parents.
187
+ # Each elements of the array represents a strongly connected component.
188
+ #
189
+ # class G
190
+ # include TSort
191
+ # def initialize(g)
192
+ # @g = g
193
+ # end
194
+ # def tsort_each_child(n, &b) @g[n].each(&b) end
195
+ # def tsort_each_node(&b) @g.each_key(&b) end
196
+ # end
197
+ #
198
+ # graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
199
+ # p graph.strongly_connected_components #=> [[4], [2], [3], [1]]
200
+ #
201
+ # graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
202
+ # p graph.strongly_connected_components #=> [[4], [2, 3], [1]]
203
+ #
204
+ # pkg:gem/tsort#lib/tsort.rb:257
205
+ def strongly_connected_components; end
206
+
207
+ # Returns a topologically sorted array of nodes.
208
+ # The array is sorted from children to parents, i.e.
209
+ # the first element has no child and the last node has no parent.
210
+ #
211
+ # If there is a cycle, TSort::Cyclic is raised.
212
+ #
213
+ # class G
214
+ # include TSort
215
+ # def initialize(g)
216
+ # @g = g
217
+ # end
218
+ # def tsort_each_child(n, &b) @g[n].each(&b) end
219
+ # def tsort_each_node(&b) @g.each_key(&b) end
220
+ # end
221
+ #
222
+ # graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
223
+ # p graph.tsort #=> [4, 2, 3, 1]
224
+ #
225
+ # graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
226
+ # p graph.tsort # raises TSort::Cyclic
227
+ #
228
+ # pkg:gem/tsort#lib/tsort.rb:152
229
+ def tsort; end
230
+
231
+ # The iterator version of the #tsort method.
232
+ # <tt><em>obj</em>.tsort_each</tt> is similar to <tt><em>obj</em>.tsort.each</tt>, but
233
+ # modification of _obj_ during the iteration may lead to unexpected results.
234
+ #
235
+ # #tsort_each returns +nil+.
236
+ # If there is a cycle, TSort::Cyclic is raised.
237
+ #
238
+ # class G
239
+ # include TSort
240
+ # def initialize(g)
241
+ # @g = g
242
+ # end
243
+ # def tsort_each_child(n, &b) @g[n].each(&b) end
244
+ # def tsort_each_node(&b) @g.each_key(&b) end
245
+ # end
246
+ #
247
+ # graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
248
+ # graph.tsort_each {|n| p n }
249
+ # #=> 4
250
+ # # 2
251
+ # # 3
252
+ # # 1
253
+ #
254
+ # pkg:gem/tsort#lib/tsort.rb:205
255
+ def tsort_each(&block); end
256
+
257
+ # Should be implemented by a extended class.
258
+ #
259
+ # #tsort_each_child is used to iterate for child nodes of _node_.
260
+ #
261
+ # pkg:gem/tsort#lib/tsort.rb:452
262
+ def tsort_each_child(node); end
263
+
264
+ # Should be implemented by a extended class.
265
+ #
266
+ # #tsort_each_node is used to iterate for all nodes over a graph.
267
+ #
268
+ # pkg:gem/tsort#lib/tsort.rb:444
269
+ def tsort_each_node; end
270
+
271
+ class << self
272
+ # The iterator version of the TSort.strongly_connected_components method.
273
+ #
274
+ # The graph is represented by _each_node_ and _each_child_.
275
+ # _each_node_ should have +call+ method which yields for each node in the graph.
276
+ # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
277
+ #
278
+ # g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
279
+ # each_node = lambda {|&b| g.each_key(&b) }
280
+ # each_child = lambda {|n, &b| g[n].each(&b) }
281
+ # TSort.each_strongly_connected_component(each_node, each_child) {|scc| p scc }
282
+ # #=> [4]
283
+ # # [2]
284
+ # # [3]
285
+ # # [1]
286
+ #
287
+ # g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
288
+ # each_node = lambda {|&b| g.each_key(&b) }
289
+ # each_child = lambda {|n, &b| g[n].each(&b) }
290
+ # TSort.each_strongly_connected_component(each_node, each_child) {|scc| p scc }
291
+ # #=> [4]
292
+ # # [2, 3]
293
+ # # [1]
294
+ #
295
+ # pkg:gem/tsort#lib/tsort.rb:345
296
+ def each_strongly_connected_component(each_node, each_child); end
297
+
298
+ # Iterates over strongly connected components in a graph.
299
+ # The graph is represented by _node_ and _each_child_.
300
+ #
301
+ # _node_ is the first node.
302
+ # _each_child_ should have +call+ method which takes a node argument
303
+ # and yields for each child node.
304
+ #
305
+ # Return value is unspecified.
306
+ #
307
+ # #TSort.each_strongly_connected_component_from is a class method and
308
+ # it doesn't need a class to represent a graph which includes TSort.
309
+ #
310
+ # graph = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
311
+ # each_child = lambda {|n, &b| graph[n].each(&b) }
312
+ # TSort.each_strongly_connected_component_from(1, each_child) {|scc|
313
+ # p scc
314
+ # }
315
+ # #=> [4]
316
+ # # [2, 3]
317
+ # # [1]
318
+ #
319
+ # pkg:gem/tsort#lib/tsort.rb:411
320
+ def each_strongly_connected_component_from(node, each_child, id_map = T.unsafe(nil), stack = T.unsafe(nil)); end
321
+
322
+ # Returns strongly connected components as an array of arrays of nodes.
323
+ # The array is sorted from children to parents.
324
+ # Each elements of the array represents a strongly connected component.
325
+ #
326
+ # The graph is represented by _each_node_ and _each_child_.
327
+ # _each_node_ should have +call+ method which yields for each node in the graph.
328
+ # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
329
+ #
330
+ # g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
331
+ # each_node = lambda {|&b| g.each_key(&b) }
332
+ # each_child = lambda {|n, &b| g[n].each(&b) }
333
+ # p TSort.strongly_connected_components(each_node, each_child)
334
+ # #=> [[4], [2], [3], [1]]
335
+ #
336
+ # g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
337
+ # each_node = lambda {|&b| g.each_key(&b) }
338
+ # each_child = lambda {|n, &b| g[n].each(&b) }
339
+ # p TSort.strongly_connected_components(each_node, each_child)
340
+ # #=> [[4], [2, 3], [1]]
341
+ #
342
+ # pkg:gem/tsort#lib/tsort.rb:283
343
+ def strongly_connected_components(each_node, each_child); end
344
+
345
+ # Returns a topologically sorted array of nodes.
346
+ # The array is sorted from children to parents, i.e.
347
+ # the first element has no child and the last node has no parent.
348
+ #
349
+ # The graph is represented by _each_node_ and _each_child_.
350
+ # _each_node_ should have +call+ method which yields for each node in the graph.
351
+ # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
352
+ #
353
+ # If there is a cycle, TSort::Cyclic is raised.
354
+ #
355
+ # g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
356
+ # each_node = lambda {|&b| g.each_key(&b) }
357
+ # each_child = lambda {|n, &b| g[n].each(&b) }
358
+ # p TSort.tsort(each_node, each_child) #=> [4, 2, 3, 1]
359
+ #
360
+ # g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
361
+ # each_node = lambda {|&b| g.each_key(&b) }
362
+ # each_child = lambda {|n, &b| g[n].each(&b) }
363
+ # p TSort.tsort(each_node, each_child) # raises TSort::Cyclic
364
+ #
365
+ # pkg:gem/tsort#lib/tsort.rb:178
366
+ def tsort(each_node, each_child); end
367
+
368
+ # The iterator version of the TSort.tsort method.
369
+ #
370
+ # The graph is represented by _each_node_ and _each_child_.
371
+ # _each_node_ should have +call+ method which yields for each node in the graph.
372
+ # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
373
+ #
374
+ # g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
375
+ # each_node = lambda {|&b| g.each_key(&b) }
376
+ # each_child = lambda {|n, &b| g[n].each(&b) }
377
+ # TSort.tsort_each(each_node, each_child) {|n| p n }
378
+ # #=> 4
379
+ # # 2
380
+ # # 3
381
+ # # 1
382
+ #
383
+ # pkg:gem/tsort#lib/tsort.rb:226
384
+ def tsort_each(each_node, each_child); end
385
+ end
386
+ end
387
+
388
+ # pkg:gem/tsort#lib/tsort.rb:126
389
+ TSort::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,130 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `unicode-display_width` gem.
5
+ # Please instead update this file by running `bin/tapioca gem unicode-display_width`.
6
+
7
+
8
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/constants.rb:3
9
+ module Unicode; end
10
+
11
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/constants.rb:4
12
+ class Unicode::DisplayWidth
13
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:229
14
+ def initialize(ambiguous: T.unsafe(nil), overwrite: T.unsafe(nil), emoji: T.unsafe(nil)); end
15
+
16
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:235
17
+ def get_config(**kwargs); end
18
+
19
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:243
20
+ def of(string, **kwargs); end
21
+
22
+ class << self
23
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/index.rb:14
24
+ def decompress_index(index, level); end
25
+
26
+ # Returns width of all considered Emoji and remaining string
27
+ #
28
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:143
29
+ def emoji_width(string, mode = T.unsafe(nil), ambiguous = T.unsafe(nil)); end
30
+
31
+ # Match possible Emoji first, then refine
32
+ #
33
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:173
34
+ def emoji_width_via_possible(string, emoji_set_regex, strict_eaw = T.unsafe(nil), ambiguous = T.unsafe(nil)); end
35
+
36
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:201
37
+ def normalize_options(string, ambiguous = T.unsafe(nil), overwrite = T.unsafe(nil), old_options = T.unsafe(nil), **options); end
38
+
39
+ # Returns monospace display width of string
40
+ #
41
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:51
42
+ def of(string, ambiguous = T.unsafe(nil), overwrite = T.unsafe(nil), old_options = T.unsafe(nil), **options); end
43
+
44
+ # Returns width for ASCII-only strings. Will consider zero-width control symbols.
45
+ #
46
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:133
47
+ def width_ascii(string); end
48
+
49
+ # Returns width of custom overwrites and remaining string
50
+ #
51
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:117
52
+ def width_custom(string, overwrite); end
53
+ end
54
+ end
55
+
56
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:16
57
+ Unicode::DisplayWidth::AMBIGUOUS_MAP = T.let(T.unsafe(nil), Hash)
58
+
59
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:15
60
+ Unicode::DisplayWidth::ASCII_BACKSPACE = T.let(T.unsafe(nil), String)
61
+
62
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:13
63
+ Unicode::DisplayWidth::ASCII_NON_ZERO_REGEX = T.let(T.unsafe(nil), Regexp)
64
+
65
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:14
66
+ Unicode::DisplayWidth::ASCII_NON_ZERO_STRING = T.let(T.unsafe(nil), String)
67
+
68
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/constants.rb:7
69
+ Unicode::DisplayWidth::DATA_DIRECTORY = T.let(T.unsafe(nil), String)
70
+
71
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:11
72
+ Unicode::DisplayWidth::DEFAULT_AMBIGUOUS = T.let(T.unsafe(nil), Integer)
73
+
74
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:32
75
+ Unicode::DisplayWidth::EMOJI_SEQUENCES_REGEX_MAPPING = T.let(T.unsafe(nil), Hash)
76
+
77
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/emoji_support.rb:5
78
+ module Unicode::DisplayWidth::EmojiSupport
79
+ class << self
80
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/emoji_support.rb:18
81
+ def _recommended; end
82
+
83
+ # Tries to find out which terminal emulator is used to
84
+ # set emoji: config to best suiting value
85
+ #
86
+ # Please also see section in README.md and
87
+ # misc/terminal-emoji-width.rb
88
+ #
89
+ # Please note: Many terminals do not set any ENV vars,
90
+ # maybe CSI queries can help?
91
+ #
92
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/emoji_support.rb:14
93
+ def recommended; end
94
+ end
95
+ end
96
+
97
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:28
98
+ Unicode::DisplayWidth::FIRST_4096 = T.let(T.unsafe(nil), Hash)
99
+
100
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:20
101
+ Unicode::DisplayWidth::FIRST_AMBIGUOUS = T.let(T.unsafe(nil), Hash)
102
+
103
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/index.rb:11
104
+ Unicode::DisplayWidth::INDEX = T.let(T.unsafe(nil), Hash)
105
+
106
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/constants.rb:8
107
+ Unicode::DisplayWidth::INDEX_FILENAME = T.let(T.unsafe(nil), String)
108
+
109
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:12
110
+ Unicode::DisplayWidth::INITIAL_DEPTH = T.let(T.unsafe(nil), Integer)
111
+
112
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:24
113
+ Unicode::DisplayWidth::NOT_COMMON_NARROW_REGEX = T.let(T.unsafe(nil), Hash)
114
+
115
+ # ebase = Unicode::Emoji::REGEX_PROP_MODIFIER_BASE.source
116
+ #
117
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:47
118
+ Unicode::DisplayWidth::REGEX_EMOJI_ALL_SEQUENCES = T.let(T.unsafe(nil), Regexp)
119
+
120
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:48
121
+ Unicode::DisplayWidth::REGEX_EMOJI_ALL_SEQUENCES_AND_VS16 = T.let(T.unsafe(nil), Regexp)
122
+
123
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:37
124
+ Unicode::DisplayWidth::REGEX_EMOJI_VS16 = T.let(T.unsafe(nil), Regexp)
125
+
126
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/constants.rb:6
127
+ Unicode::DisplayWidth::UNICODE_VERSION = T.let(T.unsafe(nil), String)
128
+
129
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/constants.rb:5
130
+ Unicode::DisplayWidth::VERSION = T.let(T.unsafe(nil), String)