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,635 @@
1
+ # <!-- rdoc-file=re.c -->
2
+ # MatchData encapsulates the result of matching a Regexp against string. It is
3
+ # returned by Regexp#match and String#match, and also stored in a global
4
+ # variable returned by Regexp.last_match.
5
+ #
6
+ # Usage:
7
+ #
8
+ # url = 'https://docs.ruby-lang.org/en/2.5.0/MatchData.html'
9
+ # m = url.match(/(\d\.?)+/) # => #<MatchData "2.5.0" 1:"0">
10
+ # m.string # => "https://docs.ruby-lang.org/en/2.5.0/MatchData.html"
11
+ # m.regexp # => /(\d\.?)+/
12
+ # # entire matched substring:
13
+ # m[0] # => "2.5.0"
14
+ #
15
+ # # Working with unnamed captures
16
+ # m = url.match(%r{([^/]+)/([^/]+)\.html$})
17
+ # m.captures # => ["2.5.0", "MatchData"]
18
+ # m[1] # => "2.5.0"
19
+ # m.values_at(1, 2) # => ["2.5.0", "MatchData"]
20
+ #
21
+ # # Working with named captures
22
+ # m = url.match(%r{(?<version>[^/]+)/(?<module>[^/]+)\.html$})
23
+ # m.captures # => ["2.5.0", "MatchData"]
24
+ # m.named_captures # => {"version"=>"2.5.0", "module"=>"MatchData"}
25
+ # m[:version] # => "2.5.0"
26
+ # m.values_at(:version, :module)
27
+ # # => ["2.5.0", "MatchData"]
28
+ # # Numerical indexes are working, too
29
+ # m[1] # => "2.5.0"
30
+ # m.values_at(1, 2) # => ["2.5.0", "MatchData"]
31
+ #
32
+ # ## Global variables equivalence
33
+ #
34
+ # Parts of last MatchData (returned by Regexp.last_match) are also aliased as
35
+ # global variables:
36
+ #
37
+ # * `$~` is Regexp.last_match;
38
+ # * `$&` is Regexp.last_match`[ 0 ]`;
39
+ # * `$1`, `$2`, and so on are Regexp.last_match`[ i ]` (captures by number);
40
+ # * `$`` is Regexp.last_match`.pre_match`;
41
+ # * `$'` is Regexp.last_match`.post_match`;
42
+ # * `$+` is Regexp.last_match`[ -1 ]` (the last capture).
43
+ #
44
+ # See also "Special global variables" section in Regexp documentation.
45
+ #
46
+ class MatchData
47
+ type capture = String | Symbol | int
48
+
49
+ def initialize_copy: (MatchData instance) -> self
50
+
51
+ # <!-- rdoc-file=re.c -->
52
+ # Returns `true` if `object` is another MatchData object whose target string,
53
+ # regexp, match, and captures are the same as `self`, `false` otherwise.
54
+ #
55
+ def ==: (MatchData other) -> bool
56
+ | (untyped) -> false
57
+
58
+ # <!--
59
+ # rdoc-file=re.c
60
+ # - matchdata[index] -> string or nil
61
+ # - matchdata[start, length] -> array
62
+ # - matchdata[range] -> array
63
+ # - matchdata[name] -> string or nil
64
+ # -->
65
+ # When arguments `index`, +start and `length`, or `range` are given, returns
66
+ # match and captures in the style of Array#[]:
67
+ #
68
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
69
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
70
+ # m[0] # => "HX1138"
71
+ # m[1, 2] # => ["H", "X"]
72
+ # m[1..3] # => ["H", "X", "113"]
73
+ # m[-3, 2] # => ["X", "113"]
74
+ #
75
+ # When string or symbol argument `name` is given, returns the matched substring
76
+ # for the given name:
77
+ #
78
+ # m = /(?<foo>.)(.)(?<bar>.+)/.match("hoge")
79
+ # # => #<MatchData "hoge" foo:"h" bar:"ge">
80
+ # m['foo'] # => "h"
81
+ # m[:bar] # => "ge"
82
+ #
83
+ # If multiple captures have the same name, returns the last matched substring.
84
+ #
85
+ # m = /(?<foo>.)(?<foo>.+)/.match("hoge")
86
+ # # => #<MatchData "hoge" foo:"h" foo:"oge">
87
+ # m[:foo] #=> "oge"
88
+ #
89
+ # m = /\W(?<foo>.+)|\w(?<foo>.+)|(?<foo>.+)/.match("hoge")
90
+ # #<MatchData "hoge" foo:nil foo:"oge" foo:nil>
91
+ # m[:foo] #=> "oge"
92
+ #
93
+ def []: (capture backref, ?nil) -> String?
94
+ | (int start, int length) -> Array[String?]
95
+ | (range[int?] range) -> Array[String?]
96
+
97
+ # <!--
98
+ # rdoc-file=re.c
99
+ # - begin(n) -> integer
100
+ # - begin(name) -> integer
101
+ # -->
102
+ # Returns the offset (in characters) of the beginning of the specified match.
103
+ #
104
+ # When non-negative integer argument `n` is given, returns the offset of the
105
+ # beginning of the `n`th match:
106
+ #
107
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
108
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
109
+ # m[0] # => "HX1138"
110
+ # m.begin(0) # => 1
111
+ # m[3] # => "113"
112
+ # m.begin(3) # => 3
113
+ #
114
+ # m = /(т)(е)(с)/.match('тест')
115
+ # # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
116
+ # m[0] # => "тес"
117
+ # m.begin(0) # => 0
118
+ # m[3] # => "с"
119
+ # m.begin(3) # => 2
120
+ #
121
+ # When string or symbol argument `name` is given, returns the offset of the
122
+ # beginning for the named match:
123
+ #
124
+ # m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
125
+ # # => #<MatchData "hog" foo:"h" bar:"g">
126
+ # m[:foo] # => "h"
127
+ # m.begin('foo') # => 0
128
+ # m[:bar] # => "g"
129
+ # m.begin(:bar) # => 2
130
+ #
131
+ # Related: MatchData#end, MatchData#offset, MatchData#byteoffset.
132
+ #
133
+ def begin: (capture backref) -> Integer?
134
+
135
+ # <!--
136
+ # rdoc-file=re.c
137
+ # - bytebegin(n) -> integer
138
+ # - bytebegin(name) -> integer
139
+ # -->
140
+ # Returns the offset (in bytes) of the beginning of the specified match.
141
+ #
142
+ # When non-negative integer argument `n` is given, returns the offset of the
143
+ # beginning of the `n`th match:
144
+ #
145
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
146
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
147
+ # m[0] # => "HX1138"
148
+ # m.bytebegin(0) # => 1
149
+ # m[3] # => "113"
150
+ # m.bytebegin(3) # => 3
151
+ #
152
+ # m = /(т)(е)(с)/.match('тест')
153
+ # # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
154
+ # m[0] # => "тес"
155
+ # m.bytebegin(0) # => 0
156
+ # m[3] # => "с"
157
+ # m.bytebegin(3) # => 4
158
+ #
159
+ # When string or symbol argument `name` is given, returns the offset of the
160
+ # beginning for the named match:
161
+ #
162
+ # m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
163
+ # # => #<MatchData "hog" foo:"h" bar:"g">
164
+ # m[:foo] # => "h"
165
+ # m.bytebegin('foo') # => 0
166
+ # m[:bar] # => "g"
167
+ # m.bytebegin(:bar) # => 2
168
+ #
169
+ # Related: MatchData#byteend, MatchData#byteoffset.
170
+ #
171
+ def bytebegin: (capture backref) -> Integer?
172
+
173
+ # <!--
174
+ # rdoc-file=re.c
175
+ # - byteend(n) -> integer
176
+ # - byteend(name) -> integer
177
+ # -->
178
+ # Returns the offset (in bytes) of the end of the specified match.
179
+ #
180
+ # When non-negative integer argument `n` is given, returns the offset of the end
181
+ # of the `n`th match:
182
+ #
183
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
184
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
185
+ # m[0] # => "HX1138"
186
+ # m.byteend(0) # => 7
187
+ # m[3] # => "113"
188
+ # m.byteend(3) # => 6
189
+ #
190
+ # m = /(т)(е)(с)/.match('тест')
191
+ # # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
192
+ # m[0] # => "тес"
193
+ # m.byteend(0) # => 6
194
+ # m[3] # => "с"
195
+ # m.byteend(3) # => 6
196
+ #
197
+ # When string or symbol argument `name` is given, returns the offset of the end
198
+ # for the named match:
199
+ #
200
+ # m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
201
+ # # => #<MatchData "hog" foo:"h" bar:"g">
202
+ # m[:foo] # => "h"
203
+ # m.byteend('foo') # => 1
204
+ # m[:bar] # => "g"
205
+ # m.byteend(:bar) # => 3
206
+ #
207
+ # Related: MatchData#bytebegin, MatchData#byteoffset.
208
+ #
209
+ def byteend: (capture backref) -> Integer?
210
+
211
+ # <!--
212
+ # rdoc-file=re.c
213
+ # - mtch.byteoffset(n) -> array
214
+ # -->
215
+ # Returns a two-element array containing the beginning and ending byte-based
216
+ # offsets of the *n*th match. *n* can be a string or symbol to reference a named
217
+ # capture.
218
+ #
219
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
220
+ # m.byteoffset(0) #=> [1, 7]
221
+ # m.byteoffset(4) #=> [6, 7]
222
+ #
223
+ # m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
224
+ # p m.byteoffset(:foo) #=> [0, 1]
225
+ # p m.byteoffset(:bar) #=> [2, 3]
226
+ #
227
+ def byteoffset: (capture backref) -> ([Integer, Integer] | [nil, nil])
228
+
229
+ # <!--
230
+ # rdoc-file=re.c
231
+ # - captures -> array
232
+ # -->
233
+ # Returns the array of captures, which are all matches except `m[0]`:
234
+ #
235
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
236
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
237
+ # m[0] # => "HX1138"
238
+ # m.captures # => ["H", "X", "113", "8"]
239
+ #
240
+ # Related: MatchData.to_a.
241
+ #
242
+ def captures: () -> Array[String?]
243
+
244
+ # <!-- rdoc-file=re.c -->
245
+ # Returns the array of captures, which are all matches except `m[0]`:
246
+ #
247
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
248
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
249
+ # m[0] # => "HX1138"
250
+ # m.captures # => ["H", "X", "113", "8"]
251
+ #
252
+ # Related: MatchData.to_a.
253
+ #
254
+ alias deconstruct captures
255
+
256
+ # <!--
257
+ # rdoc-file=re.c
258
+ # - deconstruct_keys(array_of_names) -> hash
259
+ # -->
260
+ # Returns a hash of the named captures for the given names.
261
+ #
262
+ # m = /(?<hours>\d{2}):(?<minutes>\d{2}):(?<seconds>\d{2})/.match("18:37:22")
263
+ # m.deconstruct_keys([:hours, :minutes]) # => {:hours => "18", :minutes => "37"}
264
+ # m.deconstruct_keys(nil) # => {:hours => "18", :minutes => "37", :seconds => "22"}
265
+ #
266
+ # Returns an empty hash if no named captures were defined:
267
+ #
268
+ # m = /(\d{2}):(\d{2}):(\d{2})/.match("18:37:22")
269
+ # m.deconstruct_keys(nil) # => {}
270
+ #
271
+ def deconstruct_keys: (Array[Symbol]? array_of_names) -> Hash[Symbol, String?]
272
+
273
+ # <!--
274
+ # rdoc-file=re.c
275
+ # - end(n) -> integer
276
+ # - end(name) -> integer
277
+ # -->
278
+ # Returns the offset (in characters) of the end of the specified match.
279
+ #
280
+ # When non-negative integer argument `n` is given, returns the offset of the end
281
+ # of the `n`th match:
282
+ #
283
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
284
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
285
+ # m[0] # => "HX1138"
286
+ # m.end(0) # => 7
287
+ # m[3] # => "113"
288
+ # m.end(3) # => 6
289
+ #
290
+ # m = /(т)(е)(с)/.match('тест')
291
+ # # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
292
+ # m[0] # => "тес"
293
+ # m.end(0) # => 3
294
+ # m[3] # => "с"
295
+ # m.end(3) # => 3
296
+ #
297
+ # When string or symbol argument `name` is given, returns the offset of the end
298
+ # for the named match:
299
+ #
300
+ # m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
301
+ # # => #<MatchData "hog" foo:"h" bar:"g">
302
+ # m[:foo] # => "h"
303
+ # m.end('foo') # => 1
304
+ # m[:bar] # => "g"
305
+ # m.end(:bar) # => 3
306
+ #
307
+ # Related: MatchData#begin, MatchData#offset, MatchData#byteoffset.
308
+ #
309
+ def end: (capture backref) -> Integer?
310
+
311
+ # <!--
312
+ # rdoc-file=re.c
313
+ # - matchdata == object -> true or false
314
+ # -->
315
+ # Returns `true` if `object` is another MatchData object whose target string,
316
+ # regexp, match, and captures are the same as `self`, `false` otherwise.
317
+ #
318
+ alias eql? ==
319
+
320
+ # <!--
321
+ # rdoc-file=re.c
322
+ # - hash -> integer
323
+ # -->
324
+ # Returns the integer hash value for `self`, based on the target string, regexp,
325
+ # match, and captures.
326
+ #
327
+ # See also Object#hash.
328
+ #
329
+ def hash: () -> Integer
330
+
331
+ # <!--
332
+ # rdoc-file=re.c
333
+ # - inspect -> string
334
+ # -->
335
+ # Returns a string representation of `self`:
336
+ #
337
+ # m = /.$/.match("foo")
338
+ # # => #<MatchData "o">
339
+ # m.inspect # => "#<MatchData \"o\">"
340
+ #
341
+ # m = /(.)(.)(.)/.match("foo")
342
+ # # => #<MatchData "foo" 1:"f" 2:"o" 3:"o">
343
+ # m.inspect # => "#<MatchData \"foo\" 1:\"f\" 2:\"o\
344
+ #
345
+ # m = /(.)(.)?(.)/.match("fo")
346
+ # # => #<MatchData "fo" 1:"f" 2:nil 3:"o">
347
+ # m.inspect # => "#<MatchData \"fo\" 1:\"f\" 2:nil 3:\"o\">"
348
+ #
349
+ # Related: MatchData#to_s.
350
+ #
351
+ def inspect: () -> String
352
+
353
+ # <!-- rdoc-file=re.c -->
354
+ # Returns size of the match array:
355
+ #
356
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
357
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
358
+ # m.size # => 5
359
+ #
360
+ alias length size
361
+
362
+ # <!--
363
+ # rdoc-file=re.c
364
+ # - named_captures(symbolize_names: false) -> hash
365
+ # -->
366
+ # Returns a hash of the named captures; each key is a capture name; each value
367
+ # is its captured string or `nil`:
368
+ #
369
+ # m = /(?<foo>.)(.)(?<bar>.+)/.match("hoge")
370
+ # # => #<MatchData "hoge" foo:"h" bar:"ge">
371
+ # m.named_captures # => {"foo"=>"h", "bar"=>"ge"}
372
+ #
373
+ # m = /(?<a>.)(?<b>.)/.match("01")
374
+ # # => #<MatchData "01" a:"0" b:"1">
375
+ # m.named_captures #=> {"a" => "0", "b" => "1"}
376
+ #
377
+ # m = /(?<a>.)(?<b>.)?/.match("0")
378
+ # # => #<MatchData "0" a:"0" b:nil>
379
+ # m.named_captures #=> {"a" => "0", "b" => nil}
380
+ #
381
+ # m = /(?<a>.)(?<a>.)/.match("01")
382
+ # # => #<MatchData "01" a:"0" a:"1">
383
+ # m.named_captures #=> {"a" => "1"}
384
+ #
385
+ # If keyword argument `symbolize_names` is given a true value, the keys in the
386
+ # resulting hash are Symbols:
387
+ #
388
+ # m = /(?<a>.)(?<a>.)/.match("01")
389
+ # # => #<MatchData "01" a:"0" a:"1">
390
+ # m.named_captures(symbolize_names: true) #=> {:a => "1"}
391
+ #
392
+ def named_captures: () -> Hash[String, String?]
393
+ | (symbolize_names: true) -> Hash[Symbol, String?]
394
+ | (symbolize_names: boolish) -> Hash[String | Symbol, String?]
395
+
396
+ # <!--
397
+ # rdoc-file=re.c
398
+ # - names -> array_of_names
399
+ # -->
400
+ # Returns an array of the capture names (see [Named
401
+ # Captures](rdoc-ref:Regexp@Named+Captures)):
402
+ #
403
+ # m = /(?<foo>.)(?<bar>.)(?<baz>.)/.match("hoge")
404
+ # # => #<MatchData "hog" foo:"h" bar:"o" baz:"g">
405
+ # m.names # => ["foo", "bar", "baz"]
406
+ #
407
+ # m = /foo/.match('foo') # => #<MatchData "foo">
408
+ # m.names # => [] # No named captures.
409
+ #
410
+ # Equivalent to:
411
+ #
412
+ # m = /(?<foo>.)(?<bar>.)(?<baz>.)/.match("hoge")
413
+ # m.regexp.names # => ["foo", "bar", "baz"]
414
+ #
415
+ def names: () -> Array[String]
416
+
417
+ # <!--
418
+ # rdoc-file=re.c
419
+ # - match(n) -> string or nil
420
+ # - match(name) -> string or nil
421
+ # -->
422
+ # Returns the matched substring corresponding to the given argument.
423
+ #
424
+ # When non-negative argument `n` is given, returns the matched substring for the
425
+ # `n`th match:
426
+ #
427
+ # m = /(.)(.)(\d+)(\d)(\w)?/.match("THX1138.")
428
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8" 5:nil>
429
+ # m.match(0) # => "HX1138"
430
+ # m.match(4) # => "8"
431
+ # m.match(5) # => nil
432
+ #
433
+ # When string or symbol argument `name` is given, returns the matched substring
434
+ # for the given name:
435
+ #
436
+ # m = /(?<foo>.)(.)(?<bar>.+)/.match("hoge")
437
+ # # => #<MatchData "hoge" foo:"h" bar:"ge">
438
+ # m.match('foo') # => "h"
439
+ # m.match(:bar) # => "ge"
440
+ #
441
+ def match: (capture backref) -> String?
442
+
443
+ # <!--
444
+ # rdoc-file=re.c
445
+ # - match_length(n) -> integer or nil
446
+ # - match_length(name) -> integer or nil
447
+ # -->
448
+ # Returns the length (in characters) of the matched substring corresponding to
449
+ # the given argument.
450
+ #
451
+ # When non-negative argument `n` is given, returns the length of the matched
452
+ # substring for the `n`th match:
453
+ #
454
+ # m = /(.)(.)(\d+)(\d)(\w)?/.match("THX1138.")
455
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8" 5:nil>
456
+ # m.match_length(0) # => 6
457
+ # m.match_length(4) # => 1
458
+ # m.match_length(5) # => nil
459
+ #
460
+ # When string or symbol argument `name` is given, returns the length of the
461
+ # matched substring for the named match:
462
+ #
463
+ # m = /(?<foo>.)(.)(?<bar>.+)/.match("hoge")
464
+ # # => #<MatchData "hoge" foo:"h" bar:"ge">
465
+ # m.match_length('foo') # => 1
466
+ # m.match_length(:bar) # => 2
467
+ #
468
+ def match_length: (capture backref) -> Integer?
469
+
470
+ # <!--
471
+ # rdoc-file=re.c
472
+ # - offset(n) -> [start_offset, end_offset]
473
+ # - offset(name) -> [start_offset, end_offset]
474
+ # -->
475
+ # Returns a 2-element array containing the beginning and ending offsets (in
476
+ # characters) of the specified match.
477
+ #
478
+ # When non-negative integer argument `n` is given, returns the starting and
479
+ # ending offsets of the `n`th match:
480
+ #
481
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
482
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
483
+ # m[0] # => "HX1138"
484
+ # m.offset(0) # => [1, 7]
485
+ # m[3] # => "113"
486
+ # m.offset(3) # => [3, 6]
487
+ #
488
+ # m = /(т)(е)(с)/.match('тест')
489
+ # # => #<MatchData "тес" 1:"т" 2:"е" 3:"с">
490
+ # m[0] # => "тес"
491
+ # m.offset(0) # => [0, 3]
492
+ # m[3] # => "с"
493
+ # m.offset(3) # => [2, 3]
494
+ #
495
+ # When string or symbol argument `name` is given, returns the starting and
496
+ # ending offsets for the named match:
497
+ #
498
+ # m = /(?<foo>.)(.)(?<bar>.)/.match("hoge")
499
+ # # => #<MatchData "hog" foo:"h" bar:"g">
500
+ # m[:foo] # => "h"
501
+ # m.offset('foo') # => [0, 1]
502
+ # m[:bar] # => "g"
503
+ # m.offset(:bar) # => [2, 3]
504
+ #
505
+ # Related: MatchData#byteoffset, MatchData#begin, MatchData#end.
506
+ #
507
+ def offset: (capture backref) -> ([Integer, Integer] | [nil, nil])
508
+
509
+ # <!--
510
+ # rdoc-file=re.c
511
+ # - post_match -> str
512
+ # -->
513
+ # Returns the substring of the target string from the end of the first match in
514
+ # `self` (that is, `self[0]`) to the end of the string; equivalent to regexp
515
+ # global variable `$'`:
516
+ #
517
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138: The Movie")
518
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
519
+ # m[0] # => "HX1138"
520
+ # m.post_match # => ": The Movie"\
521
+ #
522
+ # Related: MatchData.pre_match.
523
+ #
524
+ def post_match: () -> String
525
+
526
+ # <!--
527
+ # rdoc-file=re.c
528
+ # - pre_match -> string
529
+ # -->
530
+ # Returns the substring of the target string from its beginning up to the first
531
+ # match in `self` (that is, `self[0]`); equivalent to regexp global variable
532
+ # `$``:
533
+ #
534
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
535
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
536
+ # m[0] # => "HX1138"
537
+ # m.pre_match # => "T"
538
+ #
539
+ # Related: MatchData#post_match.
540
+ #
541
+ def pre_match: () -> String
542
+
543
+ # <!--
544
+ # rdoc-file=re.c
545
+ # - regexp -> regexp
546
+ # -->
547
+ # Returns the regexp that produced the match:
548
+ #
549
+ # m = /a.*b/.match("abc") # => #<MatchData "ab">
550
+ # m.regexp # => /a.*b/
551
+ #
552
+ def regexp: () -> Regexp
553
+
554
+ # <!--
555
+ # rdoc-file=re.c
556
+ # - size -> integer
557
+ # -->
558
+ # Returns size of the match array:
559
+ #
560
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
561
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
562
+ # m.size # => 5
563
+ #
564
+ def size: () -> Integer
565
+
566
+ # <!--
567
+ # rdoc-file=re.c
568
+ # - string -> string
569
+ # -->
570
+ # Returns the target string if it was frozen; otherwise, returns a frozen copy
571
+ # of the target string:
572
+ #
573
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
574
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
575
+ # m.string # => "THX1138."
576
+ #
577
+ def string: () -> String
578
+
579
+ # <!--
580
+ # rdoc-file=re.c
581
+ # - to_a -> array
582
+ # -->
583
+ # Returns the array of matches:
584
+ #
585
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
586
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
587
+ # m.to_a # => ["HX1138", "H", "X", "113", "8"]
588
+ #
589
+ # Related: MatchData#captures.
590
+ #
591
+ def to_a: () -> Array[String?]
592
+
593
+ # <!--
594
+ # rdoc-file=re.c
595
+ # - to_s -> string
596
+ # -->
597
+ # Returns the matched string:
598
+ #
599
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138.")
600
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
601
+ # m.to_s # => "HX1138"
602
+ #
603
+ # m = /(?<foo>.)(.)(?<bar>.+)/.match("hoge")
604
+ # # => #<MatchData "hoge" foo:"h" bar:"ge">
605
+ # m.to_s # => "hoge"
606
+ #
607
+ # Related: MatchData.inspect.
608
+ #
609
+ def to_s: () -> String
610
+
611
+ # <!--
612
+ # rdoc-file=re.c
613
+ # - values_at(*indexes) -> array
614
+ # -->
615
+ # Returns match and captures at the given `indexes`, which may include any
616
+ # mixture of:
617
+ #
618
+ # * Integers.
619
+ # * Ranges.
620
+ # * Names (strings and symbols).
621
+ #
622
+ # Examples:
623
+ #
624
+ # m = /(.)(.)(\d+)(\d)/.match("THX1138: The Movie")
625
+ # # => #<MatchData "HX1138" 1:"H" 2:"X" 3:"113" 4:"8">
626
+ # m.values_at(0, 2, -2) # => ["HX1138", "X", "113"]
627
+ # m.values_at(1..2, -1) # => ["H", "X", "8"]
628
+ #
629
+ # m = /(?<a>\d+) *(?<op>[+\-*\/]) *(?<b>\d+)/.match("1 + 2")
630
+ # # => #<MatchData "1 + 2" a:"1" op:"+" b:"2">
631
+ # m.values_at(0, 1..2, :a, :b, :op)
632
+ # # => ["1 + 2", "1", "+", "1", "2", "+"]
633
+ #
634
+ def values_at: (*capture | range[int?] backrefs) -> Array[String?]
635
+ end