rbs-relaxed 3.9.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 (484) hide show
  1. checksums.yaml +7 -0
  2. data/.github/dependabot.yml +22 -0
  3. data/.github/workflows/comments.yml +35 -0
  4. data/.github/workflows/dependabot.yml +30 -0
  5. data/.github/workflows/ruby.yml +82 -0
  6. data/.github/workflows/typecheck.yml +38 -0
  7. data/.github/workflows/windows.yml +43 -0
  8. data/.gitignore +23 -0
  9. data/.rubocop.yml +68 -0
  10. data/BSDL +22 -0
  11. data/CHANGELOG.md +1868 -0
  12. data/COPYING +56 -0
  13. data/README.md +203 -0
  14. data/Rakefile +417 -0
  15. data/Steepfile +44 -0
  16. data/config.yml +313 -0
  17. data/core/array.rbs +4062 -0
  18. data/core/basic_object.rbs +375 -0
  19. data/core/binding.rbs +150 -0
  20. data/core/builtin.rbs +277 -0
  21. data/core/class.rbs +220 -0
  22. data/core/comparable.rbs +171 -0
  23. data/core/complex.rbs +786 -0
  24. data/core/constants.rbs +96 -0
  25. data/core/data.rbs +415 -0
  26. data/core/dir.rbs +981 -0
  27. data/core/encoding.rbs +1371 -0
  28. data/core/enumerable.rbs +2405 -0
  29. data/core/enumerator/product.rbs +92 -0
  30. data/core/enumerator.rbs +630 -0
  31. data/core/env.rbs +6 -0
  32. data/core/errno.rbs +673 -0
  33. data/core/errors.rbs +760 -0
  34. data/core/exception.rbs +485 -0
  35. data/core/false_class.rbs +82 -0
  36. data/core/fiber.rbs +550 -0
  37. data/core/fiber_error.rbs +11 -0
  38. data/core/file.rbs +2936 -0
  39. data/core/file_test.rbs +331 -0
  40. data/core/float.rbs +1151 -0
  41. data/core/gc.rbs +644 -0
  42. data/core/global_variables.rbs +184 -0
  43. data/core/hash.rbs +1861 -0
  44. data/core/integer.rbs +1413 -0
  45. data/core/io/buffer.rbs +984 -0
  46. data/core/io/wait.rbs +70 -0
  47. data/core/io.rbs +3406 -0
  48. data/core/kernel.rbs +3096 -0
  49. data/core/marshal.rbs +207 -0
  50. data/core/match_data.rbs +635 -0
  51. data/core/math.rbs +729 -0
  52. data/core/method.rbs +386 -0
  53. data/core/module.rbs +1704 -0
  54. data/core/nil_class.rbs +209 -0
  55. data/core/numeric.rbs +818 -0
  56. data/core/object.rbs +110 -0
  57. data/core/object_space/weak_key_map.rbs +166 -0
  58. data/core/object_space.rbs +190 -0
  59. data/core/proc.rbs +868 -0
  60. data/core/process.rbs +2296 -0
  61. data/core/ractor.rbs +1068 -0
  62. data/core/random.rbs +237 -0
  63. data/core/range.rbs +1107 -0
  64. data/core/rational.rbs +531 -0
  65. data/core/rb_config.rbs +88 -0
  66. data/core/rbs/unnamed/argf.rbs +1229 -0
  67. data/core/rbs/unnamed/env_class.rbs +1209 -0
  68. data/core/rbs/unnamed/random.rbs +293 -0
  69. data/core/refinement.rbs +59 -0
  70. data/core/regexp.rbs +1930 -0
  71. data/core/ruby_vm.rbs +765 -0
  72. data/core/rubygems/basic_specification.rbs +6 -0
  73. data/core/rubygems/config_file.rbs +38 -0
  74. data/core/rubygems/dependency_installer.rbs +6 -0
  75. data/core/rubygems/errors.rbs +176 -0
  76. data/core/rubygems/installer.rbs +15 -0
  77. data/core/rubygems/path_support.rbs +6 -0
  78. data/core/rubygems/platform.rbs +7 -0
  79. data/core/rubygems/request_set.rbs +49 -0
  80. data/core/rubygems/requirement.rbs +148 -0
  81. data/core/rubygems/rubygems.rbs +1171 -0
  82. data/core/rubygems/source_list.rbs +15 -0
  83. data/core/rubygems/specification.rbs +23 -0
  84. data/core/rubygems/stream_ui.rbs +5 -0
  85. data/core/rubygems/uninstaller.rbs +10 -0
  86. data/core/rubygems/version.rbs +294 -0
  87. data/core/set.rbs +621 -0
  88. data/core/signal.rbs +100 -0
  89. data/core/string.rbs +3583 -0
  90. data/core/struct.rbs +667 -0
  91. data/core/symbol.rbs +475 -0
  92. data/core/thread.rbs +1765 -0
  93. data/core/thread_group.rbs +79 -0
  94. data/core/time.rbs +1762 -0
  95. data/core/trace_point.rbs +477 -0
  96. data/core/true_class.rbs +98 -0
  97. data/core/unbound_method.rbs +329 -0
  98. data/core/warning.rbs +87 -0
  99. data/docs/CONTRIBUTING.md +106 -0
  100. data/docs/architecture.md +110 -0
  101. data/docs/collection.md +192 -0
  102. data/docs/data_and_struct.md +86 -0
  103. data/docs/gem.md +57 -0
  104. data/docs/rbs_by_example.md +309 -0
  105. data/docs/repo.md +125 -0
  106. data/docs/sigs.md +167 -0
  107. data/docs/stdlib.md +147 -0
  108. data/docs/syntax.md +910 -0
  109. data/docs/tools.md +17 -0
  110. data/exe/rbs +7 -0
  111. data/ext/rbs_extension/extconf.rb +15 -0
  112. data/ext/rbs_extension/lexer.c +2728 -0
  113. data/ext/rbs_extension/lexer.h +179 -0
  114. data/ext/rbs_extension/lexer.re +147 -0
  115. data/ext/rbs_extension/lexstate.c +175 -0
  116. data/ext/rbs_extension/location.c +325 -0
  117. data/ext/rbs_extension/location.h +85 -0
  118. data/ext/rbs_extension/main.c +33 -0
  119. data/ext/rbs_extension/parser.c +2973 -0
  120. data/ext/rbs_extension/parser.h +18 -0
  121. data/ext/rbs_extension/parserstate.c +397 -0
  122. data/ext/rbs_extension/parserstate.h +163 -0
  123. data/ext/rbs_extension/rbs_extension.h +31 -0
  124. data/ext/rbs_extension/unescape.c +32 -0
  125. data/goodcheck.yml +91 -0
  126. data/include/rbs/constants.h +82 -0
  127. data/include/rbs/ruby_objs.h +72 -0
  128. data/include/rbs/util/rbs_constant_pool.h +219 -0
  129. data/include/rbs.h +7 -0
  130. data/lib/rbs/ancestor_graph.rb +92 -0
  131. data/lib/rbs/annotate/annotations.rb +199 -0
  132. data/lib/rbs/annotate/formatter.rb +92 -0
  133. data/lib/rbs/annotate/rdoc_annotator.rb +400 -0
  134. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  135. data/lib/rbs/annotate.rb +8 -0
  136. data/lib/rbs/ast/annotation.rb +29 -0
  137. data/lib/rbs/ast/comment.rb +29 -0
  138. data/lib/rbs/ast/declarations.rb +467 -0
  139. data/lib/rbs/ast/directives.rb +49 -0
  140. data/lib/rbs/ast/members.rb +451 -0
  141. data/lib/rbs/ast/type_param.rb +225 -0
  142. data/lib/rbs/ast/visitor.rb +137 -0
  143. data/lib/rbs/buffer.rb +67 -0
  144. data/lib/rbs/builtin_names.rb +58 -0
  145. data/lib/rbs/cli/colored_io.rb +48 -0
  146. data/lib/rbs/cli/diff.rb +83 -0
  147. data/lib/rbs/cli/validate.rb +357 -0
  148. data/lib/rbs/cli.rb +1223 -0
  149. data/lib/rbs/collection/cleaner.rb +38 -0
  150. data/lib/rbs/collection/config/lockfile.rb +92 -0
  151. data/lib/rbs/collection/config/lockfile_generator.rb +218 -0
  152. data/lib/rbs/collection/config.rb +81 -0
  153. data/lib/rbs/collection/installer.rb +32 -0
  154. data/lib/rbs/collection/sources/base.rb +14 -0
  155. data/lib/rbs/collection/sources/git.rb +258 -0
  156. data/lib/rbs/collection/sources/local.rb +81 -0
  157. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  158. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  159. data/lib/rbs/collection/sources.rb +38 -0
  160. data/lib/rbs/collection.rb +16 -0
  161. data/lib/rbs/constant.rb +28 -0
  162. data/lib/rbs/definition.rb +401 -0
  163. data/lib/rbs/definition_builder/ancestor_builder.rb +620 -0
  164. data/lib/rbs/definition_builder/method_builder.rb +254 -0
  165. data/lib/rbs/definition_builder.rb +845 -0
  166. data/lib/rbs/diff.rb +125 -0
  167. data/lib/rbs/environment/use_map.rb +77 -0
  168. data/lib/rbs/environment.rb +829 -0
  169. data/lib/rbs/environment_loader.rb +173 -0
  170. data/lib/rbs/environment_walker.rb +155 -0
  171. data/lib/rbs/errors.rb +645 -0
  172. data/lib/rbs/factory.rb +18 -0
  173. data/lib/rbs/file_finder.rb +28 -0
  174. data/lib/rbs/location_aux.rb +138 -0
  175. data/lib/rbs/locator.rb +243 -0
  176. data/lib/rbs/method_type.rb +143 -0
  177. data/lib/rbs/namespace.rb +125 -0
  178. data/lib/rbs/parser/lex_result.rb +15 -0
  179. data/lib/rbs/parser/token.rb +23 -0
  180. data/lib/rbs/parser_aux.rb +114 -0
  181. data/lib/rbs/prototype/helpers.rb +140 -0
  182. data/lib/rbs/prototype/node_usage.rb +99 -0
  183. data/lib/rbs/prototype/rb.rb +840 -0
  184. data/lib/rbs/prototype/rbi.rb +641 -0
  185. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  186. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  187. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  188. data/lib/rbs/prototype/runtime.rb +667 -0
  189. data/lib/rbs/repository.rb +127 -0
  190. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  191. data/lib/rbs/resolver/type_name_resolver.rb +91 -0
  192. data/lib/rbs/sorter.rb +198 -0
  193. data/lib/rbs/substitution.rb +83 -0
  194. data/lib/rbs/subtractor.rb +201 -0
  195. data/lib/rbs/test/errors.rb +80 -0
  196. data/lib/rbs/test/guaranteed.rb +30 -0
  197. data/lib/rbs/test/hook.rb +212 -0
  198. data/lib/rbs/test/observer.rb +19 -0
  199. data/lib/rbs/test/setup.rb +84 -0
  200. data/lib/rbs/test/setup_helper.rb +50 -0
  201. data/lib/rbs/test/tester.rb +167 -0
  202. data/lib/rbs/test/type_check.rb +435 -0
  203. data/lib/rbs/test.rb +112 -0
  204. data/lib/rbs/type_alias_dependency.rb +100 -0
  205. data/lib/rbs/type_alias_regularity.rb +126 -0
  206. data/lib/rbs/type_name.rb +109 -0
  207. data/lib/rbs/types.rb +1596 -0
  208. data/lib/rbs/unit_test/convertibles.rb +176 -0
  209. data/lib/rbs/unit_test/spy.rb +138 -0
  210. data/lib/rbs/unit_test/type_assertions.rb +347 -0
  211. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  212. data/lib/rbs/unit_test.rb +6 -0
  213. data/lib/rbs/validator.rb +186 -0
  214. data/lib/rbs/variance_calculator.rb +189 -0
  215. data/lib/rbs/vendorer.rb +71 -0
  216. data/lib/rbs/version.rb +5 -0
  217. data/lib/rbs/writer.rb +424 -0
  218. data/lib/rbs.rb +94 -0
  219. data/lib/rdoc/discover.rb +20 -0
  220. data/lib/rdoc_plugin/parser.rb +163 -0
  221. data/rbs-relaxed.gemspec +48 -0
  222. data/schema/annotation.json +14 -0
  223. data/schema/comment.json +26 -0
  224. data/schema/decls.json +326 -0
  225. data/schema/function.json +87 -0
  226. data/schema/location.json +56 -0
  227. data/schema/members.json +266 -0
  228. data/schema/methodType.json +50 -0
  229. data/schema/typeParam.json +36 -0
  230. data/schema/types.json +317 -0
  231. data/sig/ancestor_builder.rbs +163 -0
  232. data/sig/ancestor_graph.rbs +60 -0
  233. data/sig/annotate/annotations.rbs +102 -0
  234. data/sig/annotate/formatter.rbs +24 -0
  235. data/sig/annotate/rdoc_annotater.rbs +82 -0
  236. data/sig/annotate/rdoc_source.rbs +30 -0
  237. data/sig/annotation.rbs +27 -0
  238. data/sig/buffer.rbs +32 -0
  239. data/sig/builtin_names.rbs +44 -0
  240. data/sig/cli/colored_io.rbs +15 -0
  241. data/sig/cli/diff.rbs +21 -0
  242. data/sig/cli/validate.rbs +43 -0
  243. data/sig/cli.rbs +87 -0
  244. data/sig/collection/cleaner.rbs +13 -0
  245. data/sig/collection/config/lockfile.rbs +74 -0
  246. data/sig/collection/config/lockfile_generator.rbs +66 -0
  247. data/sig/collection/config.rbs +46 -0
  248. data/sig/collection/installer.rbs +17 -0
  249. data/sig/collection/sources.rbs +214 -0
  250. data/sig/collection.rbs +4 -0
  251. data/sig/comment.rbs +26 -0
  252. data/sig/constant.rbs +21 -0
  253. data/sig/declarations.rbs +267 -0
  254. data/sig/definition.rbs +173 -0
  255. data/sig/definition_builder.rbs +165 -0
  256. data/sig/diff.rbs +28 -0
  257. data/sig/directives.rbs +77 -0
  258. data/sig/environment.rbs +279 -0
  259. data/sig/environment_loader.rbs +111 -0
  260. data/sig/environment_walker.rbs +65 -0
  261. data/sig/errors.rbs +405 -0
  262. data/sig/factory.rbs +5 -0
  263. data/sig/file_finder.rbs +28 -0
  264. data/sig/location.rbs +110 -0
  265. data/sig/locator.rbs +58 -0
  266. data/sig/manifest.yaml +7 -0
  267. data/sig/members.rbs +258 -0
  268. data/sig/method_builder.rbs +84 -0
  269. data/sig/method_types.rbs +58 -0
  270. data/sig/namespace.rbs +146 -0
  271. data/sig/parser.rbs +100 -0
  272. data/sig/prototype/helpers.rbs +27 -0
  273. data/sig/prototype/node_usage.rbs +20 -0
  274. data/sig/prototype/rb.rbs +96 -0
  275. data/sig/prototype/rbi.rbs +75 -0
  276. data/sig/prototype/runtime.rbs +182 -0
  277. data/sig/rbs.rbs +21 -0
  278. data/sig/rdoc/rbs.rbs +67 -0
  279. data/sig/repository.rbs +85 -0
  280. data/sig/resolver/constant_resolver.rbs +92 -0
  281. data/sig/resolver/context.rbs +34 -0
  282. data/sig/resolver/type_name_resolver.rbs +35 -0
  283. data/sig/shims/bundler.rbs +38 -0
  284. data/sig/shims/enumerable.rbs +5 -0
  285. data/sig/shims/rubygems.rbs +19 -0
  286. data/sig/sorter.rbs +41 -0
  287. data/sig/substitution.rbs +48 -0
  288. data/sig/subtractor.rbs +37 -0
  289. data/sig/test/errors.rbs +52 -0
  290. data/sig/test/guranteed.rbs +9 -0
  291. data/sig/test/type_check.rbs +19 -0
  292. data/sig/test.rbs +82 -0
  293. data/sig/type_alias_dependency.rbs +53 -0
  294. data/sig/type_alias_regularity.rbs +98 -0
  295. data/sig/type_param.rbs +110 -0
  296. data/sig/typename.rbs +79 -0
  297. data/sig/types.rbs +579 -0
  298. data/sig/unit_test/convertibles.rbs +154 -0
  299. data/sig/unit_test/spy.rbs +30 -0
  300. data/sig/unit_test/type_assertions.rbs +196 -0
  301. data/sig/unit_test/with_aliases.rbs +136 -0
  302. data/sig/use_map.rbs +35 -0
  303. data/sig/util.rbs +9 -0
  304. data/sig/validator.rbs +63 -0
  305. data/sig/variance_calculator.rbs +87 -0
  306. data/sig/vendorer.rbs +51 -0
  307. data/sig/version.rbs +3 -0
  308. data/sig/visitor.rbs +47 -0
  309. data/sig/writer.rbs +127 -0
  310. data/src/constants.c +153 -0
  311. data/src/ruby_objs.c +795 -0
  312. data/src/util/rbs_constant_pool.c +342 -0
  313. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  314. data/stdlib/abbrev/0/array.rbs +26 -0
  315. data/stdlib/base64/0/base64.rbs +355 -0
  316. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  317. data/stdlib/bigdecimal/0/big_decimal.rbs +1629 -0
  318. data/stdlib/bigdecimal-math/0/big_math.rbs +119 -0
  319. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  320. data/stdlib/cgi/0/core.rbs +1285 -0
  321. data/stdlib/cgi/0/manifest.yaml +3 -0
  322. data/stdlib/coverage/0/coverage.rbs +263 -0
  323. data/stdlib/csv/0/csv.rbs +3776 -0
  324. data/stdlib/csv/0/manifest.yaml +3 -0
  325. data/stdlib/date/0/date.rbs +1585 -0
  326. data/stdlib/date/0/date_time.rbs +616 -0
  327. data/stdlib/date/0/time.rbs +26 -0
  328. data/stdlib/dbm/0/dbm.rbs +421 -0
  329. data/stdlib/delegate/0/delegator.rbs +184 -0
  330. data/stdlib/delegate/0/kernel.rbs +47 -0
  331. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  332. data/stdlib/did_you_mean/0/did_you_mean.rbs +343 -0
  333. data/stdlib/digest/0/digest.rbs +577 -0
  334. data/stdlib/erb/0/erb.rbs +532 -0
  335. data/stdlib/etc/0/etc.rbs +865 -0
  336. data/stdlib/fileutils/0/fileutils.rbs +1734 -0
  337. data/stdlib/find/0/find.rbs +49 -0
  338. data/stdlib/forwardable/0/forwardable.rbs +268 -0
  339. data/stdlib/io-console/0/io-console.rbs +414 -0
  340. data/stdlib/ipaddr/0/ipaddr.rbs +428 -0
  341. data/stdlib/json/0/json.rbs +1916 -0
  342. data/stdlib/kconv/0/kconv.rbs +166 -0
  343. data/stdlib/logger/0/formatter.rbs +45 -0
  344. data/stdlib/logger/0/log_device.rbs +100 -0
  345. data/stdlib/logger/0/logger.rbs +796 -0
  346. data/stdlib/logger/0/manifest.yaml +2 -0
  347. data/stdlib/logger/0/period.rbs +17 -0
  348. data/stdlib/logger/0/severity.rbs +34 -0
  349. data/stdlib/minitest/0/kernel.rbs +42 -0
  350. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  351. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  352. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  353. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  354. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  355. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  356. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  357. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  358. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  359. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  360. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  361. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  362. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  363. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  364. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  365. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  366. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  367. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  368. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  369. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  370. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  371. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  372. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  373. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  374. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  375. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  376. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  377. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  378. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  379. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  380. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  381. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  382. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  383. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  384. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  385. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  386. data/stdlib/minitest/0/minitest.rbs +115 -0
  387. data/stdlib/monitor/0/monitor.rbs +363 -0
  388. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  389. data/stdlib/net-http/0/manifest.yaml +3 -0
  390. data/stdlib/net-http/0/net-http.rbs +5552 -0
  391. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  392. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  393. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  394. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  395. data/stdlib/nkf/0/nkf.rbs +402 -0
  396. data/stdlib/objspace/0/objspace.rbs +487 -0
  397. data/stdlib/observable/0/observable.rbs +217 -0
  398. data/stdlib/open-uri/0/manifest.yaml +4 -0
  399. data/stdlib/open-uri/0/open-uri.rbs +393 -0
  400. data/stdlib/open3/0/open3.rbs +147 -0
  401. data/stdlib/openssl/0/manifest.yaml +3 -0
  402. data/stdlib/openssl/0/openssl.rbs +12113 -0
  403. data/stdlib/optparse/0/optparse.rbs +1725 -0
  404. data/stdlib/pathname/0/pathname.rbs +1406 -0
  405. data/stdlib/pp/0/manifest.yaml +2 -0
  406. data/stdlib/pp/0/pp.rbs +300 -0
  407. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  408. data/stdlib/pstore/0/pstore.rbs +603 -0
  409. data/stdlib/psych/0/core_ext.rbs +12 -0
  410. data/stdlib/psych/0/dbm.rbs +237 -0
  411. data/stdlib/psych/0/manifest.yaml +3 -0
  412. data/stdlib/psych/0/psych.rbs +402 -0
  413. data/stdlib/psych/0/store.rbs +59 -0
  414. data/stdlib/pty/0/pty.rbs +237 -0
  415. data/stdlib/rdoc/0/code_object.rbs +51 -0
  416. data/stdlib/rdoc/0/comment.rbs +59 -0
  417. data/stdlib/rdoc/0/context.rbs +153 -0
  418. data/stdlib/rdoc/0/markup.rbs +117 -0
  419. data/stdlib/rdoc/0/parser.rbs +56 -0
  420. data/stdlib/rdoc/0/rdoc.rbs +391 -0
  421. data/stdlib/rdoc/0/ri.rbs +17 -0
  422. data/stdlib/rdoc/0/store.rbs +48 -0
  423. data/stdlib/rdoc/0/top_level.rbs +97 -0
  424. data/stdlib/resolv/0/manifest.yaml +3 -0
  425. data/stdlib/resolv/0/resolv.rbs +1830 -0
  426. data/stdlib/ripper/0/ripper.rbs +1648 -0
  427. data/stdlib/securerandom/0/securerandom.rbs +62 -0
  428. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  429. data/stdlib/singleton/0/singleton.rbs +131 -0
  430. data/stdlib/socket/0/addrinfo.rbs +666 -0
  431. data/stdlib/socket/0/basic_socket.rbs +590 -0
  432. data/stdlib/socket/0/constants.rbs +2295 -0
  433. data/stdlib/socket/0/ip_socket.rbs +92 -0
  434. data/stdlib/socket/0/socket.rbs +4157 -0
  435. data/stdlib/socket/0/socket_error.rbs +5 -0
  436. data/stdlib/socket/0/tcp_server.rbs +192 -0
  437. data/stdlib/socket/0/tcp_socket.rbs +79 -0
  438. data/stdlib/socket/0/udp_socket.rbs +133 -0
  439. data/stdlib/socket/0/unix_server.rbs +169 -0
  440. data/stdlib/socket/0/unix_socket.rbs +172 -0
  441. data/stdlib/stringio/0/stringio.rbs +567 -0
  442. data/stdlib/strscan/0/string_scanner.rbs +1627 -0
  443. data/stdlib/tempfile/0/tempfile.rbs +479 -0
  444. data/stdlib/time/0/time.rbs +432 -0
  445. data/stdlib/timeout/0/timeout.rbs +81 -0
  446. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  447. data/stdlib/tsort/0/cyclic.rbs +5 -0
  448. data/stdlib/tsort/0/interfaces.rbs +20 -0
  449. data/stdlib/tsort/0/tsort.rbs +409 -0
  450. data/stdlib/uri/0/common.rbs +582 -0
  451. data/stdlib/uri/0/file.rbs +118 -0
  452. data/stdlib/uri/0/ftp.rbs +13 -0
  453. data/stdlib/uri/0/generic.rbs +1108 -0
  454. data/stdlib/uri/0/http.rbs +104 -0
  455. data/stdlib/uri/0/https.rbs +14 -0
  456. data/stdlib/uri/0/ldap.rbs +230 -0
  457. data/stdlib/uri/0/ldaps.rbs +14 -0
  458. data/stdlib/uri/0/mailto.rbs +92 -0
  459. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  460. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  461. data/stdlib/uri/0/ws.rbs +13 -0
  462. data/stdlib/uri/0/wss.rbs +9 -0
  463. data/stdlib/yaml/0/manifest.yaml +2 -0
  464. data/stdlib/yaml/0/yaml.rbs +1 -0
  465. data/stdlib/zlib/0/buf_error.rbs +10 -0
  466. data/stdlib/zlib/0/data_error.rbs +10 -0
  467. data/stdlib/zlib/0/deflate.rbs +210 -0
  468. data/stdlib/zlib/0/error.rbs +20 -0
  469. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  470. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  471. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  472. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  473. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  474. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  475. data/stdlib/zlib/0/gzip_writer.rbs +166 -0
  476. data/stdlib/zlib/0/inflate.rbs +180 -0
  477. data/stdlib/zlib/0/mem_error.rbs +10 -0
  478. data/stdlib/zlib/0/need_dict.rbs +13 -0
  479. data/stdlib/zlib/0/stream_end.rbs +11 -0
  480. data/stdlib/zlib/0/stream_error.rbs +11 -0
  481. data/stdlib/zlib/0/version_error.rbs +11 -0
  482. data/stdlib/zlib/0/zlib.rbs +449 -0
  483. data/stdlib/zlib/0/zstream.rbs +200 -0
  484. metadata +532 -0
@@ -0,0 +1,2 @@
1
+ dependencies:
2
+ - name: prettyprint
@@ -0,0 +1,300 @@
1
+ # <!-- rdoc-file=lib/pp.rb -->
2
+ # A pretty-printer for Ruby objects.
3
+ #
4
+ # ## What PP Does
5
+ #
6
+ # Standard output by #p returns this:
7
+ # #<PP:0x81fedf0 @genspace=#<Proc:0x81feda0>, @group_queue=#<PrettyPrint::GroupQueue:0x81fed3c @queue=[[#<PrettyPrint::Group:0x81fed78 @breakables=[], @depth=0, @break=false>], []]>, @buffer=[], @newline="\n", @group_stack=[#<PrettyPrint::Group:0x81fed78 @breakables=[], @depth=0, @break=false>], @buffer_width=0, @indent=0, @maxwidth=79, @output_width=2, @output=#<IO:0x8114ee4>>
8
+ #
9
+ # Pretty-printed output returns this:
10
+ # #<PP:0x81fedf0
11
+ # @buffer=[],
12
+ # @buffer_width=0,
13
+ # @genspace=#<Proc:0x81feda0>,
14
+ # @group_queue=
15
+ # #<PrettyPrint::GroupQueue:0x81fed3c
16
+ # @queue=
17
+ # [[#<PrettyPrint::Group:0x81fed78 @break=false, @breakables=[], @depth=0>],
18
+ # []]>,
19
+ # @group_stack=
20
+ # [#<PrettyPrint::Group:0x81fed78 @break=false, @breakables=[], @depth=0>],
21
+ # @indent=0,
22
+ # @maxwidth=79,
23
+ # @newline="\n",
24
+ # @output=#<IO:0x8114ee4>,
25
+ # @output_width=2>
26
+ #
27
+ # ## Usage
28
+ #
29
+ # pp(obj) #=> obj
30
+ # pp obj #=> obj
31
+ # pp(obj1, obj2, ...) #=> [obj1, obj2, ...]
32
+ # pp() #=> nil
33
+ #
34
+ # Output `obj(s)` to `$>` in pretty printed format.
35
+ #
36
+ # It returns `obj(s)`.
37
+ #
38
+ # ## Output Customization
39
+ #
40
+ # To define a customized pretty printing function for your classes, redefine
41
+ # method `#pretty_print(pp)` in the class. Note that `require 'pp'` is needed
42
+ # before redefining `#pretty_print(pp)`.
43
+ #
44
+ # `#pretty_print` takes the `pp` argument, which is an instance of the PP class.
45
+ # The method uses #text, #breakable, #nest, #group and #pp to print the object.
46
+ #
47
+ # ## Pretty-Print JSON
48
+ #
49
+ # To pretty-print JSON refer to JSON#pretty_generate.
50
+ #
51
+ # ## Author
52
+ # Tanaka Akira <akr@fsij.org>
53
+ #
54
+ class PP < PrettyPrint
55
+ interface _PrettyPrint
56
+ def pretty_print: (untyped q) -> untyped
57
+
58
+ def pretty_print_cycle: (untyped q) -> untyped
59
+
60
+ def is_a?: (Module) -> bool
61
+ end
62
+
63
+ interface _LeftShift
64
+ def <<: (untyped obj) -> self
65
+ end
66
+
67
+ interface _PPMethodsRequired
68
+ def text: (String obj, ?Integer width) -> void
69
+
70
+ def breakable: (?String sep, ?Integer width) -> void
71
+
72
+ def group: (?Integer indent, ?String open_obj, ?String close_obj, ?Integer open_width, ?Integer close_width) { () -> untyped } -> void
73
+ end
74
+
75
+ # <!-- rdoc-file=lib/pp.rb -->
76
+ # Module that defines helper methods for pretty_print.
77
+ #
78
+ module PPMethods : _PPMethodsRequired
79
+ # <!--
80
+ # rdoc-file=lib/pp.rb
81
+ # - guard_inspect_key() { || ... }
82
+ # -->
83
+ # Yields to a block and preserves the previous set of objects being printed.
84
+ #
85
+ def guard_inspect_key: () { () -> untyped } -> void
86
+
87
+ # <!--
88
+ # rdoc-file=lib/pp.rb
89
+ # - check_inspect_key(id)
90
+ # -->
91
+ # Check whether the object_id `id` is in the current buffer of objects to be
92
+ # pretty printed. Used to break cycles in chains of objects to be pretty
93
+ # printed.
94
+ #
95
+ def check_inspect_key: (_PrettyPrint id) -> bool
96
+
97
+ # <!--
98
+ # rdoc-file=lib/pp.rb
99
+ # - push_inspect_key(id)
100
+ # -->
101
+ # Adds the object_id `id` to the set of objects being pretty printed, so as to
102
+ # not repeat objects.
103
+ #
104
+ def push_inspect_key: (_PrettyPrint id) -> void
105
+
106
+ # <!--
107
+ # rdoc-file=lib/pp.rb
108
+ # - pop_inspect_key(id)
109
+ # -->
110
+ # Removes an object from the set of objects being pretty printed.
111
+ #
112
+ def pop_inspect_key: (_PrettyPrint id) -> void
113
+
114
+ # <!--
115
+ # rdoc-file=lib/pp.rb
116
+ # - pp(obj)
117
+ # -->
118
+ # Adds `obj` to the pretty printing buffer using Object#pretty_print or
119
+ # Object#pretty_print_cycle.
120
+ #
121
+ # Object#pretty_print_cycle is used when `obj` is already printed, a.k.a the
122
+ # object reference chain has a cycle.
123
+ #
124
+ def pp: (_PrettyPrint obj) -> untyped
125
+
126
+ # <!--
127
+ # rdoc-file=lib/pp.rb
128
+ # - object_group(obj) { || ... }
129
+ # -->
130
+ # A convenience method which is same as follows:
131
+ #
132
+ # group(1, '#<' + obj.class.name, '>') { ... }
133
+ #
134
+ def object_group: (untyped obj) { () -> untyped } -> Integer
135
+
136
+ # <!--
137
+ # rdoc-file=lib/pp.rb
138
+ # - object_address_group(obj, &block)
139
+ # -->
140
+ # A convenience method, like object_group, but also reformats the Object's
141
+ # object_id.
142
+ #
143
+ def object_address_group: (untyped obj) { () -> untyped } -> Integer
144
+
145
+ # <!--
146
+ # rdoc-file=lib/pp.rb
147
+ # - comma_breakable()
148
+ # -->
149
+ # A convenience method which is same as follows:
150
+ #
151
+ # text ','
152
+ # breakable
153
+ #
154
+ def comma_breakable: () -> void
155
+
156
+ # <!--
157
+ # rdoc-file=lib/pp.rb
158
+ # - seplist(list, sep=nil, iter_method=:each) { |element| ... }
159
+ # -->
160
+ # Adds a separated list. The list is separated by comma with breakable space, by
161
+ # default.
162
+ #
163
+ # #seplist iterates the `list` using `iter_method`. It yields each object to the
164
+ # block given for #seplist. The procedure `separator_proc` is called between
165
+ # each yields.
166
+ #
167
+ # If the iteration is zero times, `separator_proc` is not called at all.
168
+ #
169
+ # If `separator_proc` is nil or not given, +lambda { comma_breakable }+ is used.
170
+ # If `iter_method` is not given, :each is used.
171
+ #
172
+ # For example, following 3 code fragments has similar effect.
173
+ #
174
+ # q.seplist([1,2,3]) {|v| xxx v }
175
+ #
176
+ # q.seplist([1,2,3], lambda { q.comma_breakable }, :each) {|v| xxx v }
177
+ #
178
+ # xxx 1
179
+ # q.comma_breakable
180
+ # xxx 2
181
+ # q.comma_breakable
182
+ # xxx 3
183
+ #
184
+ def seplist: (untyped list, ?(^() -> void)? sep, ?interned iter_method) { (*untyped, **untyped) -> void } -> void
185
+
186
+ # <!--
187
+ # rdoc-file=lib/pp.rb
188
+ # - pp_object(obj)
189
+ # -->
190
+ # A present standard failsafe for pretty printing any given Object
191
+ #
192
+ def pp_object: (untyped obj) -> untyped
193
+
194
+ # <!--
195
+ # rdoc-file=lib/pp.rb
196
+ # - pp_hash(obj)
197
+ # -->
198
+ # A pretty print for a Hash
199
+ #
200
+ def pp_hash: (untyped obj) -> untyped
201
+ end
202
+ include PPMethods
203
+
204
+ class SingleLine < ::PrettyPrint::SingleLine
205
+ include PPMethods
206
+ end
207
+
208
+ module ObjectMixin : BasicObject
209
+ def pretty_print: (PP q) -> untyped
210
+
211
+ def pretty_print_cycle: (PP q) -> untyped
212
+
213
+ def pretty_print_instance_variables: () -> Array[Symbol]
214
+
215
+ def pretty_print_inspect: () -> untyped
216
+ end
217
+
218
+ # <!--
219
+ # rdoc-file=lib/pp.rb
220
+ # - width_for(out)
221
+ # -->
222
+ # Returns the usable width for `out`. As the width of `out`:
223
+ # 1. If `out` is assigned to a tty device, its width is used.
224
+ # 2. Otherwise, or it could not get the value, the `COLUMN` environment
225
+ # variable is assumed to be set to the width.
226
+ # 3. If `COLUMN` is not set to a non-zero number, 80 is assumed.
227
+ #
228
+ # And finally, returns the above width value - 1.
229
+ # * This -1 is for Windows command prompt, which moves the cursor to the next
230
+ # line if it reaches the last column.
231
+ #
232
+ def self.width_for: (untyped out) -> Integer
233
+
234
+ # <!--
235
+ # rdoc-file=lib/pp.rb
236
+ # - pp(obj, out=$>, width=width_for(out))
237
+ # -->
238
+ # Outputs `obj` to `out` in pretty printed format of `width` columns in width.
239
+ #
240
+ # If `out` is omitted, `$>` is assumed. If `width` is omitted, the width of
241
+ # `out` is assumed (see width_for).
242
+ #
243
+ # PP.pp returns `out`.
244
+ #
245
+ def self.pp: (_PrettyPrint obj, ?_LeftShift out, ?Integer width) -> untyped
246
+
247
+ # <!--
248
+ # rdoc-file=lib/pp.rb
249
+ # - singleline_pp(obj, out=$>)
250
+ # -->
251
+ # Outputs `obj` to `out` like PP.pp but with no indent and newline.
252
+ #
253
+ # PP.singleline_pp returns `out`.
254
+ #
255
+ def self.singleline_pp: (_PrettyPrint obj, ?_LeftShift out) -> untyped
256
+ def self.mcall: (untyped obj, Module mod, interned meth, *untyped args) ?{ (*untyped, **untyped) -> untyped } -> untyped
257
+
258
+ # <!--
259
+ # rdoc-file=lib/pp.rb
260
+ # - sharing_detection()
261
+ # -->
262
+ # Returns the sharing detection flag as a boolean value. It is false (nil) by
263
+ # default.
264
+ # ----
265
+ # <!--
266
+ # rdoc-file=lib/pp.rb
267
+ # - sharing_detection=(b)
268
+ # -->
269
+ # Sets the sharing detection flag to b.
270
+ #
271
+ attr_accessor self.sharing_detection: bool?
272
+ end
273
+
274
+ %a{annotate:rdoc:skip}
275
+ class RubyVM::AbstractSyntaxTree::Node
276
+ # <!--
277
+ # rdoc-file=lib/pp.rb
278
+ # - pretty_print_children(q, names = [])
279
+ # -->
280
+ #
281
+ def pretty_print_children: (PP q, ?Array[untyped] names) -> void
282
+ end
283
+
284
+ %a{annotate:rdoc:skip}
285
+ class Object
286
+ include PP::ObjectMixin
287
+ end
288
+
289
+ %a{annotate:rdoc:skip}
290
+ module Kernel
291
+ # <!--
292
+ # rdoc-file=lib/pp.rb
293
+ # - pretty_inspect()
294
+ # -->
295
+ # Returns a pretty printed object as a string.
296
+ #
297
+ # See the PP module for more information.
298
+ #
299
+ def pretty_inspect: () -> String
300
+ end
@@ -0,0 +1,383 @@
1
+ # <!-- rdoc-file=lib/prettyprint.rb -->
2
+ # This class implements a pretty printing algorithm. It finds line breaks and
3
+ # nice indentations for grouped structure.
4
+ #
5
+ # By default, the class assumes that primitive elements are strings and each
6
+ # byte in the strings have single column in width. But it can be used for other
7
+ # situations by giving suitable arguments for some methods:
8
+ # * newline object and space generation block for PrettyPrint.new
9
+ # * optional width argument for PrettyPrint#text
10
+ # * PrettyPrint#breakable
11
+ #
12
+ # There are several candidate uses:
13
+ # * text formatting using proportional fonts
14
+ # * multibyte characters which has columns different to number of bytes
15
+ # * non-string formatting
16
+ #
17
+ # ## Bugs
18
+ # * Box based formatting?
19
+ # * Other (better) model/algorithm?
20
+ #
21
+ # Report any bugs at http://bugs.ruby-lang.org
22
+ #
23
+ # ## References
24
+ # Christian Lindig, Strictly Pretty, March 2000,
25
+ # https://lindig.github.io/papers/strictly-pretty-2000.pdf
26
+ #
27
+ # Philip Wadler, A prettier printer, March 1998,
28
+ # https://homepages.inf.ed.ac.uk/wadler/topics/language-design.html#prettier
29
+ #
30
+ # ## Author
31
+ # Tanaka Akira <akr@fsij.org>
32
+ #
33
+ class PrettyPrint
34
+ interface _Output
35
+ def <<: (String) -> void
36
+ end
37
+
38
+ # <!--
39
+ # rdoc-file=lib/prettyprint.rb
40
+ # - format(output=''.dup, maxwidth=79, newline="\n", genspace=lambda {|n| ' ' * n}) { |q| ... }
41
+ # -->
42
+ # This is a convenience method which is same as follows:
43
+ #
44
+ # begin
45
+ # q = PrettyPrint.new(output, maxwidth, newline, &genspace)
46
+ # ...
47
+ # q.flush
48
+ # output
49
+ # end
50
+ #
51
+ def self.format: (?untyped output, ?Integer maxwidth, ?String newline, ?^(Integer) -> Integer genspace) { (PrettyPrint) -> untyped } -> _Output
52
+
53
+ # <!--
54
+ # rdoc-file=lib/prettyprint.rb
55
+ # - singleline_format(output=''.dup, maxwidth=nil, newline=nil, genspace=nil) { |q| ... }
56
+ # -->
57
+ # This is similar to PrettyPrint::format but the result has no breaks.
58
+ #
59
+ # `maxwidth`, `newline` and `genspace` are ignored.
60
+ #
61
+ # The invocation of `breakable` in the block doesn't break a line and is treated
62
+ # as just an invocation of `text`.
63
+ #
64
+ def self.singleline_format: (?untyped output, ?Integer? maxwidth, ?String? newline, ?^(Integer) -> Integer? genspace) { (PrettyPrint::SingleLine) -> untyped } -> _Output
65
+
66
+ # <!--
67
+ # rdoc-file=lib/prettyprint.rb
68
+ # - new(output=''.dup, maxwidth=79, newline="\n", &genspace)
69
+ # -->
70
+ # Creates a buffer for pretty printing.
71
+ #
72
+ # `output` is an output target. If it is not specified, '' is assumed. It should
73
+ # have a << method which accepts the first argument `obj` of PrettyPrint#text,
74
+ # the first argument `sep` of PrettyPrint#breakable, the first argument
75
+ # `newline` of PrettyPrint.new, and the result of a given block for
76
+ # PrettyPrint.new.
77
+ #
78
+ # `maxwidth` specifies maximum line length. If it is not specified, 79 is
79
+ # assumed. However actual outputs may overflow `maxwidth` if long non-breakable
80
+ # texts are provided.
81
+ #
82
+ # `newline` is used for line breaks. "n" is used if it is not specified.
83
+ #
84
+ # The block is used to generate spaces. {|width| ' ' * width} is used if it is
85
+ # not given.
86
+ #
87
+ def initialize: (?untyped output, ?Integer maxwidth, ?String newline, ?^(Integer) -> Integer genspace) -> void
88
+
89
+ # <!-- rdoc-file=lib/prettyprint.rb -->
90
+ # The output object.
91
+ #
92
+ # This defaults to '', and should accept the << method
93
+ #
94
+ attr_reader output: _Output
95
+
96
+ # <!-- rdoc-file=lib/prettyprint.rb -->
97
+ # The maximum width of a line, before it is separated in to a newline
98
+ #
99
+ # This defaults to 79, and should be an Integer
100
+ #
101
+ attr_reader maxwidth: Integer
102
+
103
+ # <!-- rdoc-file=lib/prettyprint.rb -->
104
+ # The value that is appended to `output` to add a new line.
105
+ #
106
+ # This defaults to "n", and should be String
107
+ #
108
+ attr_reader newline: String
109
+
110
+ # <!-- rdoc-file=lib/prettyprint.rb -->
111
+ # A lambda or Proc, that takes one argument, of an Integer, and returns the
112
+ # corresponding number of spaces.
113
+ #
114
+ # By default this is:
115
+ # lambda {|n| ' ' * n}
116
+ #
117
+ attr_reader genspace: Proc
118
+
119
+ # <!-- rdoc-file=lib/prettyprint.rb -->
120
+ # The number of spaces to be indented
121
+ #
122
+ attr_reader indent: Integer
123
+
124
+ # <!-- rdoc-file=lib/prettyprint.rb -->
125
+ # The PrettyPrint::GroupQueue of groups in stack to be pretty printed
126
+ #
127
+ attr_reader group_queue: PrettyPrint::GroupQueue
128
+
129
+ # <!--
130
+ # rdoc-file=lib/prettyprint.rb
131
+ # - current_group()
132
+ # -->
133
+ # Returns the group most recently added to the stack.
134
+ #
135
+ # Contrived example:
136
+ # out = ""
137
+ # => ""
138
+ # q = PrettyPrint.new(out)
139
+ # => #<PrettyPrint:0x82f85c0 @output="", @maxwidth=79, @newline="\n", @genspace=#<Proc:0x82f8368@/home/vbatts/.rvm/rubies/ruby-head/lib/ruby/2.0.0/prettyprint.rb:82 (lambda)>, @output_width=0, @buffer_width=0, @buffer=[], @group_stack=[#<PrettyPrint::Group:0x82f8138 @depth=0, @breakables=[], @break=false>], @group_queue=#<PrettyPrint::GroupQueue:0x82fb7c0 @queue=[[#<PrettyPrint::Group:0x82f8138 @depth=0, @breakables=[], @break=false>]]>, @indent=0>
140
+ # q.group {
141
+ # q.text q.current_group.inspect
142
+ # q.text q.newline
143
+ # q.group(q.current_group.depth + 1) {
144
+ # q.text q.current_group.inspect
145
+ # q.text q.newline
146
+ # q.group(q.current_group.depth + 1) {
147
+ # q.text q.current_group.inspect
148
+ # q.text q.newline
149
+ # q.group(q.current_group.depth + 1) {
150
+ # q.text q.current_group.inspect
151
+ # q.text q.newline
152
+ # }
153
+ # }
154
+ # }
155
+ # }
156
+ # => 284
157
+ # puts out
158
+ # #<PrettyPrint::Group:0x8354758 @depth=1, @breakables=[], @break=false>
159
+ # #<PrettyPrint::Group:0x8354550 @depth=2, @breakables=[], @break=false>
160
+ # #<PrettyPrint::Group:0x83541cc @depth=3, @breakables=[], @break=false>
161
+ # #<PrettyPrint::Group:0x8347e54 @depth=4, @breakables=[], @break=false>
162
+ #
163
+ def current_group: () -> PrettyPrint::Group
164
+
165
+ # <!--
166
+ # rdoc-file=lib/prettyprint.rb
167
+ # - break_outmost_groups()
168
+ # -->
169
+ # Breaks the buffer into lines that are shorter than #maxwidth
170
+ #
171
+ def break_outmost_groups: () -> untyped
172
+
173
+ # <!--
174
+ # rdoc-file=lib/prettyprint.rb
175
+ # - text(obj, width=obj.length)
176
+ # -->
177
+ # This adds `obj` as a text of `width` columns in width.
178
+ #
179
+ # If `width` is not specified, obj.length is used.
180
+ #
181
+ def text: (String obj, ?Integer width) -> void
182
+
183
+ # <!--
184
+ # rdoc-file=lib/prettyprint.rb
185
+ # - fill_breakable(sep=' ', width=sep.length)
186
+ # -->
187
+ # This is similar to #breakable except the decision to break or not is
188
+ # determined individually.
189
+ #
190
+ # Two #fill_breakable under a group may cause 4 results: (break,break),
191
+ # (break,non-break), (non-break,break), (non-break,non-break). This is different
192
+ # to #breakable because two #breakable under a group may cause 2 results:
193
+ # (break,break), (non-break,non-break).
194
+ #
195
+ # The text `sep` is inserted if a line is not broken at this point.
196
+ #
197
+ # If `sep` is not specified, " " is used.
198
+ #
199
+ # If `width` is not specified, `sep.length` is used. You will have to specify
200
+ # this when `sep` is a multibyte character, for example.
201
+ #
202
+ def fill_breakable: (?String sep, ?Integer width) -> void
203
+
204
+ # <!--
205
+ # rdoc-file=lib/prettyprint.rb
206
+ # - breakable(sep=' ', width=sep.length)
207
+ # -->
208
+ # This says "you can break a line here if necessary", and a `width`-column text
209
+ # `sep` is inserted if a line is not broken at the point.
210
+ #
211
+ # If `sep` is not specified, " " is used.
212
+ #
213
+ # If `width` is not specified, `sep.length` is used. You will have to specify
214
+ # this when `sep` is a multibyte character, for example.
215
+ #
216
+ def breakable: (?String sep, ?Integer width) -> void
217
+
218
+ # <!--
219
+ # rdoc-file=lib/prettyprint.rb
220
+ # - group(indent=0, open_obj='', close_obj='', open_width=open_obj.length, close_width=close_obj.length) { || ... }
221
+ # -->
222
+ # Groups line break hints added in the block. The line break hints are all to be
223
+ # used or not.
224
+ #
225
+ # If `indent` is specified, the method call is regarded as nested by
226
+ # nest(indent) { ... }.
227
+ #
228
+ # If `open_obj` is specified, `text open_obj, open_width` is called before
229
+ # grouping. If `close_obj` is specified, `text close_obj, close_width` is called
230
+ # after grouping.
231
+ #
232
+ def group: (?::Integer indent, ?::String open_obj, ?::String close_obj, ?Integer open_width, ?Integer close_width) { () -> untyped } -> Integer
233
+
234
+ # <!--
235
+ # rdoc-file=lib/prettyprint.rb
236
+ # - group_sub() { || ... }
237
+ # -->
238
+ # Takes a block and queues a new group that is indented 1 level further.
239
+ #
240
+ def group_sub: () { () -> untyped } -> untyped
241
+
242
+ # <!--
243
+ # rdoc-file=lib/prettyprint.rb
244
+ # - nest(indent) { || ... }
245
+ # -->
246
+ # Increases left margin after newline with `indent` for line breaks added in the
247
+ # block.
248
+ #
249
+ def nest: (Integer indent) { () -> untyped } -> void
250
+
251
+ # <!--
252
+ # rdoc-file=lib/prettyprint.rb
253
+ # - flush()
254
+ # -->
255
+ # outputs buffered data.
256
+ #
257
+ def flush: () -> Integer
258
+
259
+ class Text
260
+ def initialize: () -> void
261
+
262
+ attr_reader width: Integer
263
+
264
+ def output: (untyped `out`, untyped output_width) -> untyped
265
+
266
+ def add: (untyped obj, Integer width) -> void
267
+ end
268
+
269
+ class Breakable
270
+ def initialize: (String sep, Integer width, PrettyPrint q) -> void
271
+
272
+ attr_reader obj: String
273
+
274
+ attr_reader width: Integer
275
+
276
+ attr_reader indent: Integer
277
+
278
+ def output: (untyped `out`, Integer output_width) -> untyped
279
+ end
280
+
281
+ class Group
282
+ def initialize: (untyped depth) -> void
283
+
284
+ attr_reader depth: untyped
285
+
286
+ attr_reader breakables: Array[PrettyPrint::Breakable]
287
+
288
+ def break: () -> bool
289
+
290
+ def break?: () -> bool
291
+
292
+ def first?: () -> bool
293
+ end
294
+
295
+ class GroupQueue
296
+ def initialize: (*untyped groups) -> void
297
+
298
+ def enq: (untyped group) -> void
299
+
300
+ def deq: () -> (PrettyPrint::Group | nil)
301
+
302
+ def delete: (PrettyPrint::Group group) -> void
303
+ end
304
+
305
+ # <!-- rdoc-file=lib/prettyprint.rb -->
306
+ # PrettyPrint::SingleLine is used by PrettyPrint.singleline_format
307
+ #
308
+ # It is passed to be similar to a PrettyPrint object itself, by responding to:
309
+ # * #text
310
+ # * #breakable
311
+ # * #nest
312
+ # * #group
313
+ # * #flush
314
+ # * #first?
315
+ #
316
+ # but instead, the output has no line breaks
317
+ #
318
+ class SingleLine
319
+ # <!--
320
+ # rdoc-file=lib/prettyprint.rb
321
+ # - new(output, maxwidth=nil, newline=nil)
322
+ # -->
323
+ # Create a PrettyPrint::SingleLine object
324
+ #
325
+ # Arguments:
326
+ # * `output` - String (or similar) to store rendered text. Needs to respond to
327
+ # '<<'
328
+ # * `maxwidth` - Argument position expected to be here for compatibility.
329
+ # This argument is a noop.
330
+ #
331
+ # * `newline` - Argument position expected to be here for compatibility.
332
+ # This argument is a noop.
333
+ #
334
+ def initialize: (String | untyped output, ?Integer? maxwidth, ?String? newline) -> void
335
+
336
+ # <!--
337
+ # rdoc-file=lib/prettyprint.rb
338
+ # - text(obj, width=nil)
339
+ # -->
340
+ # Add `obj` to the text to be output.
341
+ #
342
+ # `width` argument is here for compatibility. It is a noop argument.
343
+ #
344
+ def text: (String obj, ?Integer? width) -> void
345
+
346
+ # <!--
347
+ # rdoc-file=lib/prettyprint.rb
348
+ # - breakable(sep=' ', width=nil)
349
+ # -->
350
+ # Appends `sep` to the text to be output. By default `sep` is ' '
351
+ #
352
+ # `width` argument is here for compatibility. It is a noop argument.
353
+ #
354
+ def breakable: (?String sep, ?Integer? width) -> void
355
+
356
+ def nest: (untyped indent) { () -> untyped } -> void
357
+
358
+ # <!--
359
+ # rdoc-file=lib/prettyprint.rb
360
+ # - group(indent=nil, open_obj='', close_obj='', open_width=nil, close_width=nil) { || ... }
361
+ # -->
362
+ # Opens a block for grouping objects to be pretty printed.
363
+ #
364
+ # Arguments:
365
+ # * `indent` - noop argument. Present for compatibility.
366
+ # * `open_obj` - text appended before the &blok. Default is ''
367
+ # * `close_obj` - text appended after the &blok. Default is ''
368
+ # * `open_width` - noop argument. Present for compatibility.
369
+ # * `close_width` - noop argument. Present for compatibility.
370
+ #
371
+ def group: (?Integer? indent, ?String open_obj, ?String close_obj, ?Integer? open_width, ?Integer? close_width) { () -> untyped } -> untyped
372
+
373
+ def flush: () -> nil
374
+
375
+ # <!--
376
+ # rdoc-file=lib/prettyprint.rb
377
+ # - first?()
378
+ # -->
379
+ # This is used as a predicate, and ought to be called first.
380
+ #
381
+ def first?: () -> bool
382
+ end
383
+ end