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,582 @@
1
+ # <!-- rdoc-file=lib/uri/common.rb -->
2
+ # Base class for all URI exceptions.
3
+ #
4
+ class URI::Error < StandardError
5
+ end
6
+
7
+ # <!-- rdoc-file=lib/uri/common.rb -->
8
+ # Not a URI.
9
+ #
10
+ class URI::InvalidURIError < URI::Error
11
+ end
12
+
13
+ # <!-- rdoc-file=lib/uri/common.rb -->
14
+ # Not a URI component.
15
+ #
16
+ class URI::InvalidComponentError < URI::Error
17
+ end
18
+
19
+ # <!-- rdoc-file=lib/uri/common.rb -->
20
+ # URI is valid, bad usage is not.
21
+ #
22
+ class URI::BadURIError < URI::Error
23
+ end
24
+
25
+ # <!-- rdoc-file=lib/uri.rb -->
26
+ # URI is a module providing classes to handle Uniform Resource Identifiers
27
+ # ([RFC2396](https://www.rfc-editor.org/rfc/rfc2396)).
28
+ #
29
+ # ## Features
30
+ #
31
+ # * Uniform way of handling URIs.
32
+ # * Flexibility to introduce custom URI schemes.
33
+ # * Flexibility to have an alternate URI::Parser (or just different patterns
34
+ # and regexp's).
35
+ #
36
+ # ## Basic example
37
+ #
38
+ # require 'uri'
39
+ #
40
+ # uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")
41
+ # #=> #<URI::HTTP http://foo.com/posts?id=30&limit=5#time=1305298413>
42
+ #
43
+ # uri.scheme #=> "http"
44
+ # uri.host #=> "foo.com"
45
+ # uri.path #=> "/posts"
46
+ # uri.query #=> "id=30&limit=5"
47
+ # uri.fragment #=> "time=1305298413"
48
+ #
49
+ # uri.to_s #=> "http://foo.com/posts?id=30&limit=5#time=1305298413"
50
+ #
51
+ # ## Adding custom URIs
52
+ #
53
+ # module URI
54
+ # class RSYNC < Generic
55
+ # DEFAULT_PORT = 873
56
+ # end
57
+ # register_scheme 'RSYNC', RSYNC
58
+ # end
59
+ # #=> URI::RSYNC
60
+ #
61
+ # URI.scheme_list
62
+ # #=> {"FILE"=>URI::File, "FTP"=>URI::FTP, "HTTP"=>URI::HTTP,
63
+ # # "HTTPS"=>URI::HTTPS, "LDAP"=>URI::LDAP, "LDAPS"=>URI::LDAPS,
64
+ # # "MAILTO"=>URI::MailTo, "RSYNC"=>URI::RSYNC}
65
+ #
66
+ # uri = URI("rsync://rsync.foo.com")
67
+ # #=> #<URI::RSYNC rsync://rsync.foo.com>
68
+ #
69
+ # ## RFC References
70
+ #
71
+ # A good place to view an RFC spec is http://www.ietf.org/rfc.html.
72
+ #
73
+ # Here is a list of all related RFC's:
74
+ # * [RFC822](https://www.rfc-editor.org/rfc/rfc822)
75
+ # * [RFC1738](https://www.rfc-editor.org/rfc/rfc1738)
76
+ # * [RFC2255](https://www.rfc-editor.org/rfc/rfc2255)
77
+ # * [RFC2368](https://www.rfc-editor.org/rfc/rfc2368)
78
+ # * [RFC2373](https://www.rfc-editor.org/rfc/rfc2373)
79
+ # * [RFC2396](https://www.rfc-editor.org/rfc/rfc2396)
80
+ # * [RFC2732](https://www.rfc-editor.org/rfc/rfc2732)
81
+ # * [RFC3986](https://www.rfc-editor.org/rfc/rfc3986)
82
+ #
83
+ # ## Class tree
84
+ #
85
+ # * URI::Generic (in uri/generic.rb)
86
+ # * URI::File - (in uri/file.rb)
87
+ # * URI::FTP - (in uri/ftp.rb)
88
+ # * URI::HTTP - (in uri/http.rb)
89
+ # * URI::HTTPS - (in uri/https.rb)
90
+ # * URI::LDAP - (in uri/ldap.rb)
91
+ # * URI::LDAPS - (in uri/ldaps.rb)
92
+ # * URI::MailTo - (in uri/mailto.rb)
93
+ # * URI::Parser - (in uri/common.rb)
94
+ # * URI::REGEXP - (in uri/common.rb)
95
+ # * URI::REGEXP::PATTERN - (in uri/common.rb)
96
+ # * URI::Util - (in uri/common.rb)
97
+ # * URI::Error - (in uri/common.rb)
98
+ # * URI::InvalidURIError - (in uri/common.rb)
99
+ # * URI::InvalidComponentError - (in uri/common.rb)
100
+ # * URI::BadURIError - (in uri/common.rb)
101
+ #
102
+ # ## Copyright Info
103
+ #
104
+ # Author
105
+ # : Akira Yamada <akira@ruby-lang.org>
106
+ #
107
+ # Documentation
108
+ # : Akira Yamada <akira@ruby-lang.org> Dmitry V. Sabanin <sdmitry@lrn.ru>
109
+ # Vincent Batts <vbatts@hashbangbash.com>
110
+ #
111
+ # License
112
+ # : Copyright (c) 2001 akira yamada <akira@ruby-lang.org> You can redistribute
113
+ # it and/or modify it under the same term as Ruby.
114
+ #
115
+ module URI
116
+ include URI::RFC2396_REGEXP
117
+
118
+ # <!--
119
+ # rdoc-file=lib/uri/common.rb
120
+ # - decode_www_form(str, enc=Encoding::UTF_8, separator: '&', use__charset_: false, isindex: false)
121
+ # -->
122
+ # Returns name/value pairs derived from the given string `str`, which must be an
123
+ # ASCII string.
124
+ #
125
+ # The method may be used to decode the body of Net::HTTPResponse object `res`
126
+ # for which `res['Content-Type']` is `'application/x-www-form-urlencoded'`.
127
+ #
128
+ # The returned data is an array of 2-element subarrays; each subarray is a
129
+ # name/value pair (both are strings). Each returned string has encoding `enc`,
130
+ # and has had invalid characters removed via
131
+ # [String#scrub](rdoc-ref:String#scrub).
132
+ #
133
+ # A simple example:
134
+ #
135
+ # URI.decode_www_form('foo=0&bar=1&baz')
136
+ # # => [["foo", "0"], ["bar", "1"], ["baz", ""]]
137
+ #
138
+ # The returned strings have certain conversions, similar to those performed in
139
+ # URI.decode_www_form_component:
140
+ #
141
+ # URI.decode_www_form('f%23o=%2F&b-r=%24&b+z=%40')
142
+ # # => [["f#o", "/"], ["b-r", "$"], ["b z", "@"]]
143
+ #
144
+ # The given string may contain consecutive separators:
145
+ #
146
+ # URI.decode_www_form('foo=0&&bar=1&&baz=2')
147
+ # # => [["foo", "0"], ["", ""], ["bar", "1"], ["", ""], ["baz", "2"]]
148
+ #
149
+ # A different separator may be specified:
150
+ #
151
+ # URI.decode_www_form('foo=0--bar=1--baz', separator: '--')
152
+ # # => [["foo", "0"], ["bar", "1"], ["baz", ""]]
153
+ #
154
+ def self.decode_www_form: (String str, ?encoding enc, ?isindex: boolish, ?use__charset_: boolish, ?separator: String) -> Array[[ String, String ]]
155
+
156
+ # <!--
157
+ # rdoc-file=lib/uri/common.rb
158
+ # - decode_www_form_component(str, enc=Encoding::UTF_8)
159
+ # -->
160
+ # Returns a string decoded from the given URL-encoded string `str`.
161
+ #
162
+ # The given string is first encoded as Encoding::ASCII-8BIT (using String#b),
163
+ # then decoded (as below), and finally force-encoded to the given encoding
164
+ # `enc`.
165
+ #
166
+ # The returned string:
167
+ #
168
+ # * Preserves:
169
+ #
170
+ # * Characters `'*'`, `'.'`, `'-'`, and `'_'`.
171
+ # * Character in ranges `'a'..'z'`, `'A'..'Z'`, and `'0'..'9'`.
172
+ #
173
+ # Example:
174
+ #
175
+ # URI.decode_www_form_component('*.-_azAZ09')
176
+ # # => "*.-_azAZ09"
177
+ #
178
+ # * Converts:
179
+ #
180
+ # * Character `'+'` to character `' '`.
181
+ # * Each "percent notation" to an ASCII character.
182
+ #
183
+ # Example:
184
+ #
185
+ # URI.decode_www_form_component('Here+are+some+punctuation+characters%3A+%2C%3B%3F%3A')
186
+ # # => "Here are some punctuation characters: ,;?:"
187
+ #
188
+ # Related: URI.decode_uri_component (preserves `'+'`).
189
+ #
190
+ def self.decode_www_form_component: (String str, ?encoding enc) -> String
191
+
192
+ # <!--
193
+ # rdoc-file=lib/uri/common.rb
194
+ # - encode_www_form(enum, enc=nil)
195
+ # -->
196
+ # Returns a URL-encoded string derived from the given
197
+ # [Enumerable](rdoc-ref:Enumerable@Enumerable+in+Ruby+Classes) `enum`.
198
+ #
199
+ # The result is suitable for use as form data for an HTTP request whose
200
+ # `Content-Type` is `'application/x-www-form-urlencoded'`.
201
+ #
202
+ # The returned string consists of the elements of `enum`, each converted to one
203
+ # or more URL-encoded strings, and all joined with character `'&'`.
204
+ #
205
+ # Simple examples:
206
+ #
207
+ # URI.encode_www_form([['foo', 0], ['bar', 1], ['baz', 2]])
208
+ # # => "foo=0&bar=1&baz=2"
209
+ # URI.encode_www_form({foo: 0, bar: 1, baz: 2})
210
+ # # => "foo=0&bar=1&baz=2"
211
+ #
212
+ # The returned string is formed using method URI.encode_www_form_component,
213
+ # which converts certain characters:
214
+ #
215
+ # URI.encode_www_form('f#o': '/', 'b-r': '$', 'b z': '@')
216
+ # # => "f%23o=%2F&b-r=%24&b+z=%40"
217
+ #
218
+ # When `enum` is Array-like, each element `ele` is converted to a field:
219
+ #
220
+ # * If `ele` is an array of two or more elements, the field is formed from its
221
+ # first two elements (and any additional elements are ignored):
222
+ #
223
+ # name = URI.encode_www_form_component(ele[0], enc)
224
+ # value = URI.encode_www_form_component(ele[1], enc)
225
+ # "#{name}=#{value}"
226
+ #
227
+ # Examples:
228
+ #
229
+ # URI.encode_www_form([%w[foo bar], %w[baz bat bah]])
230
+ # # => "foo=bar&baz=bat"
231
+ # URI.encode_www_form([['foo', 0], ['bar', :baz, 'bat']])
232
+ # # => "foo=0&bar=baz"
233
+ #
234
+ # * If `ele` is an array of one element, the field is formed from `ele[0]`:
235
+ #
236
+ # URI.encode_www_form_component(ele[0])
237
+ #
238
+ # Example:
239
+ #
240
+ # URI.encode_www_form([['foo'], [:bar], [0]])
241
+ # # => "foo&bar&0"
242
+ #
243
+ # * Otherwise the field is formed from `ele`:
244
+ #
245
+ # URI.encode_www_form_component(ele)
246
+ #
247
+ # Example:
248
+ #
249
+ # URI.encode_www_form(['foo', :bar, 0])
250
+ # # => "foo&bar&0"
251
+ #
252
+ # The elements of an Array-like `enum` may be mixture:
253
+ #
254
+ # URI.encode_www_form([['foo', 0], ['bar', 1, 2], ['baz'], :bat])
255
+ # # => "foo=0&bar=1&baz&bat"
256
+ #
257
+ # When `enum` is Hash-like, each `key`/`value` pair is converted to one or more
258
+ # fields:
259
+ #
260
+ # * If `value` is
261
+ # [Array-convertible](rdoc-ref:implicit_conversion.rdoc@Array-Convertible+Ob
262
+ # jects), each element `ele` in `value` is paired with `key` to form a
263
+ # field:
264
+ #
265
+ # name = URI.encode_www_form_component(key, enc)
266
+ # value = URI.encode_www_form_component(ele, enc)
267
+ # "#{name}=#{value}"
268
+ #
269
+ # Example:
270
+ #
271
+ # URI.encode_www_form({foo: [:bar, 1], baz: [:bat, :bam, 2]})
272
+ # # => "foo=bar&foo=1&baz=bat&baz=bam&baz=2"
273
+ #
274
+ # * Otherwise, `key` and `value` are paired to form a field:
275
+ #
276
+ # name = URI.encode_www_form_component(key, enc)
277
+ # value = URI.encode_www_form_component(value, enc)
278
+ # "#{name}=#{value}"
279
+ #
280
+ # Example:
281
+ #
282
+ # URI.encode_www_form({foo: 0, bar: 1, baz: 2})
283
+ # # => "foo=0&bar=1&baz=2"
284
+ #
285
+ # The elements of a Hash-like `enum` may be mixture:
286
+ #
287
+ # URI.encode_www_form({foo: [0, 1], bar: 2})
288
+ # # => "foo=0&foo=1&bar=2"
289
+ #
290
+ def self.encode_www_form: (Enumerable[[ _ToS, _ToS ]] enum, ?encoding? enc) -> String
291
+
292
+ # <!--
293
+ # rdoc-file=lib/uri/common.rb
294
+ # - encode_www_form_component(str, enc=nil)
295
+ # -->
296
+ # Returns a URL-encoded string derived from the given string `str`.
297
+ #
298
+ # The returned string:
299
+ #
300
+ # * Preserves:
301
+ #
302
+ # * Characters `'*'`, `'.'`, `'-'`, and `'_'`.
303
+ # * Character in ranges `'a'..'z'`, `'A'..'Z'`, and `'0'..'9'`.
304
+ #
305
+ # Example:
306
+ #
307
+ # URI.encode_www_form_component('*.-_azAZ09')
308
+ # # => "*.-_azAZ09"
309
+ #
310
+ # * Converts:
311
+ #
312
+ # * Character `' '` to character `'+'`.
313
+ # * Any other character to "percent notation"; the percent notation for
314
+ # character *c* is `'%%%X' % c.ord`.
315
+ #
316
+ # Example:
317
+ #
318
+ # URI.encode_www_form_component('Here are some punctuation characters: ,;?:')
319
+ # # => "Here+are+some+punctuation+characters%3A+%2C%3B%3F%3A"
320
+ #
321
+ # Encoding:
322
+ #
323
+ # * If `str` has encoding Encoding::ASCII_8BIT, argument `enc` is ignored.
324
+ # * Otherwise `str` is converted first to Encoding::UTF_8 (with suitable
325
+ # character replacements), and then to encoding `enc`.
326
+ #
327
+ # In either case, the returned string has forced encoding Encoding::US_ASCII.
328
+ #
329
+ # Related: URI.encode_uri_component (encodes `' '` as `'%20'`).
330
+ #
331
+ def self.encode_www_form_component: (_ToS str, ?encoding? enc) -> String
332
+
333
+ # <!--
334
+ # rdoc-file=lib/uri/common.rb
335
+ # - extract(str, schemes = nil, &block)
336
+ # -->
337
+ # ## Synopsis
338
+ #
339
+ # URI::extract(str[, schemes][,&blk])
340
+ #
341
+ # ## Args
342
+ #
343
+ # `str`
344
+ # : String to extract URIs from.
345
+ # `schemes`
346
+ # : Limit URI matching to specific schemes.
347
+ #
348
+ #
349
+ # ## Description
350
+ #
351
+ # Extracts URIs from a string. If block given, iterates through all matched
352
+ # URIs. Returns nil if block given or array with matches.
353
+ #
354
+ # ## Usage
355
+ #
356
+ # require "uri"
357
+ #
358
+ # URI.extract("text here http://foo.example.org/bla and here mailto:test@example.com and here also.")
359
+ # # => ["http://foo.example.com/bla", "mailto:test@example.com"]
360
+ #
361
+ def self.extract: (String str, ?Array[String] schemes) -> Array[String]
362
+ | (String str, ?Array[String] schemes) { (String) -> void } -> nil
363
+
364
+ def self.get_encoding: (String label) -> Encoding?
365
+
366
+ # <!--
367
+ # rdoc-file=lib/uri/common.rb
368
+ # - join(*str)
369
+ # -->
370
+ # Merges the given URI strings `str` per [RFC
371
+ # 2396](https://www.rfc-editor.org/rfc/rfc2396.html).
372
+ #
373
+ # Each string in `str` is converted to an [RFC3986
374
+ # URI](https://www.rfc-editor.org/rfc/rfc3986.html) before being merged.
375
+ #
376
+ # Examples:
377
+ #
378
+ # URI.join("http://example.com/","main.rbx")
379
+ # # => #<URI::HTTP http://example.com/main.rbx>
380
+ #
381
+ # URI.join('http://example.com', 'foo')
382
+ # # => #<URI::HTTP http://example.com/foo>
383
+ #
384
+ # URI.join('http://example.com', '/foo', '/bar')
385
+ # # => #<URI::HTTP http://example.com/bar>
386
+ #
387
+ # URI.join('http://example.com', '/foo', 'bar')
388
+ # # => #<URI::HTTP http://example.com/bar>
389
+ #
390
+ # URI.join('http://example.com', '/foo/', 'bar')
391
+ # # => #<URI::HTTP http://example.com/foo/bar>
392
+ #
393
+ def self.join: (_ToStr | URI::Generic str, *_ToStr | URI::Generic strs) -> URI::Generic
394
+
395
+ # <!--
396
+ # rdoc-file=lib/uri/common.rb
397
+ # - parse(uri)
398
+ # -->
399
+ # Returns a new URI object constructed from the given string `uri`:
400
+ #
401
+ # URI.parse('https://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top')
402
+ # # => #<URI::HTTPS https://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top>
403
+ # URI.parse('http://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top')
404
+ # # => #<URI::HTTP http://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top>
405
+ #
406
+ # It's recommended to first ::escape string `uri` if it may contain invalid URI
407
+ # characters.
408
+ #
409
+ def self.parse: (_ToStr uri) -> (File | FTP | HTTP | HTTPS | LDAP | LDAPS | MailTo | WS | WSS | Generic)
410
+
411
+ # <!--
412
+ # rdoc-file=lib/uri/common.rb
413
+ # - regexp(schemes = nil)
414
+ # -->
415
+ # ## Synopsis
416
+ #
417
+ # URI::regexp([match_schemes])
418
+ #
419
+ # ## Args
420
+ #
421
+ # `match_schemes`
422
+ # : Array of schemes. If given, resulting regexp matches to URIs whose scheme
423
+ # is one of the match_schemes.
424
+ #
425
+ #
426
+ # ## Description
427
+ #
428
+ # Returns a Regexp object which matches to URI-like strings. The Regexp object
429
+ # returned by this method includes arbitrary number of capture group
430
+ # (parentheses). Never rely on its number.
431
+ #
432
+ # ## Usage
433
+ #
434
+ # require 'uri'
435
+ #
436
+ # # extract first URI from html_string
437
+ # html_string.slice(URI.regexp)
438
+ #
439
+ # # remove ftp URIs
440
+ # html_string.sub(URI.regexp(['ftp']), '')
441
+ #
442
+ # # You should not rely on the number of parentheses
443
+ # html_string.scan(URI.regexp) do |*matches|
444
+ # p $&
445
+ # end
446
+ #
447
+ def self.regexp: (?Array[String]? schemes) -> Regexp
448
+
449
+ # <!--
450
+ # rdoc-file=lib/uri/common.rb
451
+ # - scheme_list()
452
+ # -->
453
+ # Returns a hash of the defined schemes:
454
+ #
455
+ # URI.scheme_list
456
+ # # =>
457
+ # {"MAILTO"=>URI::MailTo,
458
+ # "LDAPS"=>URI::LDAPS,
459
+ # "WS"=>URI::WS,
460
+ # "HTTP"=>URI::HTTP,
461
+ # "HTTPS"=>URI::HTTPS,
462
+ # "LDAP"=>URI::LDAP,
463
+ # "FILE"=>URI::File,
464
+ # "FTP"=>URI::FTP}
465
+ #
466
+ # Related: URI.register_scheme.
467
+ #
468
+ def self.scheme_list: () -> Hash[String, Class]
469
+
470
+ # <!--
471
+ # rdoc-file=lib/uri/common.rb
472
+ # - for(scheme, *arguments, default: Generic)
473
+ # -->
474
+ # Returns a new object constructed from the given `scheme`, `arguments`, and
475
+ # `default`:
476
+ #
477
+ # * The new object is an instance of `URI.scheme_list[scheme.upcase]`.
478
+ # * The object is initialized by calling the class initializer using `scheme`
479
+ # and `arguments`. See URI::Generic.new.
480
+ #
481
+ # Examples:
482
+ #
483
+ # values = ['john.doe', 'www.example.com', '123', nil, '/forum/questions/', nil, 'tag=networking&order=newest', 'top']
484
+ # URI.for('https', *values)
485
+ # # => #<URI::HTTPS https://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top>
486
+ # URI.for('foo', *values, default: URI::HTTP)
487
+ # # => #<URI::HTTP foo://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top>
488
+ #
489
+ def self.for: (String scheme, *untyped arguments, ?default: Class) -> (File | FTP | HTTP | HTTPS | LDAP | LDAPS | MailTo | WS | WSS | Generic)
490
+
491
+ # <!--
492
+ # rdoc-file=lib/uri/common.rb
493
+ # - split(uri)
494
+ # -->
495
+ # Returns a 9-element array representing the parts of the URI formed from the
496
+ # string `uri`; each array element is a string or `nil`:
497
+ #
498
+ # names = %w[scheme userinfo host port registry path opaque query fragment]
499
+ # values = URI.split('https://john.doe@www.example.com:123/forum/questions/?tag=networking&order=newest#top')
500
+ # names.zip(values)
501
+ # # =>
502
+ # [["scheme", "https"],
503
+ # ["userinfo", "john.doe"],
504
+ # ["host", "www.example.com"],
505
+ # ["port", "123"],
506
+ # ["registry", nil],
507
+ # ["path", "/forum/questions/"],
508
+ # ["opaque", nil],
509
+ # ["query", "tag=networking&order=newest"],
510
+ # ["fragment", "top"]]
511
+ #
512
+ def self.split: (_ToStr uri) -> [ String?, String?, String?, String?, nil, String?, String?, String?, String? ]
513
+ end
514
+
515
+ URI::ABS_PATH: Regexp
516
+
517
+ URI::ABS_URI: Regexp
518
+
519
+ URI::ABS_URI_REF: Regexp
520
+
521
+ URI::DEFAULT_PARSER: URI::RFC2396_Parser
522
+
523
+ URI::ESCAPED: Regexp
524
+
525
+ URI::FRAGMENT: Regexp
526
+
527
+ URI::HOST: Regexp
528
+
529
+ URI::OPAQUE: Regexp
530
+
531
+ URI::PORT: Regexp
532
+
533
+ URI::QUERY: Regexp
534
+
535
+ URI::REGISTRY: Regexp
536
+
537
+ URI::REL_PATH: Regexp
538
+
539
+ URI::REL_URI: Regexp
540
+
541
+ URI::REL_URI_REF: Regexp
542
+
543
+ URI::RFC3986_PARSER: URI::RFC3986_Parser
544
+
545
+ URI::SCHEME: Regexp
546
+
547
+ URI::TBLDECWWWCOMP_: Hash[String, String]
548
+
549
+ URI::TBLENCWWWCOMP_: Hash[String, String]
550
+
551
+ URI::UNSAFE: Regexp
552
+
553
+ URI::URI_REF: Regexp
554
+
555
+ URI::USERINFO: Regexp
556
+
557
+ URI::VERSION: String
558
+
559
+ URI::VERSION_CODE: String
560
+
561
+ URI::WEB_ENCODINGS_: Hash[String, String]
562
+
563
+ %a{annotate:rdoc:skip}
564
+ module Kernel
565
+ private
566
+
567
+ # <!--
568
+ # rdoc-file=lib/uri/common.rb
569
+ # - URI(uri)
570
+ # -->
571
+ # Returns a URI object derived from the given `uri`, which may be a URI string
572
+ # or an existing URI object:
573
+ #
574
+ # # Returns a new URI.
575
+ # uri = URI('http://github.com/ruby/ruby')
576
+ # # => #<URI::HTTP http://github.com/ruby/ruby>
577
+ # # Returns the given URI.
578
+ # URI(uri)
579
+ # # => #<URI::HTTP http://github.com/ruby/ruby>
580
+ #
581
+ def self?.URI: (URI::Generic | String uri) -> URI::Generic
582
+ end
@@ -0,0 +1,118 @@
1
+ %a{annotate:rdoc:skip}
2
+ module URI
3
+ # <!-- rdoc-file=lib/uri/file.rb -->
4
+ # The "file" URI is defined by RFC8089.
5
+ #
6
+ class File < Generic
7
+ # <!-- rdoc-file=lib/uri/file.rb -->
8
+ # A Default port of nil for URI::File.
9
+ #
10
+ DEFAULT_PORT: Integer?
11
+
12
+ # <!-- rdoc-file=lib/uri/file.rb -->
13
+ # An Array of the available components for URI::File.
14
+ #
15
+ COMPONENT: Array[Symbol]
16
+
17
+ # <!--
18
+ # rdoc-file=lib/uri/file.rb
19
+ # - build(args)
20
+ # -->
21
+ # ## Description
22
+ #
23
+ # Creates a new URI::File object from components, with syntax checking.
24
+ #
25
+ # The components accepted are `host` and `path`.
26
+ #
27
+ # The components should be provided either as an Array, or as a Hash with keys
28
+ # formed by preceding the component names with a colon.
29
+ #
30
+ # If an Array is used, the components must be passed in the order `[host,
31
+ # path]`.
32
+ #
33
+ # A path from e.g. the File class should be escaped before being passed.
34
+ #
35
+ # Examples:
36
+ #
37
+ # require 'uri'
38
+ #
39
+ # uri1 = URI::File.build(['host.example.com', '/path/file.zip'])
40
+ # uri1.to_s # => "file://host.example.com/path/file.zip"
41
+ #
42
+ # uri2 = URI::File.build({:host => 'host.example.com',
43
+ # :path => '/ruby/src'})
44
+ # uri2.to_s # => "file://host.example.com/ruby/src"
45
+ #
46
+ # uri3 = URI::File.build({:path => URI::escape('/path/my file.txt')})
47
+ # uri3.to_s # => "file:///path/my%20file.txt"
48
+ #
49
+ def self.build: (Array[String] args) -> URI::File
50
+ | ({ host: String?, path: String? }) -> URI::File
51
+
52
+ # <!--
53
+ # rdoc-file=lib/uri/file.rb
54
+ # - set_host(v)
55
+ # -->
56
+ # Protected setter for the host component `v`.
57
+ #
58
+ # See also URI::Generic.host=.
59
+ #
60
+ def set_host: (String? v) -> String
61
+
62
+ # <!--
63
+ # rdoc-file=lib/uri/file.rb
64
+ # - set_port(v)
65
+ # -->
66
+ # do nothing
67
+ #
68
+ def set_port: (Integer v) -> nil
69
+
70
+ # <!--
71
+ # rdoc-file=lib/uri/file.rb
72
+ # - check_userinfo(user)
73
+ # -->
74
+ # raise InvalidURIError
75
+ #
76
+ def check_userinfo: (String user) -> nil
77
+
78
+ # <!--
79
+ # rdoc-file=lib/uri/file.rb
80
+ # - check_user(user)
81
+ # -->
82
+ # raise InvalidURIError
83
+ #
84
+ def check_user: (String user) -> nil
85
+
86
+ # <!--
87
+ # rdoc-file=lib/uri/file.rb
88
+ # - check_password(user)
89
+ # -->
90
+ # raise InvalidURIError
91
+ #
92
+ def check_password: (String user) -> nil
93
+
94
+ # <!--
95
+ # rdoc-file=lib/uri/file.rb
96
+ # - set_userinfo(v)
97
+ # -->
98
+ # do nothing
99
+ #
100
+ def set_userinfo: (String v) -> nil
101
+
102
+ # <!--
103
+ # rdoc-file=lib/uri/file.rb
104
+ # - set_user(v)
105
+ # -->
106
+ # do nothing
107
+ #
108
+ def set_user: (String v) -> nil
109
+
110
+ # <!--
111
+ # rdoc-file=lib/uri/file.rb
112
+ # - set_password(v)
113
+ # -->
114
+ # do nothing
115
+ #
116
+ def set_password: (String v) -> nil
117
+ end
118
+ end
@@ -0,0 +1,13 @@
1
+ %a{annotate:rdoc:skip}
2
+ module URI
3
+ # <!-- rdoc-file=lib/uri/ftp.rb -->
4
+ # FTP URI syntax is defined by RFC1738 section 3.2.
5
+ #
6
+ # This class will be redesigned because of difference of implementations; the
7
+ # structure of its path. draft-hoffman-ftp-uri-04 is a draft but it is a good
8
+ # summary about the de facto spec.
9
+ # https://datatracker.ietf.org/doc/html/draft-hoffman-ftp-uri-04
10
+ #
11
+ class FTP < Generic
12
+ end
13
+ end