optimistic-json 0.1.1 → 0.1.3

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +6 -0
  3. data/.ruby-version +1 -0
  4. data/CHANGELOG.md +10 -0
  5. data/README.md +4 -0
  6. data/Rakefile +5 -1
  7. data/lib/optimistic/json/parser.rb +28 -7
  8. data/lib/optimistic/json/version.rb +2 -1
  9. data/lib/optimistic/json.rb +1 -1
  10. data/sorbet/config +4 -0
  11. data/sorbet/rbi/annotations/.gitattributes +1 -0
  12. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  13. data/sorbet/rbi/gems/.gitattributes +1 -0
  14. data/sorbet/rbi/gems/ast@2.4.2.rbi +550 -0
  15. data/sorbet/rbi/gems/benchmark@0.5.0.rbi +621 -0
  16. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1068 -0
  17. data/sorbet/rbi/gems/erubi@1.13.1.rbi +155 -0
  18. data/sorbet/rbi/gems/gem-release@2.2.2.rbi +1335 -0
  19. data/sorbet/rbi/gems/io-console@0.6.0.rbi +9 -0
  20. data/sorbet/rbi/gems/json@2.7.0.rbi +1797 -0
  21. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +12986 -0
  22. data/sorbet/rbi/gems/logger@1.6.0.rbi +845 -0
  23. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +218 -0
  24. data/sorbet/rbi/gems/netrc@0.11.0.rbi +147 -0
  25. data/sorbet/rbi/gems/parallel@1.28.0.rbi +270 -0
  26. data/sorbet/rbi/gems/parser@3.2.2.4.rbi +5154 -0
  27. data/sorbet/rbi/gems/prism@1.9.0.rbi +42224 -0
  28. data/sorbet/rbi/gems/psych@5.1.1.1.rbi +2321 -0
  29. data/sorbet/rbi/gems/racc@1.7.3.rbi +169 -0
  30. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +362 -0
  31. data/sorbet/rbi/gems/rake@13.1.0.rbi +3025 -0
  32. data/sorbet/rbi/gems/rbi@0.3.11.rbi +5505 -0
  33. data/sorbet/rbi/gems/rbs@4.0.2.rbi +6908 -0
  34. data/sorbet/rbi/gems/rdoc@6.6.0.rbi +9 -0
  35. data/sorbet/rbi/gems/regexp_parser@2.8.2.rbi +3268 -0
  36. data/sorbet/rbi/gems/reline@0.4.1.rbi +9 -0
  37. data/sorbet/rbi/gems/require-hooks@0.4.0.rbi +152 -0
  38. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4798 -0
  39. data/sorbet/rbi/gems/rspec-core@3.12.2.rbi +9405 -0
  40. data/sorbet/rbi/gems/rspec-expectations@3.12.3.rbi +6013 -0
  41. data/sorbet/rbi/gems/rspec-mocks@3.12.6.rbi +4750 -0
  42. data/sorbet/rbi/gems/rspec-support@3.12.1.rbi +1261 -0
  43. data/sorbet/rbi/gems/rspec@3.12.0.rbi +15 -0
  44. data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +6750 -0
  45. data/sorbet/rbi/gems/rubocop-capybara@2.19.0.rbi +1058 -0
  46. data/sorbet/rbi/gems/rubocop-factory_bot@2.24.0.rbi +875 -0
  47. data/sorbet/rbi/gems/rubocop-rspec@2.25.0.rbi +7696 -0
  48. data/sorbet/rbi/gems/rubocop@1.58.0.rbi +53790 -0
  49. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +988 -0
  50. data/sorbet/rbi/gems/rubydex@0.2.3.rbi +787 -0
  51. data/sorbet/rbi/gems/spoom@1.7.14.rbi +6151 -0
  52. data/sorbet/rbi/gems/stringio@3.1.0.rbi +9 -0
  53. data/sorbet/rbi/gems/tapioca@0.19.1.rbi +3558 -0
  54. data/sorbet/rbi/gems/thor@1.5.0.rbi +3870 -0
  55. data/sorbet/rbi/gems/tsort@0.2.0.rbi +387 -0
  56. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +64 -0
  57. data/sorbet/tapioca/config.yml +13 -0
  58. data/sorbet/tapioca/require.rb +4 -0
  59. metadata +55 -23
  60. data/sig/optimistic/json.rbs +0 -6
@@ -0,0 +1,387 @@
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
+ module TSort
122
+ # The iterator version of the #strongly_connected_components method.
123
+ # <tt><em>obj</em>.each_strongly_connected_component</tt> is similar to
124
+ # <tt><em>obj</em>.strongly_connected_components.each</tt>, but
125
+ # modification of _obj_ during the iteration may lead to unexpected results.
126
+ #
127
+ # #each_strongly_connected_component returns +nil+.
128
+ #
129
+ # class G
130
+ # include TSort
131
+ # def initialize(g)
132
+ # @g = g
133
+ # end
134
+ # def tsort_each_child(n, &b) @g[n].each(&b) end
135
+ # def tsort_each_node(&b) @g.each_key(&b) end
136
+ # end
137
+ #
138
+ # graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
139
+ # graph.each_strongly_connected_component {|scc| p scc }
140
+ # #=> [4]
141
+ # # [2]
142
+ # # [3]
143
+ # # [1]
144
+ #
145
+ # graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
146
+ # graph.each_strongly_connected_component {|scc| p scc }
147
+ # #=> [4]
148
+ # # [2, 3]
149
+ # # [1]
150
+ #
151
+ # pkg:gem/tsort#tsort.rb:316
152
+ def each_strongly_connected_component(&block); end
153
+
154
+ # Iterates over strongly connected component in the subgraph reachable from
155
+ # _node_.
156
+ #
157
+ # Return value is unspecified.
158
+ #
159
+ # #each_strongly_connected_component_from doesn't call #tsort_each_node.
160
+ #
161
+ # class G
162
+ # include TSort
163
+ # def initialize(g)
164
+ # @g = g
165
+ # end
166
+ # def tsort_each_child(n, &b) @g[n].each(&b) end
167
+ # def tsort_each_node(&b) @g.each_key(&b) end
168
+ # end
169
+ #
170
+ # graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
171
+ # graph.each_strongly_connected_component_from(2) {|scc| p scc }
172
+ # #=> [4]
173
+ # # [2]
174
+ #
175
+ # graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
176
+ # graph.each_strongly_connected_component_from(2) {|scc| p scc }
177
+ # #=> [4]
178
+ # # [2, 3]
179
+ #
180
+ # pkg:gem/tsort#tsort.rb:386
181
+ def each_strongly_connected_component_from(node, id_map = T.unsafe(nil), stack = T.unsafe(nil), &block); end
182
+
183
+ # Returns strongly connected components as an array of arrays of nodes.
184
+ # The array is sorted from children to parents.
185
+ # Each elements of the array represents a strongly connected component.
186
+ #
187
+ # class G
188
+ # include TSort
189
+ # def initialize(g)
190
+ # @g = g
191
+ # end
192
+ # def tsort_each_child(n, &b) @g[n].each(&b) end
193
+ # def tsort_each_node(&b) @g.each_key(&b) end
194
+ # end
195
+ #
196
+ # graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
197
+ # p graph.strongly_connected_components #=> [[4], [2], [3], [1]]
198
+ #
199
+ # graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
200
+ # p graph.strongly_connected_components #=> [[4], [2, 3], [1]]
201
+ #
202
+ # pkg:gem/tsort#tsort.rb:257
203
+ def strongly_connected_components; end
204
+
205
+ # Returns a topologically sorted array of nodes.
206
+ # The array is sorted from children to parents, i.e.
207
+ # the first element has no child and the last node has no parent.
208
+ #
209
+ # If there is a cycle, TSort::Cyclic is raised.
210
+ #
211
+ # class G
212
+ # include TSort
213
+ # def initialize(g)
214
+ # @g = g
215
+ # end
216
+ # def tsort_each_child(n, &b) @g[n].each(&b) end
217
+ # def tsort_each_node(&b) @g.each_key(&b) end
218
+ # end
219
+ #
220
+ # graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
221
+ # p graph.tsort #=> [4, 2, 3, 1]
222
+ #
223
+ # graph = G.new({1=>[2], 2=>[3, 4], 3=>[2], 4=>[]})
224
+ # p graph.tsort # raises TSort::Cyclic
225
+ #
226
+ # pkg:gem/tsort#tsort.rb:152
227
+ def tsort; end
228
+
229
+ # The iterator version of the #tsort method.
230
+ # <tt><em>obj</em>.tsort_each</tt> is similar to <tt><em>obj</em>.tsort.each</tt>, but
231
+ # modification of _obj_ during the iteration may lead to unexpected results.
232
+ #
233
+ # #tsort_each returns +nil+.
234
+ # If there is a cycle, TSort::Cyclic is raised.
235
+ #
236
+ # class G
237
+ # include TSort
238
+ # def initialize(g)
239
+ # @g = g
240
+ # end
241
+ # def tsort_each_child(n, &b) @g[n].each(&b) end
242
+ # def tsort_each_node(&b) @g.each_key(&b) end
243
+ # end
244
+ #
245
+ # graph = G.new({1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]})
246
+ # graph.tsort_each {|n| p n }
247
+ # #=> 4
248
+ # # 2
249
+ # # 3
250
+ # # 1
251
+ #
252
+ # pkg:gem/tsort#tsort.rb:205
253
+ def tsort_each(&block); end
254
+
255
+ # Should be implemented by a extended class.
256
+ #
257
+ # #tsort_each_child is used to iterate for child nodes of _node_.
258
+ #
259
+ # pkg:gem/tsort#tsort.rb:452
260
+ def tsort_each_child(node); end
261
+
262
+ # Should be implemented by a extended class.
263
+ #
264
+ # #tsort_each_node is used to iterate for all nodes over a graph.
265
+ #
266
+ # pkg:gem/tsort#tsort.rb:444
267
+ def tsort_each_node; end
268
+
269
+ class << self
270
+ # The iterator version of the TSort.strongly_connected_components method.
271
+ #
272
+ # The graph is represented by _each_node_ and _each_child_.
273
+ # _each_node_ should have +call+ method which yields for each node in the graph.
274
+ # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
275
+ #
276
+ # g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
277
+ # each_node = lambda {|&b| g.each_key(&b) }
278
+ # each_child = lambda {|n, &b| g[n].each(&b) }
279
+ # TSort.each_strongly_connected_component(each_node, each_child) {|scc| p scc }
280
+ # #=> [4]
281
+ # # [2]
282
+ # # [3]
283
+ # # [1]
284
+ #
285
+ # g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
286
+ # each_node = lambda {|&b| g.each_key(&b) }
287
+ # each_child = lambda {|n, &b| g[n].each(&b) }
288
+ # TSort.each_strongly_connected_component(each_node, each_child) {|scc| p scc }
289
+ # #=> [4]
290
+ # # [2, 3]
291
+ # # [1]
292
+ #
293
+ # pkg:gem/tsort#tsort.rb:345
294
+ def each_strongly_connected_component(each_node, each_child); end
295
+
296
+ # Iterates over strongly connected components in a graph.
297
+ # The graph is represented by _node_ and _each_child_.
298
+ #
299
+ # _node_ is the first node.
300
+ # _each_child_ should have +call+ method which takes a node argument
301
+ # and yields for each child node.
302
+ #
303
+ # Return value is unspecified.
304
+ #
305
+ # #TSort.each_strongly_connected_component_from is a class method and
306
+ # it doesn't need a class to represent a graph which includes TSort.
307
+ #
308
+ # graph = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
309
+ # each_child = lambda {|n, &b| graph[n].each(&b) }
310
+ # TSort.each_strongly_connected_component_from(1, each_child) {|scc|
311
+ # p scc
312
+ # }
313
+ # #=> [4]
314
+ # # [2, 3]
315
+ # # [1]
316
+ #
317
+ # pkg:gem/tsort#tsort.rb:411
318
+ def each_strongly_connected_component_from(node, each_child, id_map = T.unsafe(nil), stack = T.unsafe(nil)); end
319
+
320
+ # Returns strongly connected components as an array of arrays of nodes.
321
+ # The array is sorted from children to parents.
322
+ # Each elements of the array represents a strongly connected component.
323
+ #
324
+ # The graph is represented by _each_node_ and _each_child_.
325
+ # _each_node_ should have +call+ method which yields for each node in the graph.
326
+ # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
327
+ #
328
+ # g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
329
+ # each_node = lambda {|&b| g.each_key(&b) }
330
+ # each_child = lambda {|n, &b| g[n].each(&b) }
331
+ # p TSort.strongly_connected_components(each_node, each_child)
332
+ # #=> [[4], [2], [3], [1]]
333
+ #
334
+ # g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
335
+ # each_node = lambda {|&b| g.each_key(&b) }
336
+ # each_child = lambda {|n, &b| g[n].each(&b) }
337
+ # p TSort.strongly_connected_components(each_node, each_child)
338
+ # #=> [[4], [2, 3], [1]]
339
+ #
340
+ # pkg:gem/tsort#tsort.rb:283
341
+ def strongly_connected_components(each_node, each_child); end
342
+
343
+ # Returns a topologically sorted array of nodes.
344
+ # The array is sorted from children to parents, i.e.
345
+ # the first element has no child and the last node has no parent.
346
+ #
347
+ # The graph is represented by _each_node_ and _each_child_.
348
+ # _each_node_ should have +call+ method which yields for each node in the graph.
349
+ # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
350
+ #
351
+ # If there is a cycle, TSort::Cyclic is raised.
352
+ #
353
+ # g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
354
+ # each_node = lambda {|&b| g.each_key(&b) }
355
+ # each_child = lambda {|n, &b| g[n].each(&b) }
356
+ # p TSort.tsort(each_node, each_child) #=> [4, 2, 3, 1]
357
+ #
358
+ # g = {1=>[2], 2=>[3, 4], 3=>[2], 4=>[]}
359
+ # each_node = lambda {|&b| g.each_key(&b) }
360
+ # each_child = lambda {|n, &b| g[n].each(&b) }
361
+ # p TSort.tsort(each_node, each_child) # raises TSort::Cyclic
362
+ #
363
+ # pkg:gem/tsort#tsort.rb:178
364
+ def tsort(each_node, each_child); end
365
+
366
+ # The iterator version of the TSort.tsort method.
367
+ #
368
+ # The graph is represented by _each_node_ and _each_child_.
369
+ # _each_node_ should have +call+ method which yields for each node in the graph.
370
+ # _each_child_ should have +call+ method which takes a node argument and yields for each child node.
371
+ #
372
+ # g = {1=>[2, 3], 2=>[4], 3=>[2, 4], 4=>[]}
373
+ # each_node = lambda {|&b| g.each_key(&b) }
374
+ # each_child = lambda {|n, &b| g[n].each(&b) }
375
+ # TSort.tsort_each(each_node, each_child) {|n| p n }
376
+ # #=> 4
377
+ # # 2
378
+ # # 3
379
+ # # 1
380
+ #
381
+ # pkg:gem/tsort#tsort.rb:226
382
+ def tsort_each(each_node, each_child); end
383
+ end
384
+ end
385
+
386
+ # pkg:gem/tsort#tsort.rb:126
387
+ TSort::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,64 @@
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:104
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:110
17
+ def get_config(**kwargs); end
18
+
19
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:118
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
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:86
27
+ def emoji_extra_width_of(string, ambiguous = T.unsafe(nil), overwrite = T.unsafe(nil), _ = T.unsafe(nil)); end
28
+
29
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:12
30
+ def of(string, ambiguous = T.unsafe(nil), overwrite = T.unsafe(nil), options = T.unsafe(nil)); end
31
+
32
+ # Same as .width_no_overwrite - but with applying overwrites for each char
33
+ #
34
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:57
35
+ def width_all_features(string, ambiguous, overwrite, options); end
36
+
37
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:30
38
+ def width_no_overwrite(string, ambiguous, options = T.unsafe(nil)); end
39
+ end
40
+ end
41
+
42
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:9
43
+ Unicode::DisplayWidth::ASCII_NON_ZERO_REGEX = T.let(T.unsafe(nil), Regexp)
44
+
45
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/constants.rb:7
46
+ Unicode::DisplayWidth::DATA_DIRECTORY = T.let(T.unsafe(nil), String)
47
+
48
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:10
49
+ Unicode::DisplayWidth::FIRST_4096 = T.let(T.unsafe(nil), Array)
50
+
51
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/index.rb:11
52
+ Unicode::DisplayWidth::INDEX = T.let(T.unsafe(nil), Array)
53
+
54
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/constants.rb:8
55
+ Unicode::DisplayWidth::INDEX_FILENAME = T.let(T.unsafe(nil), String)
56
+
57
+ # pkg:gem/unicode-display_width#lib/unicode/display_width.rb:8
58
+ Unicode::DisplayWidth::INITIAL_DEPTH = T.let(T.unsafe(nil), Integer)
59
+
60
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/constants.rb:6
61
+ Unicode::DisplayWidth::UNICODE_VERSION = T.let(T.unsafe(nil), String)
62
+
63
+ # pkg:gem/unicode-display_width#lib/unicode/display_width/constants.rb:5
64
+ Unicode::DisplayWidth::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,13 @@
1
+ gem:
2
+ # Add your `gem` command parameters here:
3
+ #
4
+ # exclude:
5
+ # - gem_name
6
+ # doc: true
7
+ # workers: 5
8
+ dsl:
9
+ # Add your `dsl` command parameters here:
10
+ #
11
+ # exclude:
12
+ # - SomeGeneratorName
13
+ # workers: 5
@@ -0,0 +1,4 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ # Add your extra requires here (`bin/tapioca require` can be used to bootstrap this list)
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: optimistic-json
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles C. Lee
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-12-04 00:00:00.000000000 Z
10
+ date: 2026-05-11 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: logger
@@ -38,20 +37,6 @@ dependencies:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
39
  version: '1.0'
41
- - !ruby/object:Gem::Dependency
42
- name: sorbet-runtime
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
40
  - !ruby/object:Gem::Dependency
56
41
  name: debug
57
42
  requirement: !ruby/object:Gem::Requirement
@@ -164,16 +149,17 @@ dependencies:
164
149
  - - ">="
165
150
  - !ruby/object:Gem::Version
166
151
  version: '0'
167
- description: Heavily inspired by [`best-effort-json-parser`](https://github.com/beenotung/best-effort-json-parser)
152
+ description: Ruby implementation of [`best-effort-json-parser`](https://github.com/beenotung/best-effort-json-parser)
168
153
  to parse potentially incomplete JSON in a best effort manner.
169
154
  email:
170
- - charleschanlee@gmail.com
155
+ - contact@charleschanlee.com
171
156
  executables: []
172
157
  extensions: []
173
158
  extra_rdoc_files: []
174
159
  files:
175
160
  - ".rspec"
176
161
  - ".rubocop.yml"
162
+ - ".ruby-version"
177
163
  - CHANGELOG.md
178
164
  - CODE_OF_CONDUCT.md
179
165
  - LICENSE.txt
@@ -182,7 +168,55 @@ files:
182
168
  - lib/optimistic/json.rb
183
169
  - lib/optimistic/json/parser.rb
184
170
  - lib/optimistic/json/version.rb
185
- - sig/optimistic/json.rbs
171
+ - sorbet/config
172
+ - sorbet/rbi/annotations/.gitattributes
173
+ - sorbet/rbi/annotations/rainbow.rbi
174
+ - sorbet/rbi/gems/.gitattributes
175
+ - sorbet/rbi/gems/ast@2.4.2.rbi
176
+ - sorbet/rbi/gems/benchmark@0.5.0.rbi
177
+ - sorbet/rbi/gems/diff-lcs@1.5.0.rbi
178
+ - sorbet/rbi/gems/erubi@1.13.1.rbi
179
+ - sorbet/rbi/gems/gem-release@2.2.2.rbi
180
+ - sorbet/rbi/gems/io-console@0.6.0.rbi
181
+ - sorbet/rbi/gems/json@2.7.0.rbi
182
+ - sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi
183
+ - sorbet/rbi/gems/logger@1.6.0.rbi
184
+ - sorbet/rbi/gems/multi_json@1.15.0.rbi
185
+ - sorbet/rbi/gems/netrc@0.11.0.rbi
186
+ - sorbet/rbi/gems/parallel@1.28.0.rbi
187
+ - sorbet/rbi/gems/parser@3.2.2.4.rbi
188
+ - sorbet/rbi/gems/prism@1.9.0.rbi
189
+ - sorbet/rbi/gems/psych@5.1.1.1.rbi
190
+ - sorbet/rbi/gems/racc@1.7.3.rbi
191
+ - sorbet/rbi/gems/rainbow@3.1.1.rbi
192
+ - sorbet/rbi/gems/rake@13.1.0.rbi
193
+ - sorbet/rbi/gems/rbi@0.3.11.rbi
194
+ - sorbet/rbi/gems/rbs@4.0.2.rbi
195
+ - sorbet/rbi/gems/rdoc@6.6.0.rbi
196
+ - sorbet/rbi/gems/regexp_parser@2.8.2.rbi
197
+ - sorbet/rbi/gems/reline@0.4.1.rbi
198
+ - sorbet/rbi/gems/require-hooks@0.4.0.rbi
199
+ - sorbet/rbi/gems/rexml@3.2.6.rbi
200
+ - sorbet/rbi/gems/rspec-core@3.12.2.rbi
201
+ - sorbet/rbi/gems/rspec-expectations@3.12.3.rbi
202
+ - sorbet/rbi/gems/rspec-mocks@3.12.6.rbi
203
+ - sorbet/rbi/gems/rspec-support@3.12.1.rbi
204
+ - sorbet/rbi/gems/rspec@3.12.0.rbi
205
+ - sorbet/rbi/gems/rubocop-ast@1.30.0.rbi
206
+ - sorbet/rbi/gems/rubocop-capybara@2.19.0.rbi
207
+ - sorbet/rbi/gems/rubocop-factory_bot@2.24.0.rbi
208
+ - sorbet/rbi/gems/rubocop-rspec@2.25.0.rbi
209
+ - sorbet/rbi/gems/rubocop@1.58.0.rbi
210
+ - sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi
211
+ - sorbet/rbi/gems/rubydex@0.2.3.rbi
212
+ - sorbet/rbi/gems/spoom@1.7.14.rbi
213
+ - sorbet/rbi/gems/stringio@3.1.0.rbi
214
+ - sorbet/rbi/gems/tapioca@0.19.1.rbi
215
+ - sorbet/rbi/gems/thor@1.5.0.rbi
216
+ - sorbet/rbi/gems/tsort@0.2.0.rbi
217
+ - sorbet/rbi/gems/unicode-display_width@2.5.0.rbi
218
+ - sorbet/tapioca/config.yml
219
+ - sorbet/tapioca/require.rb
186
220
  homepage: https://github.com/ChanChar/optimistic-json
187
221
  licenses:
188
222
  - MIT
@@ -190,7 +224,6 @@ metadata:
190
224
  homepage_uri: https://github.com/ChanChar/optimistic-json
191
225
  source_code_uri: https://github.com/ChanChar/optimistic-json
192
226
  changelog_uri: https://github.com/ChanChar/optimistic-json/CHANGELOG.md
193
- post_install_message:
194
227
  rdoc_options: []
195
228
  require_paths:
196
229
  - lib
@@ -205,8 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
205
238
  - !ruby/object:Gem::Version
206
239
  version: '0'
207
240
  requirements: []
208
- rubygems_version: 3.4.20
209
- signing_key:
241
+ rubygems_version: 3.6.2
210
242
  specification_version: 4
211
243
  summary: Parse potentially incomplete JSON in a best effort manner.
212
244
  test_files: []
@@ -1,6 +0,0 @@
1
- module Optimistic
2
- module Json
3
- VERSION: String
4
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
5
- end
6
- end