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,237 @@
1
+ # <!-- rdoc-file=ext/pty/pty.c -->
2
+ # Creates and manages pseudo terminals (PTYs). See also
3
+ # https://en.wikipedia.org/wiki/Pseudo_terminal
4
+ #
5
+ # PTY allows you to allocate new terminals using ::open or ::spawn a new
6
+ # terminal with a specific command.
7
+ #
8
+ # ## Example
9
+ #
10
+ # In this example we will change the buffering type in the `factor` command,
11
+ # assuming that factor uses stdio for stdout buffering.
12
+ #
13
+ # If IO.pipe is used instead of PTY.open, this code deadlocks because factor's
14
+ # stdout is fully buffered.
15
+ #
16
+ # # start by requiring the standard library PTY
17
+ # require 'pty'
18
+ #
19
+ # master, slave = PTY.open
20
+ # read, write = IO.pipe
21
+ # pid = spawn("factor", :in=>read, :out=>slave)
22
+ # read.close # we dont need the read
23
+ # slave.close # or the slave
24
+ #
25
+ # # pipe "42" to the factor command
26
+ # write.puts "42"
27
+ # # output the response from factor
28
+ # p master.gets #=> "42: 2 3 7\n"
29
+ #
30
+ # # pipe "144" to factor and print out the response
31
+ # write.puts "144"
32
+ # p master.gets #=> "144: 2 2 2 2 3 3\n"
33
+ # write.close # close the pipe
34
+ #
35
+ # # The result of read operation when pty slave is closed is platform
36
+ # # dependent.
37
+ # ret = begin
38
+ # master.gets # FreeBSD returns nil.
39
+ # rescue Errno::EIO # GNU/Linux raises EIO.
40
+ # nil
41
+ # end
42
+ # p ret #=> nil
43
+ #
44
+ # ## License
45
+ #
46
+ # (c) Copyright 1998 by Akinori Ito.
47
+ #
48
+ # This software may be redistributed freely for this purpose, in full or in
49
+ # part, provided that this entire copyright notice is included on any copies of
50
+ # this software and applications and derivations thereof.
51
+ #
52
+ # This software is provided on an "as is" basis, without warranty of any kind,
53
+ # either expressed or implied, as to any matter including, but not limited to
54
+ # warranty of fitness of purpose, or merchantability, or results obtained from
55
+ # use of this software.
56
+ #
57
+ module PTY
58
+ # <!--
59
+ # rdoc-file=ext/pty/pty.c
60
+ # - PTY.check(pid, raise = false) => Process::Status or nil
61
+ # - PTY.check(pid, true) => nil or raises PTY::ChildExited
62
+ # -->
63
+ # Checks the status of the child process specified by `pid`. Returns `nil` if
64
+ # the process is still alive.
65
+ #
66
+ # If the process is not alive, and `raise` was true, a PTY::ChildExited
67
+ # exception will be raised. Otherwise it will return a Process::Status instance.
68
+ #
69
+ # `pid`
70
+ # : The process id of the process to check
71
+ #
72
+ # `raise`
73
+ # : If `true` and the process identified by `pid` is no longer alive a
74
+ # PTY::ChildExited is raised.
75
+ #
76
+ def self.check: (Integer pid, ?boolish raise) -> Process::Status?
77
+
78
+ # <!-- rdoc-file=ext/pty/pty.c -->
79
+ # Spawns the specified command on a newly allocated pty. You can also use the
80
+ # alias ::getpty.
81
+ #
82
+ # The command's controlling tty is set to the slave device of the pty and its
83
+ # standard input/output/error is redirected to the slave device.
84
+ #
85
+ # `env` is an optional hash that provides additional environment variables to
86
+ # the spawned pty.
87
+ #
88
+ # # sets FOO to "bar"
89
+ # PTY.spawn({"FOO"=>"bar"}, "printenv", "FOO") do |r, w, pid|
90
+ # p r.read #=> "bar\r\n"
91
+ # ensure
92
+ # r.close; w.close; Process.wait(pid)
93
+ # end
94
+ # # unsets FOO
95
+ # PTY.spawn({"FOO"=>nil}, "printenv", "FOO") do |r, w, pid|
96
+ # p r.read #=> ""
97
+ # ensure
98
+ # r.close; w.close; Process.wait(pid)
99
+ # end
100
+ #
101
+ # `command` and `command_line` are the full commands to run, given a String. Any
102
+ # additional `arguments` will be passed to the command.
103
+ #
104
+ # ### Return values
105
+ #
106
+ # In the non-block form this returns an array of size three, `[r, w, pid]`.
107
+ #
108
+ # In the block form these same values will be yielded to the block:
109
+ #
110
+ # `r`
111
+ # : A readable IO that contains the command's standard output and standard
112
+ # error
113
+ #
114
+ # `w`
115
+ # : A writable IO that is the command's standard input
116
+ #
117
+ # `pid`
118
+ # : The process identifier for the command.
119
+ #
120
+ #
121
+ # ### Clean up
122
+ #
123
+ # This method does not clean up like closing IOs or waiting for child process,
124
+ # except that the process is detached in the block form to prevent it from
125
+ # becoming a zombie (see Process.detach). Any other cleanup is the
126
+ # responsibility of the caller. If waiting for `pid`, be sure to close both `r`
127
+ # and `w` before doing so; doing it in the reverse order may cause deadlock on
128
+ # some OSes.
129
+ #
130
+ alias self.getpty self.spawn
131
+
132
+ # <!--
133
+ # rdoc-file=ext/pty/pty.c
134
+ # - PTY.open => [master_io, slave_file]
135
+ # - PTY.open {|(master_io, slave_file)| ... } => block value
136
+ # -->
137
+ # Allocates a pty (pseudo-terminal).
138
+ #
139
+ # In the block form, yields an array of two elements (`master_io, slave_file`)
140
+ # and the value of the block is returned from `open`.
141
+ #
142
+ # The IO and File are both closed after the block completes if they haven't been
143
+ # already closed.
144
+ #
145
+ # PTY.open {|master, slave|
146
+ # p master #=> #<IO:masterpty:/dev/pts/1>
147
+ # p slave #=> #<File:/dev/pts/1>
148
+ # p slave.path #=> "/dev/pts/1"
149
+ # }
150
+ #
151
+ # In the non-block form, returns a two element array, `[master_io, slave_file]`.
152
+ #
153
+ # master, slave = PTY.open
154
+ # # do something with master for IO, or the slave file
155
+ #
156
+ # The arguments in both forms are:
157
+ #
158
+ # `master_io`
159
+ # : the master of the pty, as an IO.
160
+ #
161
+ # `slave_file`
162
+ # : the slave of the pty, as a File. The path to the terminal device is
163
+ # available via `slave_file.path`
164
+ #
165
+ #
166
+ # IO#raw! is usable to disable newline conversions:
167
+ #
168
+ # require 'io/console'
169
+ # PTY.open {|m, s|
170
+ # s.raw!
171
+ # # ...
172
+ # }
173
+ #
174
+ def self.open: () -> [ IO, File ]
175
+ | [A] () { ([ IO, File ]) -> A } -> A
176
+
177
+ # <!--
178
+ # rdoc-file=ext/pty/pty.c
179
+ # - PTY.spawn([env,] command_line) { |r, w, pid| ... }
180
+ # - PTY.spawn([env,] command_line) => [r, w, pid]
181
+ # - PTY.spawn([env,] command, arguments, ...) { |r, w, pid| ... }
182
+ # - PTY.spawn([env,] command, arguments, ...) => [r, w, pid]
183
+ # -->
184
+ # Spawns the specified command on a newly allocated pty. You can also use the
185
+ # alias ::getpty.
186
+ #
187
+ # The command's controlling tty is set to the slave device of the pty and its
188
+ # standard input/output/error is redirected to the slave device.
189
+ #
190
+ # `env` is an optional hash that provides additional environment variables to
191
+ # the spawned pty.
192
+ #
193
+ # # sets FOO to "bar"
194
+ # PTY.spawn({"FOO"=>"bar"}, "printenv", "FOO") do |r, w, pid|
195
+ # p r.read #=> "bar\r\n"
196
+ # ensure
197
+ # r.close; w.close; Process.wait(pid)
198
+ # end
199
+ # # unsets FOO
200
+ # PTY.spawn({"FOO"=>nil}, "printenv", "FOO") do |r, w, pid|
201
+ # p r.read #=> ""
202
+ # ensure
203
+ # r.close; w.close; Process.wait(pid)
204
+ # end
205
+ #
206
+ # `command` and `command_line` are the full commands to run, given a String. Any
207
+ # additional `arguments` will be passed to the command.
208
+ #
209
+ # ### Return values
210
+ #
211
+ # In the non-block form this returns an array of size three, `[r, w, pid]`.
212
+ #
213
+ # In the block form these same values will be yielded to the block:
214
+ #
215
+ # `r`
216
+ # : A readable IO that contains the command's standard output and standard
217
+ # error
218
+ #
219
+ # `w`
220
+ # : A writable IO that is the command's standard input
221
+ #
222
+ # `pid`
223
+ # : The process identifier for the command.
224
+ #
225
+ #
226
+ # ### Clean up
227
+ #
228
+ # This method does not clean up like closing IOs or waiting for child process,
229
+ # except that the process is detached in the block form to prevent it from
230
+ # becoming a zombie (see Process.detach). Any other cleanup is the
231
+ # responsibility of the caller. If waiting for `pid`, be sure to close both `r`
232
+ # and `w` before doing so; doing it in the reverse order may cause deadlock on
233
+ # some OSes.
234
+ #
235
+ def self.spawn: (*String command) -> [ IO, IO, Integer ]
236
+ | (*String command) { ([ IO, IO, Integer ]) -> void } -> void
237
+ end
@@ -0,0 +1,51 @@
1
+ %a{annotate:rdoc:skip}
2
+ module RDoc
3
+ # <!-- rdoc-file=lib/rdoc/code_object.rb -->
4
+ # Base class for the RDoc code tree.
5
+ #
6
+ # We contain the common stuff for contexts (which are containers) and other
7
+ # elements (methods, attributes and so on)
8
+ #
9
+ # Here's the tree of the CodeObject subclasses:
10
+ #
11
+ # * RDoc::Context
12
+ # * RDoc::TopLevel
13
+ # * RDoc::ClassModule
14
+ # * RDoc::AnonClass (never used so far)
15
+ # * RDoc::NormalClass
16
+ # * RDoc::NormalModule
17
+ # * RDoc::SingleClass
18
+ # * RDoc::MethodAttr
19
+ # * RDoc::Attr
20
+ # * RDoc::AnyMethod
21
+ # * RDoc::GhostMethod
22
+ # * RDoc::MetaMethod
23
+ # * RDoc::Alias
24
+ # * RDoc::Constant
25
+ # * RDoc::Mixin
26
+ # * RDoc::Require
27
+ # * RDoc::Include
28
+ #
29
+ class CodeObject
30
+ # <!-- rdoc-file=lib/rdoc/code_object.rb -->
31
+ # Our comment
32
+ #
33
+ attr_reader comment: Markup::Document | Comment | String
34
+
35
+ # <!--
36
+ # rdoc-file=lib/rdoc/code_object.rb
37
+ # - new()
38
+ # -->
39
+ # Creates a new CodeObject that will document itself and its children
40
+ #
41
+ def initialize: () -> void
42
+
43
+ # <!--
44
+ # rdoc-file=lib/rdoc/code_object.rb
45
+ # - comment=(comment)
46
+ # -->
47
+ # Replaces our comment with `comment`, unless it is empty.
48
+ #
49
+ def comment=: (Markup::Document | Comment | String | nil) -> (Markup::Document | Comment | String)
50
+ end
51
+ end
@@ -0,0 +1,59 @@
1
+ %a{annotate:rdoc:skip}
2
+ module RDoc
3
+ # <!-- rdoc-file=lib/rdoc/comment.rb -->
4
+ # A comment holds the text comment for a RDoc::CodeObject and provides a unified
5
+ # way of cleaning it up and parsing it into an RDoc::Markup::Document.
6
+ #
7
+ # Each comment may have a different markup format set by #format=. By default
8
+ # 'rdoc' is used. The :markup: directive tells RDoc which format to use.
9
+ #
10
+ # See RDoc::MarkupReference@Directive+for+Specifying+RDoc+Source+Format.
11
+ #
12
+ class Comment
13
+ # <!-- rdoc-file=lib/rdoc/comment.rb -->
14
+ # The format of this comment. Defaults to RDoc::Markup
15
+ #
16
+ attr_reader format: String
17
+
18
+ # <!-- rdoc-file=lib/rdoc/comment.rb -->
19
+ # The RDoc::TopLevel this comment was found in
20
+ #
21
+ attr_accessor location: String
22
+
23
+ # <!--
24
+ # rdoc-file=lib/rdoc/comment.rb
25
+ # - new(text = nil, location = nil, language = nil)
26
+ # -->
27
+ # Creates a new comment with `text` that is found in the RDoc::TopLevel
28
+ # `location`.
29
+ #
30
+ def initialize: (?String? text, ?RDoc::Context? location, ?String? language) -> void
31
+
32
+ # <!--
33
+ # rdoc-file=lib/rdoc/comment.rb
34
+ # - format=(format)
35
+ # -->
36
+ # Sets the format of this comment and resets any parsed document
37
+ #
38
+ def format=: (String format) -> void
39
+
40
+ def normalized?: () -> bool
41
+
42
+ # <!--
43
+ # rdoc-file=lib/rdoc/comment.rb
44
+ # - normalize()
45
+ # -->
46
+ # Normalizes the text. See RDoc::Text#normalize_comment for details
47
+ #
48
+ def normalize: () -> self
49
+
50
+ # <!--
51
+ # rdoc-file=lib/rdoc/comment.rb
52
+ # - parse()
53
+ # -->
54
+ # Parses the comment into an RDoc::Markup::Document. The parsed document is
55
+ # cached until the text is changed.
56
+ #
57
+ def parse: () -> Markup::Document
58
+ end
59
+ end
@@ -0,0 +1,153 @@
1
+ %a{annotate:rdoc:skip}
2
+ module RDoc
3
+ # <!-- rdoc-file=lib/rdoc/context.rb -->
4
+ # A Context is something that can hold modules, classes, methods, attributes,
5
+ # aliases, requires, and includes. Classes, modules, and files are all Contexts.
6
+ #
7
+ class Context < CodeObject
8
+ include Comparable
9
+
10
+ # <!-- rdoc-file=lib/rdoc/context.rb -->
11
+ # Types of methods
12
+ #
13
+ TYPES: ::Array["class" | "instance"]
14
+
15
+ TOMDOC_TITLES: ::Array[nil | "Public" | "Internal" | "Deprecated"]
16
+
17
+ type class_types = singleton(RDoc::NormalClass) | singleton(RDoc::SingleClass)
18
+
19
+ # <!--
20
+ # rdoc-file=lib/rdoc/context.rb
21
+ # - new()
22
+ # -->
23
+ # Creates an unnamed empty context with public current visibility
24
+ #
25
+ def initialize: () -> void
26
+
27
+ # <!--
28
+ # rdoc-file=lib/rdoc/context.rb
29
+ # - add_alias(an_alias)
30
+ # -->
31
+ # Adds `an_alias` that is automatically resolved
32
+ #
33
+ def add_alias: (RDoc::Alias an_alias) -> RDoc::Alias
34
+
35
+ # <!--
36
+ # rdoc-file=lib/rdoc/context.rb
37
+ # - add_attribute(attribute)
38
+ # -->
39
+ # Adds `attribute` if not already there. If it is (as method(s) or attribute),
40
+ # updates the comment if it was empty.
41
+ #
42
+ # The attribute is registered only if it defines a new method. For instance,
43
+ # `attr_reader :foo` will not be registered if method `foo` exists, but
44
+ # `attr_accessor :foo` will be registered if method `foo` exists, but `foo=`
45
+ # does not.
46
+ #
47
+ def add_attribute: (RDoc::Attr attribute) -> RDoc::Attr
48
+
49
+ # <!--
50
+ # rdoc-file=lib/rdoc/context.rb
51
+ # - add_class(class_type, given_name, superclass = '::Object')
52
+ # -->
53
+ # Adds a class named `given_name` with `superclass`.
54
+ #
55
+ # Both `given_name` and `superclass` may contain '::', and are interpreted
56
+ # relative to the `self` context. This allows handling correctly examples like
57
+ # these:
58
+ # class RDoc::Gauntlet < Gauntlet
59
+ # module Mod
60
+ # class Object # implies < ::Object
61
+ # class SubObject < Object # this is _not_ ::Object
62
+ #
63
+ # Given `class Container::Item` RDoc assumes `Container` is a module unless it
64
+ # later sees `class Container`. `add_class` automatically upgrades `given_name`
65
+ # to a class in this case.
66
+ #
67
+ def add_class: (class_types class_type, ::String given_name, ?::String superclass) -> (RDoc::NormalClass | RDoc::SingleClass)
68
+
69
+ # <!--
70
+ # rdoc-file=lib/rdoc/context.rb
71
+ # - add_constant(constant)
72
+ # -->
73
+ # Adds `constant` if not already there. If it is, updates the comment, value
74
+ # and/or is_alias_for of the known constant if they were empty/nil.
75
+ #
76
+ def add_constant: (RDoc::Constant constant) -> RDoc::Constant
77
+
78
+ # <!--
79
+ # rdoc-file=lib/rdoc/context.rb
80
+ # - add_include(include)
81
+ # -->
82
+ # Adds included module `include` which should be an RDoc::Include
83
+ #
84
+ def add_include: (RDoc::Include `include`) -> RDoc::Include
85
+
86
+ # <!--
87
+ # rdoc-file=lib/rdoc/context.rb
88
+ # - add_extend(ext)
89
+ # -->
90
+ # Adds extension module `ext` which should be an RDoc::Extend
91
+ #
92
+ def add_extend: (RDoc::Extend ext) -> RDoc::Extend
93
+
94
+ # <!--
95
+ # rdoc-file=lib/rdoc/context.rb
96
+ # - add_method(method)
97
+ # -->
98
+ # Adds `method` if not already there. If it is (as method or attribute), updates
99
+ # the comment if it was empty.
100
+ #
101
+ def add_method: (RDoc::AnyMethod method) -> RDoc::AnyMethod
102
+
103
+ # <!--
104
+ # rdoc-file=lib/rdoc/context.rb
105
+ # - add_module(class_type, name)
106
+ # -->
107
+ # Adds a module named `name`. If RDoc already knows `name` is a class then that
108
+ # class is returned instead. See also #add_class.
109
+ #
110
+ def add_module: (singleton(RDoc::NormalModule) class_type, String name) -> RDoc::NormalModule
111
+
112
+ # <!-- rdoc-file=lib/rdoc/context.rb -->
113
+ # All attr* methods
114
+ #
115
+ def attributes: () -> Array[Attr]
116
+
117
+ # <!-- rdoc-file=lib/rdoc/context.rb -->
118
+ # Constants defined
119
+ #
120
+ def constants: () -> Array[Constant]
121
+
122
+ # <!--
123
+ # rdoc-file=lib/rdoc/context.rb
124
+ # - find_module_named(name)
125
+ # -->
126
+ # Find a module with `name` using ruby's scoping rules
127
+ #
128
+ def find_module_named: (untyped name) -> (untyped | self)
129
+
130
+ # <!--
131
+ # rdoc-file=lib/rdoc/context.rb
132
+ # - full_name()
133
+ # -->
134
+ # The full name for this context. This method is overridden by subclasses.
135
+ #
136
+ def full_name: () -> "(unknown)"
137
+
138
+ # <!-- rdoc-file=lib/rdoc/context.rb -->
139
+ # Methods defined in this context
140
+ #
141
+ def method_list: () -> Array[AnyMethod]
142
+
143
+ def to_s: () -> ::String
144
+
145
+ # <!--
146
+ # rdoc-file=lib/rdoc/context.rb
147
+ # - top_level()
148
+ # -->
149
+ # Return the TopLevel that owns us
150
+ #
151
+ def top_level: () -> RDoc::TopLevel
152
+ end
153
+ end
@@ -0,0 +1,117 @@
1
+ %a{annotate:rdoc:skip}
2
+ module RDoc
3
+ # <!-- rdoc-file=lib/rdoc/markup.rb -->
4
+ # RDoc::Markup parses plain text documents and attempts to decompose them into
5
+ # their constituent parts. Some of these parts are high-level: paragraphs,
6
+ # chunks of verbatim text, list entries and the like. Other parts happen at the
7
+ # character level: a piece of bold text, a word in code font. This markup is
8
+ # similar in spirit to that used on WikiWiki webs, where folks create web pages
9
+ # using a simple set of formatting rules.
10
+ #
11
+ # RDoc::Markup and other markup formats do no output formatting, this is handled
12
+ # by the RDoc::Markup::Formatter subclasses.
13
+ #
14
+ # # Markup Formats
15
+ #
16
+ # `RDoc` supports these markup formats:
17
+ #
18
+ # * `rdoc`: the `RDoc` markup format; see RDoc::MarkupReference.
19
+ # * `markdown`: The `markdown` markup format as described in the [Markdown
20
+ # Guide](https://www.markdownguide.org); see RDoc::Markdown.
21
+ # * `rd`: the `rd` markup format format; see RDoc::RD.
22
+ # * `tomdoc`: the TomDoc format as described in [TomDoc for
23
+ # Ruby](http://tomdoc.org); see RDoc::TomDoc.
24
+ #
25
+ # You can choose a markup format using the following methods:
26
+ #
27
+ # per project
28
+ # : If you build your documentation with rake use RDoc::Task#markup.
29
+ #
30
+ # If you build your documentation by hand run:
31
+ #
32
+ # rdoc --markup your_favorite_format --write-options
33
+ #
34
+ # and commit `.rdoc_options` and ship it with your packaged gem.
35
+ #
36
+ # per file
37
+ # : At the top of the file use the `:markup:` directive to set the default
38
+ # format for the rest of the file.
39
+ #
40
+ # per comment
41
+ # : Use the `:markup:` directive at the top of a comment you want to write in
42
+ # a different format.
43
+ #
44
+ #
45
+ # # RDoc::Markup
46
+ #
47
+ # RDoc::Markup is extensible at runtime: you can add new markup elements to be
48
+ # recognized in the documents that RDoc::Markup parses.
49
+ #
50
+ # RDoc::Markup is intended to be the basis for a family of tools which share the
51
+ # common requirement that simple, plain-text should be rendered in a variety of
52
+ # different output formats and media. It is envisaged that RDoc::Markup could
53
+ # be the basis for formatting RDoc style comment blocks, Wiki entries, and
54
+ # online FAQs.
55
+ #
56
+ # ## Synopsis
57
+ #
58
+ # This code converts `input_string` to HTML. The conversion takes place in the
59
+ # `convert` method, so you can use the same RDoc::Markup converter to convert
60
+ # multiple input strings.
61
+ #
62
+ # require 'rdoc'
63
+ #
64
+ # h = RDoc::Markup::ToHtml.new(RDoc::Options.new)
65
+ #
66
+ # puts h.convert(input_string)
67
+ #
68
+ # You can extend the RDoc::Markup parser to recognize new markup sequences, and
69
+ # to add regexp handling. Here we make WikiWords significant to the parser, and
70
+ # also make the sequences {word} and <no>text...</no> signify strike-through
71
+ # text. We then subclass the HTML output class to deal with these:
72
+ #
73
+ # require 'rdoc'
74
+ #
75
+ # class WikiHtml < RDoc::Markup::ToHtml
76
+ # def handle_regexp_WIKIWORD(target)
77
+ # "<font color=red>" + target.text + "</font>"
78
+ # end
79
+ # end
80
+ #
81
+ # markup = RDoc::Markup.new
82
+ # markup.add_word_pair("{", "}", :STRIKE)
83
+ # markup.add_html("no", :STRIKE)
84
+ #
85
+ # markup.add_regexp_handling(/\b([A-Z][a-z]+[A-Z]\w+)/, :WIKIWORD)
86
+ #
87
+ # wh = WikiHtml.new RDoc::Options.new, markup
88
+ # wh.add_tag(:STRIKE, "<strike>", "</strike>")
89
+ #
90
+ # puts "<body>#{wh.convert ARGF.read}</body>"
91
+ #
92
+ # ## Encoding
93
+ #
94
+ # Where Encoding support is available, RDoc will automatically convert all
95
+ # documents to the same output encoding. The output encoding can be set via
96
+ # RDoc::Options#encoding and defaults to Encoding.default_external.
97
+ #
98
+ # # RDoc Markup Reference
99
+ #
100
+ # See RDoc::MarkupReference.
101
+ #
102
+ class Markup
103
+ class Document
104
+ include Enumerable[Document]
105
+
106
+ def each: () { (Document) -> void } -> void
107
+ | () -> Enumerator[Document, void]
108
+
109
+ def file: () -> String?
110
+
111
+ def accept: (untyped) -> String
112
+ end
113
+
114
+ class ToMarkdown
115
+ end
116
+ end
117
+ end
@@ -0,0 +1,56 @@
1
+ %a{annotate:rdoc:skip}
2
+ module RDoc
3
+ # <!-- rdoc-file=lib/rdoc/parser.rb -->
4
+ # A parser is simple a class that subclasses RDoc::Parser and implements #scan
5
+ # to fill in an RDoc::TopLevel with parsed data.
6
+ #
7
+ # The initialize method takes an RDoc::TopLevel to fill with parsed content, the
8
+ # name of the file to be parsed, the content of the file, an RDoc::Options
9
+ # object and an RDoc::Stats object to inform the user of parsed items. The scan
10
+ # method is then called to parse the file and must return the RDoc::TopLevel
11
+ # object. By calling super these items will be set for you.
12
+ #
13
+ # In order to be used by RDoc the parser needs to register the file extensions
14
+ # it can parse. Use ::parse_files_matching to register extensions.
15
+ #
16
+ # require 'rdoc'
17
+ #
18
+ # class RDoc::Parser::Xyz < RDoc::Parser
19
+ # parse_files_matching /\.xyz$/
20
+ #
21
+ # def initialize top_level, file_name, content, options, stats
22
+ # super
23
+ #
24
+ # # extra initialization if needed
25
+ # end
26
+ #
27
+ # def scan
28
+ # # parse file and fill in @top_level
29
+ # end
30
+ # end
31
+ #
32
+ class Parser
33
+ # <!--
34
+ # rdoc-file=lib/rdoc/parser.rb
35
+ # - parse_files_matching(regexp)
36
+ # -->
37
+ # Record which file types this parser can understand.
38
+ #
39
+ # It is ok to call this multiple times.
40
+ #
41
+ def self?.parse_files_matching: (Regexp path) -> void
42
+
43
+ # <!--
44
+ # rdoc-file=lib/rdoc/parser.rb
45
+ # - new(top_level, file_name, content, options, stats)
46
+ # -->
47
+ # Creates a new Parser storing `top_level`, `file_name`, `content`, `options`
48
+ # and `stats` in instance variables. In +@preprocess+ an
49
+ # RDoc::Markup::PreProcess object is created which allows processing of
50
+ # directives.
51
+ #
52
+ def initialize: (RDoc::TopLevel top_level, String filename, String content, Hash[untyped, untyped] options, RDoc::Stats stats) -> void
53
+
54
+ def scan: () -> RDoc::TopLevel
55
+ end
56
+ end