rbs 4.1.0.pre.2-java

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 (574) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +75 -0
  3. data/.clangd +2 -0
  4. data/.github/dependabot.yml +24 -0
  5. data/.github/workflows/bundle-update.yml +63 -0
  6. data/.github/workflows/c-check.yml +61 -0
  7. data/.github/workflows/comments.yml +37 -0
  8. data/.github/workflows/dependabot.yml +30 -0
  9. data/.github/workflows/jruby.yml +67 -0
  10. data/.github/workflows/milestone.yml +83 -0
  11. data/.github/workflows/ruby.yml +158 -0
  12. data/.github/workflows/rust.yml +184 -0
  13. data/.github/workflows/truffleruby.yml +54 -0
  14. data/.github/workflows/typecheck.yml +39 -0
  15. data/.github/workflows/wasm.yml +53 -0
  16. data/.github/workflows/windows.yml +49 -0
  17. data/.gitignore +38 -0
  18. data/.rubocop.yml +72 -0
  19. data/BSDL +22 -0
  20. data/CHANGELOG.md +2292 -0
  21. data/COPYING +56 -0
  22. data/README.md +240 -0
  23. data/Rakefile +869 -0
  24. data/Steepfile +53 -0
  25. data/config.yml +913 -0
  26. data/core/array.rbs +4142 -0
  27. data/core/basic_object.rbs +376 -0
  28. data/core/binding.rbs +148 -0
  29. data/core/builtin.rbs +278 -0
  30. data/core/class.rbs +223 -0
  31. data/core/comparable.rbs +192 -0
  32. data/core/complex.rbs +812 -0
  33. data/core/constants.rbs +96 -0
  34. data/core/data.rbs +415 -0
  35. data/core/dir.rbs +993 -0
  36. data/core/encoding.rbs +1368 -0
  37. data/core/enumerable.rbs +2506 -0
  38. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  39. data/core/enumerator/product.rbs +92 -0
  40. data/core/enumerator.rbs +705 -0
  41. data/core/env.rbs +6 -0
  42. data/core/errno.rbs +682 -0
  43. data/core/errors.rbs +789 -0
  44. data/core/exception.rbs +485 -0
  45. data/core/false_class.rbs +82 -0
  46. data/core/fiber.rbs +570 -0
  47. data/core/fiber_error.rbs +11 -0
  48. data/core/file.rbs +2045 -0
  49. data/core/file_constants.rbs +463 -0
  50. data/core/file_stat.rbs +534 -0
  51. data/core/file_test.rbs +331 -0
  52. data/core/float.rbs +1316 -0
  53. data/core/gc.rbs +788 -0
  54. data/core/global_variables.rbs +184 -0
  55. data/core/hash.rbs +2183 -0
  56. data/core/integer.rbs +1374 -0
  57. data/core/io/buffer.rbs +995 -0
  58. data/core/io/wait.rbs +48 -0
  59. data/core/io.rbs +3472 -0
  60. data/core/kernel.rbs +3172 -0
  61. data/core/marshal.rbs +207 -0
  62. data/core/match_data.rbs +637 -0
  63. data/core/math.rbs +770 -0
  64. data/core/method.rbs +422 -0
  65. data/core/module.rbs +1856 -0
  66. data/core/nil_class.rbs +210 -0
  67. data/core/numeric.rbs +832 -0
  68. data/core/object.rbs +108 -0
  69. data/core/object_space/weak_key_map.rbs +166 -0
  70. data/core/object_space.rbs +197 -0
  71. data/core/pathname.rbs +1322 -0
  72. data/core/proc.rbs +905 -0
  73. data/core/process.rbs +2316 -0
  74. data/core/ractor.rbs +924 -0
  75. data/core/random.rbs +255 -0
  76. data/core/range.rbs +1209 -0
  77. data/core/rational.rbs +502 -0
  78. data/core/rb_config.rbs +88 -0
  79. data/core/rbs/ops.rbs +154 -0
  80. data/core/rbs/unnamed/argf.rbs +1236 -0
  81. data/core/rbs/unnamed/env_class.rbs +1214 -0
  82. data/core/rbs/unnamed/main_class.rbs +123 -0
  83. data/core/rbs/unnamed/random.rbs +186 -0
  84. data/core/refinement.rbs +59 -0
  85. data/core/regexp.rbs +1974 -0
  86. data/core/ruby.rbs +53 -0
  87. data/core/ruby_vm.rbs +809 -0
  88. data/core/rubygems/basic_specification.rbs +6 -0
  89. data/core/rubygems/config_file.rbs +38 -0
  90. data/core/rubygems/dependency_installer.rbs +6 -0
  91. data/core/rubygems/errors.rbs +109 -0
  92. data/core/rubygems/installer.rbs +15 -0
  93. data/core/rubygems/path_support.rbs +6 -0
  94. data/core/rubygems/platform.rbs +7 -0
  95. data/core/rubygems/request_set.rbs +49 -0
  96. data/core/rubygems/requirement.rbs +148 -0
  97. data/core/rubygems/rubygems.rbs +1105 -0
  98. data/core/rubygems/source_list.rbs +15 -0
  99. data/core/rubygems/specification.rbs +23 -0
  100. data/core/rubygems/stream_ui.rbs +5 -0
  101. data/core/rubygems/uninstaller.rbs +10 -0
  102. data/core/rubygems/version.rbs +293 -0
  103. data/core/set.rbs +751 -0
  104. data/core/signal.rbs +110 -0
  105. data/core/string.rbs +5532 -0
  106. data/core/struct.rbs +668 -0
  107. data/core/symbol.rbs +482 -0
  108. data/core/thread.rbs +1826 -0
  109. data/core/thread_group.rbs +79 -0
  110. data/core/time.rbs +1793 -0
  111. data/core/trace_point.rbs +483 -0
  112. data/core/true_class.rbs +98 -0
  113. data/core/unbound_method.rbs +337 -0
  114. data/core/warning.rbs +87 -0
  115. data/docs/CONTRIBUTING.md +107 -0
  116. data/docs/aliases.md +79 -0
  117. data/docs/architecture.md +110 -0
  118. data/docs/collection.md +192 -0
  119. data/docs/config.md +171 -0
  120. data/docs/data_and_struct.md +86 -0
  121. data/docs/encoding.md +56 -0
  122. data/docs/gem.md +56 -0
  123. data/docs/inline.md +634 -0
  124. data/docs/rbs_by_example.md +309 -0
  125. data/docs/repo.md +125 -0
  126. data/docs/rust.md +96 -0
  127. data/docs/sigs.md +167 -0
  128. data/docs/stdlib.md +147 -0
  129. data/docs/syntax.md +940 -0
  130. data/docs/tools.md +17 -0
  131. data/docs/type_fingerprint.md +21 -0
  132. data/docs/wasm_serialization.md +80 -0
  133. data/exe/rbs +7 -0
  134. data/ext/rbs_extension/ast_translation.c +1855 -0
  135. data/ext/rbs_extension/ast_translation.h +41 -0
  136. data/ext/rbs_extension/class_constants.c +187 -0
  137. data/ext/rbs_extension/class_constants.h +104 -0
  138. data/ext/rbs_extension/compat.h +10 -0
  139. data/ext/rbs_extension/extconf.rb +40 -0
  140. data/ext/rbs_extension/legacy_location.c +294 -0
  141. data/ext/rbs_extension/legacy_location.h +82 -0
  142. data/ext/rbs_extension/main.c +613 -0
  143. data/ext/rbs_extension/rbs_extension.h +16 -0
  144. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  145. data/ext/rbs_extension/rbs_string_bridging.h +24 -0
  146. data/goodcheck.yml +91 -0
  147. data/include/rbs/ast.h +1047 -0
  148. data/include/rbs/defines.h +99 -0
  149. data/include/rbs/lexer.h +207 -0
  150. data/include/rbs/location.h +40 -0
  151. data/include/rbs/parser.h +153 -0
  152. data/include/rbs/serialize.h +39 -0
  153. data/include/rbs/string.h +47 -0
  154. data/include/rbs/util/rbs_allocator.h +59 -0
  155. data/include/rbs/util/rbs_assert.h +20 -0
  156. data/include/rbs/util/rbs_buffer.h +83 -0
  157. data/include/rbs/util/rbs_constant_pool.h +155 -0
  158. data/include/rbs/util/rbs_encoding.h +282 -0
  159. data/include/rbs/util/rbs_unescape.h +24 -0
  160. data/include/rbs.h +14 -0
  161. data/lib/rbs/ancestor_graph.rb +92 -0
  162. data/lib/rbs/annotate/annotations.rb +199 -0
  163. data/lib/rbs/annotate/formatter.rb +82 -0
  164. data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
  165. data/lib/rbs/annotate/rdoc_source.rb +131 -0
  166. data/lib/rbs/annotate.rb +8 -0
  167. data/lib/rbs/ast/annotation.rb +29 -0
  168. data/lib/rbs/ast/comment.rb +29 -0
  169. data/lib/rbs/ast/declarations.rb +472 -0
  170. data/lib/rbs/ast/directives.rb +49 -0
  171. data/lib/rbs/ast/members.rb +451 -0
  172. data/lib/rbs/ast/ruby/annotations.rb +451 -0
  173. data/lib/rbs/ast/ruby/comment_block.rb +247 -0
  174. data/lib/rbs/ast/ruby/declarations.rb +291 -0
  175. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  176. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  177. data/lib/rbs/ast/ruby/members.rb +762 -0
  178. data/lib/rbs/ast/type_param.rb +235 -0
  179. data/lib/rbs/ast/visitor.rb +137 -0
  180. data/lib/rbs/buffer.rb +189 -0
  181. data/lib/rbs/builtin_names.rb +58 -0
  182. data/lib/rbs/cli/colored_io.rb +48 -0
  183. data/lib/rbs/cli/diff.rb +84 -0
  184. data/lib/rbs/cli/validate.rb +294 -0
  185. data/lib/rbs/cli.rb +1253 -0
  186. data/lib/rbs/collection/cleaner.rb +38 -0
  187. data/lib/rbs/collection/config/lockfile.rb +92 -0
  188. data/lib/rbs/collection/config/lockfile_generator.rb +269 -0
  189. data/lib/rbs/collection/config.rb +81 -0
  190. data/lib/rbs/collection/installer.rb +32 -0
  191. data/lib/rbs/collection/sources/base.rb +14 -0
  192. data/lib/rbs/collection/sources/git.rb +265 -0
  193. data/lib/rbs/collection/sources/local.rb +81 -0
  194. data/lib/rbs/collection/sources/rubygems.rb +48 -0
  195. data/lib/rbs/collection/sources/stdlib.rb +50 -0
  196. data/lib/rbs/collection/sources.rb +38 -0
  197. data/lib/rbs/collection.rb +16 -0
  198. data/lib/rbs/constant.rb +28 -0
  199. data/lib/rbs/definition.rb +415 -0
  200. data/lib/rbs/definition_builder/ancestor_builder.rb +678 -0
  201. data/lib/rbs/definition_builder/method_builder.rb +295 -0
  202. data/lib/rbs/definition_builder.rb +1054 -0
  203. data/lib/rbs/diff.rb +131 -0
  204. data/lib/rbs/environment/class_entry.rb +69 -0
  205. data/lib/rbs/environment/module_entry.rb +66 -0
  206. data/lib/rbs/environment/use_map.rb +77 -0
  207. data/lib/rbs/environment.rb +1028 -0
  208. data/lib/rbs/environment_loader.rb +167 -0
  209. data/lib/rbs/environment_walker.rb +155 -0
  210. data/lib/rbs/errors.rb +634 -0
  211. data/lib/rbs/factory.rb +18 -0
  212. data/lib/rbs/file_finder.rb +28 -0
  213. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  214. data/lib/rbs/inline_parser.rb +568 -0
  215. data/lib/rbs/location_aux.rb +170 -0
  216. data/lib/rbs/locator.rb +247 -0
  217. data/lib/rbs/method_type.rb +145 -0
  218. data/lib/rbs/namespace.rb +154 -0
  219. data/lib/rbs/parser/lex_result.rb +15 -0
  220. data/lib/rbs/parser/token.rb +23 -0
  221. data/lib/rbs/parser_aux.rb +142 -0
  222. data/lib/rbs/prototype/helpers.rb +197 -0
  223. data/lib/rbs/prototype/node_usage.rb +99 -0
  224. data/lib/rbs/prototype/rb.rb +816 -0
  225. data/lib/rbs/prototype/rbi.rb +625 -0
  226. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  227. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  228. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  229. data/lib/rbs/prototype/runtime.rb +680 -0
  230. data/lib/rbs/repository.rb +127 -0
  231. data/lib/rbs/resolver/constant_resolver.rb +219 -0
  232. data/lib/rbs/resolver/type_name_resolver.rb +167 -0
  233. data/lib/rbs/rewriter.rb +70 -0
  234. data/lib/rbs/sorter.rb +198 -0
  235. data/lib/rbs/source.rb +99 -0
  236. data/lib/rbs/substitution.rb +83 -0
  237. data/lib/rbs/subtractor.rb +204 -0
  238. data/lib/rbs/test/errors.rb +80 -0
  239. data/lib/rbs/test/guaranteed.rb +30 -0
  240. data/lib/rbs/test/hook.rb +212 -0
  241. data/lib/rbs/test/observer.rb +19 -0
  242. data/lib/rbs/test/setup.rb +84 -0
  243. data/lib/rbs/test/setup_helper.rb +50 -0
  244. data/lib/rbs/test/tester.rb +167 -0
  245. data/lib/rbs/test/type_check.rb +457 -0
  246. data/lib/rbs/test.rb +112 -0
  247. data/lib/rbs/type_alias_dependency.rb +100 -0
  248. data/lib/rbs/type_alias_regularity.rb +126 -0
  249. data/lib/rbs/type_name.rb +122 -0
  250. data/lib/rbs/types.rb +1604 -0
  251. data/lib/rbs/unit_test/convertibles.rb +177 -0
  252. data/lib/rbs/unit_test/spy.rb +138 -0
  253. data/lib/rbs/unit_test/type_assertions.rb +383 -0
  254. data/lib/rbs/unit_test/with_aliases.rb +145 -0
  255. data/lib/rbs/unit_test.rb +6 -0
  256. data/lib/rbs/validator.rb +186 -0
  257. data/lib/rbs/variance_calculator.rb +189 -0
  258. data/lib/rbs/vendorer.rb +71 -0
  259. data/lib/rbs/version.rb +5 -0
  260. data/lib/rbs/wasm/deserializer.rb +213 -0
  261. data/lib/rbs/wasm/jars/asm-analysis.jar +0 -0
  262. data/lib/rbs/wasm/jars/asm-commons.jar +0 -0
  263. data/lib/rbs/wasm/jars/asm-tree.jar +0 -0
  264. data/lib/rbs/wasm/jars/asm-util.jar +0 -0
  265. data/lib/rbs/wasm/jars/asm.jar +0 -0
  266. data/lib/rbs/wasm/jars/compiler.jar +0 -0
  267. data/lib/rbs/wasm/jars/log.jar +0 -0
  268. data/lib/rbs/wasm/jars/runtime.jar +0 -0
  269. data/lib/rbs/wasm/jars/wasi.jar +0 -0
  270. data/lib/rbs/wasm/jars/wasm.jar +0 -0
  271. data/lib/rbs/wasm/location.rb +61 -0
  272. data/lib/rbs/wasm/parser.rb +137 -0
  273. data/lib/rbs/wasm/rbs_parser.wasm +0 -0
  274. data/lib/rbs/wasm/runtime.rb +217 -0
  275. data/lib/rbs/wasm/serialization_schema.rb +110 -0
  276. data/lib/rbs/writer.rb +424 -0
  277. data/lib/rbs.rb +117 -0
  278. data/lib/rdoc/discover.rb +20 -0
  279. data/lib/rdoc_plugin/parser.rb +163 -0
  280. data/rbs.gemspec +68 -0
  281. data/schema/annotation.json +14 -0
  282. data/schema/comment.json +26 -0
  283. data/schema/decls.json +326 -0
  284. data/schema/function.json +87 -0
  285. data/schema/location.json +56 -0
  286. data/schema/members.json +266 -0
  287. data/schema/methodType.json +50 -0
  288. data/schema/typeParam.json +52 -0
  289. data/schema/types.json +317 -0
  290. data/sig/ancestor_builder.rbs +163 -0
  291. data/sig/ancestor_graph.rbs +60 -0
  292. data/sig/annotate/annotations.rbs +102 -0
  293. data/sig/annotate/formatter.rbs +24 -0
  294. data/sig/annotate/rdoc_annotater.rbs +85 -0
  295. data/sig/annotate/rdoc_source.rbs +32 -0
  296. data/sig/annotation.rbs +27 -0
  297. data/sig/ast/ruby/annotations.rbs +470 -0
  298. data/sig/ast/ruby/comment_block.rbs +127 -0
  299. data/sig/ast/ruby/declarations.rbs +158 -0
  300. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  301. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  302. data/sig/ast/ruby/members.rbs +198 -0
  303. data/sig/buffer.rbs +108 -0
  304. data/sig/builtin_names.rbs +44 -0
  305. data/sig/cli/colored_io.rbs +15 -0
  306. data/sig/cli/diff.rbs +15 -0
  307. data/sig/cli/validate.rbs +47 -0
  308. data/sig/cli.rbs +89 -0
  309. data/sig/collection/cleaner.rbs +13 -0
  310. data/sig/collection/config/lockfile.rbs +74 -0
  311. data/sig/collection/config/lockfile_generator.rbs +68 -0
  312. data/sig/collection/config.rbs +46 -0
  313. data/sig/collection/installer.rbs +17 -0
  314. data/sig/collection/sources.rbs +214 -0
  315. data/sig/collection.rbs +4 -0
  316. data/sig/comment.rbs +26 -0
  317. data/sig/constant.rbs +21 -0
  318. data/sig/declarations.rbs +274 -0
  319. data/sig/definition.rbs +232 -0
  320. data/sig/definition_builder.rbs +181 -0
  321. data/sig/diff.rbs +28 -0
  322. data/sig/directives.rbs +77 -0
  323. data/sig/environment/class_entry.rbs +50 -0
  324. data/sig/environment/module_entry.rbs +50 -0
  325. data/sig/environment.rbs +286 -0
  326. data/sig/environment_loader.rbs +111 -0
  327. data/sig/environment_walker.rbs +65 -0
  328. data/sig/errors.rbs +408 -0
  329. data/sig/factory.rbs +5 -0
  330. data/sig/file_finder.rbs +28 -0
  331. data/sig/inline_parser/comment_association.rbs +71 -0
  332. data/sig/inline_parser.rbs +126 -0
  333. data/sig/location.rbs +135 -0
  334. data/sig/locator.rbs +56 -0
  335. data/sig/manifest.yaml +5 -0
  336. data/sig/members.rbs +258 -0
  337. data/sig/method_builder.rbs +89 -0
  338. data/sig/method_types.rbs +58 -0
  339. data/sig/namespace.rbs +161 -0
  340. data/sig/parser.rbs +164 -0
  341. data/sig/prototype/helpers.rbs +29 -0
  342. data/sig/prototype/node_usage.rbs +20 -0
  343. data/sig/prototype/rb.rbs +96 -0
  344. data/sig/prototype/rbi.rbs +75 -0
  345. data/sig/prototype/runtime.rbs +182 -0
  346. data/sig/rbs.rbs +21 -0
  347. data/sig/rdoc/rbs.rbs +67 -0
  348. data/sig/repository.rbs +85 -0
  349. data/sig/resolver/constant_resolver.rbs +92 -0
  350. data/sig/resolver/context.rbs +34 -0
  351. data/sig/resolver/type_name_resolver.rbs +61 -0
  352. data/sig/rewriter.rbs +45 -0
  353. data/sig/shims/bundler.rbs +38 -0
  354. data/sig/shims/enumerable.rbs +5 -0
  355. data/sig/shims/rubygems.rbs +19 -0
  356. data/sig/sorter.rbs +41 -0
  357. data/sig/source.rbs +48 -0
  358. data/sig/substitution.rbs +48 -0
  359. data/sig/subtractor.rbs +37 -0
  360. data/sig/test/errors.rbs +52 -0
  361. data/sig/test/guranteed.rbs +9 -0
  362. data/sig/test/type_check.rbs +19 -0
  363. data/sig/test.rbs +82 -0
  364. data/sig/type_alias_dependency.rbs +53 -0
  365. data/sig/type_alias_regularity.rbs +98 -0
  366. data/sig/type_param.rbs +115 -0
  367. data/sig/typename.rbs +89 -0
  368. data/sig/types.rbs +578 -0
  369. data/sig/unit_test/convertibles.rbs +154 -0
  370. data/sig/unit_test/spy.rbs +22 -0
  371. data/sig/unit_test/type_assertions.rbs +211 -0
  372. data/sig/unit_test/with_aliases.rbs +136 -0
  373. data/sig/use_map.rbs +35 -0
  374. data/sig/util.rbs +9 -0
  375. data/sig/validator.rbs +63 -0
  376. data/sig/variance_calculator.rbs +87 -0
  377. data/sig/vendorer.rbs +51 -0
  378. data/sig/version.rbs +3 -0
  379. data/sig/visitor.rbs +47 -0
  380. data/sig/wasm/deserializer.rbs +66 -0
  381. data/sig/wasm/serialization_schema.rbs +13 -0
  382. data/sig/writer.rbs +127 -0
  383. data/src/ast.c +1628 -0
  384. data/src/lexer.c +3217 -0
  385. data/src/lexer.re +155 -0
  386. data/src/lexstate.c +217 -0
  387. data/src/location.c +31 -0
  388. data/src/parser.c +4255 -0
  389. data/src/serialize.c +958 -0
  390. data/src/string.c +41 -0
  391. data/src/util/rbs_allocator.c +162 -0
  392. data/src/util/rbs_assert.c +19 -0
  393. data/src/util/rbs_buffer.c +54 -0
  394. data/src/util/rbs_constant_pool.c +268 -0
  395. data/src/util/rbs_encoding.c +21308 -0
  396. data/src/util/rbs_unescape.c +167 -0
  397. data/stdlib/abbrev/0/abbrev.rbs +66 -0
  398. data/stdlib/abbrev/0/array.rbs +26 -0
  399. data/stdlib/base64/0/base64.rbs +355 -0
  400. data/stdlib/benchmark/0/benchmark.rbs +452 -0
  401. data/stdlib/bigdecimal/0/big_decimal.rbs +1647 -0
  402. data/stdlib/bigdecimal-math/0/big_math.rbs +280 -0
  403. data/stdlib/bigdecimal-math/0/manifest.yaml +2 -0
  404. data/stdlib/cgi/0/core.rbs +911 -0
  405. data/stdlib/cgi/0/manifest.yaml +4 -0
  406. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  407. data/stdlib/coverage/0/coverage.rbs +266 -0
  408. data/stdlib/csv/0/csv.rbs +3776 -0
  409. data/stdlib/csv/0/manifest.yaml +3 -0
  410. data/stdlib/date/0/date.rbs +1598 -0
  411. data/stdlib/date/0/date_time.rbs +617 -0
  412. data/stdlib/date/0/time.rbs +26 -0
  413. data/stdlib/dbm/0/dbm.rbs +421 -0
  414. data/stdlib/delegate/0/delegator.rbs +187 -0
  415. data/stdlib/delegate/0/kernel.rbs +47 -0
  416. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  417. data/stdlib/did_you_mean/0/did_you_mean.rbs +344 -0
  418. data/stdlib/digest/0/digest.rbs +687 -0
  419. data/stdlib/erb/0/erb.rbs +933 -0
  420. data/stdlib/etc/0/etc.rbs +884 -0
  421. data/stdlib/fileutils/0/fileutils.rbs +1753 -0
  422. data/stdlib/find/0/find.rbs +49 -0
  423. data/stdlib/forwardable/0/forwardable.rbs +271 -0
  424. data/stdlib/io-console/0/io-console.rbs +414 -0
  425. data/stdlib/ipaddr/0/ipaddr.rbs +436 -0
  426. data/stdlib/json/0/json.rbs +1963 -0
  427. data/stdlib/kconv/0/kconv.rbs +166 -0
  428. data/stdlib/logger/0/formatter.rbs +45 -0
  429. data/stdlib/logger/0/log_device.rbs +100 -0
  430. data/stdlib/logger/0/logger.rbs +796 -0
  431. data/stdlib/logger/0/manifest.yaml +2 -0
  432. data/stdlib/logger/0/period.rbs +17 -0
  433. data/stdlib/logger/0/severity.rbs +34 -0
  434. data/stdlib/minitest/0/kernel.rbs +42 -0
  435. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +52 -0
  436. data/stdlib/minitest/0/minitest/assertion.rbs +17 -0
  437. data/stdlib/minitest/0/minitest/assertions.rbs +590 -0
  438. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +23 -0
  439. data/stdlib/minitest/0/minitest/bench_spec.rbs +102 -0
  440. data/stdlib/minitest/0/minitest/benchmark.rbs +259 -0
  441. data/stdlib/minitest/0/minitest/composite_reporter.rbs +25 -0
  442. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  443. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  444. data/stdlib/minitest/0/minitest/expectation.rbs +2 -0
  445. data/stdlib/minitest/0/minitest/expectations.rbs +21 -0
  446. data/stdlib/minitest/0/minitest/guard.rbs +64 -0
  447. data/stdlib/minitest/0/minitest/mock.rbs +64 -0
  448. data/stdlib/minitest/0/minitest/parallel/executor.rbs +46 -0
  449. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +5 -0
  450. data/stdlib/minitest/0/minitest/parallel/test.rbs +3 -0
  451. data/stdlib/minitest/0/minitest/parallel.rbs +2 -0
  452. data/stdlib/minitest/0/minitest/pride_io.rbs +62 -0
  453. data/stdlib/minitest/0/minitest/pride_lol.rbs +19 -0
  454. data/stdlib/minitest/0/minitest/progress_reporter.rbs +11 -0
  455. data/stdlib/minitest/0/minitest/reportable.rbs +53 -0
  456. data/stdlib/minitest/0/minitest/reporter.rbs +5 -0
  457. data/stdlib/minitest/0/minitest/result.rbs +28 -0
  458. data/stdlib/minitest/0/minitest/runnable.rbs +163 -0
  459. data/stdlib/minitest/0/minitest/skip.rbs +6 -0
  460. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +48 -0
  461. data/stdlib/minitest/0/minitest/spec/dsl.rbs +129 -0
  462. data/stdlib/minitest/0/minitest/spec.rbs +11 -0
  463. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +81 -0
  464. data/stdlib/minitest/0/minitest/summary_reporter.rbs +18 -0
  465. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +92 -0
  466. data/stdlib/minitest/0/minitest/test.rbs +69 -0
  467. data/stdlib/minitest/0/minitest/unexpected_error.rbs +12 -0
  468. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  469. data/stdlib/minitest/0/minitest/unit/test_case.rbs +3 -0
  470. data/stdlib/minitest/0/minitest/unit.rbs +4 -0
  471. data/stdlib/minitest/0/minitest.rbs +115 -0
  472. data/stdlib/monitor/0/monitor.rbs +363 -0
  473. data/stdlib/mutex_m/0/mutex_m.rbs +104 -0
  474. data/stdlib/net-http/0/manifest.yaml +3 -0
  475. data/stdlib/net-http/0/net-http.rbs +5580 -0
  476. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  477. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  478. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  479. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  480. data/stdlib/nkf/0/nkf.rbs +402 -0
  481. data/stdlib/objspace/0/objspace.rbs +470 -0
  482. data/stdlib/observable/0/observable.rbs +217 -0
  483. data/stdlib/open-uri/0/manifest.yaml +4 -0
  484. data/stdlib/open-uri/0/open-uri.rbs +433 -0
  485. data/stdlib/open3/0/open3.rbs +606 -0
  486. data/stdlib/openssl/0/manifest.yaml +3 -0
  487. data/stdlib/openssl/0/openssl.rbs +12231 -0
  488. data/stdlib/optparse/0/optparse.rbs +1734 -0
  489. data/stdlib/pathname/0/pathname.rbs +36 -0
  490. data/stdlib/pp/0/manifest.yaml +2 -0
  491. data/stdlib/pp/0/pp.rbs +301 -0
  492. data/stdlib/prettyprint/0/prettyprint.rbs +383 -0
  493. data/stdlib/pstore/0/pstore.rbs +608 -0
  494. data/stdlib/psych/0/core_ext.rbs +12 -0
  495. data/stdlib/psych/0/dbm.rbs +237 -0
  496. data/stdlib/psych/0/manifest.yaml +3 -0
  497. data/stdlib/psych/0/psych.rbs +455 -0
  498. data/stdlib/psych/0/store.rbs +57 -0
  499. data/stdlib/pty/0/pty.rbs +240 -0
  500. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  501. data/stdlib/rdoc/0/code_object.rbs +52 -0
  502. data/stdlib/rdoc/0/comment.rbs +61 -0
  503. data/stdlib/rdoc/0/context.rbs +153 -0
  504. data/stdlib/rdoc/0/markup.rbs +117 -0
  505. data/stdlib/rdoc/0/options.rbs +76 -0
  506. data/stdlib/rdoc/0/parser.rbs +56 -0
  507. data/stdlib/rdoc/0/rdoc.rbs +393 -0
  508. data/stdlib/rdoc/0/ri.rbs +17 -0
  509. data/stdlib/rdoc/0/store.rbs +48 -0
  510. data/stdlib/rdoc/0/top_level.rbs +97 -0
  511. data/stdlib/resolv/0/manifest.yaml +3 -0
  512. data/stdlib/resolv/0/resolv.rbs +1787 -0
  513. data/stdlib/ripper/0/ripper.rbs +1654 -0
  514. data/stdlib/securerandom/0/manifest.yaml +2 -0
  515. data/stdlib/securerandom/0/securerandom.rbs +49 -0
  516. data/stdlib/shellwords/0/shellwords.rbs +229 -0
  517. data/stdlib/singleton/0/singleton.rbs +134 -0
  518. data/stdlib/socket/0/addrinfo.rbs +666 -0
  519. data/stdlib/socket/0/basic_socket.rbs +590 -0
  520. data/stdlib/socket/0/constants.rbs +2295 -0
  521. data/stdlib/socket/0/ip_socket.rbs +94 -0
  522. data/stdlib/socket/0/socket.rbs +4170 -0
  523. data/stdlib/socket/0/socket_error.rbs +5 -0
  524. data/stdlib/socket/0/tcp_server.rbs +192 -0
  525. data/stdlib/socket/0/tcp_socket.rbs +87 -0
  526. data/stdlib/socket/0/udp_socket.rbs +133 -0
  527. data/stdlib/socket/0/unix_server.rbs +169 -0
  528. data/stdlib/socket/0/unix_socket.rbs +172 -0
  529. data/stdlib/stringio/0/stringio.rbs +1681 -0
  530. data/stdlib/strscan/0/string_scanner.rbs +1648 -0
  531. data/stdlib/tempfile/0/tempfile.rbs +483 -0
  532. data/stdlib/time/0/time.rbs +434 -0
  533. data/stdlib/timeout/0/timeout.rbs +137 -0
  534. data/stdlib/tmpdir/0/tmpdir.rbs +69 -0
  535. data/stdlib/tsort/0/cyclic.rbs +8 -0
  536. data/stdlib/tsort/0/interfaces.rbs +20 -0
  537. data/stdlib/tsort/0/tsort.rbs +410 -0
  538. data/stdlib/uri/0/common.rbs +621 -0
  539. data/stdlib/uri/0/file.rbs +118 -0
  540. data/stdlib/uri/0/ftp.rbs +13 -0
  541. data/stdlib/uri/0/generic.rbs +1116 -0
  542. data/stdlib/uri/0/http.rbs +104 -0
  543. data/stdlib/uri/0/https.rbs +14 -0
  544. data/stdlib/uri/0/ldap.rbs +230 -0
  545. data/stdlib/uri/0/ldaps.rbs +14 -0
  546. data/stdlib/uri/0/mailto.rbs +92 -0
  547. data/stdlib/uri/0/rfc2396_parser.rbs +189 -0
  548. data/stdlib/uri/0/rfc3986_parser.rbs +2 -0
  549. data/stdlib/uri/0/ws.rbs +13 -0
  550. data/stdlib/uri/0/wss.rbs +9 -0
  551. data/stdlib/yaml/0/manifest.yaml +2 -0
  552. data/stdlib/yaml/0/yaml.rbs +1 -0
  553. data/stdlib/zlib/0/buf_error.rbs +10 -0
  554. data/stdlib/zlib/0/data_error.rbs +10 -0
  555. data/stdlib/zlib/0/deflate.rbs +211 -0
  556. data/stdlib/zlib/0/error.rbs +20 -0
  557. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  558. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  559. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  560. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  561. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  562. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  563. data/stdlib/zlib/0/gzip_writer.rbs +168 -0
  564. data/stdlib/zlib/0/inflate.rbs +180 -0
  565. data/stdlib/zlib/0/mem_error.rbs +10 -0
  566. data/stdlib/zlib/0/need_dict.rbs +13 -0
  567. data/stdlib/zlib/0/stream_end.rbs +11 -0
  568. data/stdlib/zlib/0/stream_error.rbs +11 -0
  569. data/stdlib/zlib/0/version_error.rbs +11 -0
  570. data/stdlib/zlib/0/zlib.rbs +449 -0
  571. data/stdlib/zlib/0/zstream.rbs +201 -0
  572. data/wasm/README.md +59 -0
  573. data/wasm/rbs_wasm.c +411 -0
  574. metadata +660 -0
@@ -0,0 +1,434 @@
1
+ %a{annotate:rdoc:skip}
2
+ class Time
3
+ interface _TimeLike
4
+ def year: () -> Integer
5
+
6
+ def mon: () -> Integer
7
+
8
+ def day: () -> Integer
9
+ end
10
+
11
+ # <!--
12
+ # rdoc-file=lib/time.rb
13
+ # - zone_offset(zone, year=nil)
14
+ # -->
15
+ # Return the number of seconds the specified time zone differs from UTC.
16
+ #
17
+ # Numeric time zones that include minutes, such as <code>-10:00</code> or
18
+ # <code>+1330</code> will work, as will simpler hour-only time zones like
19
+ # <code>-10</code> or <code>+13</code>.
20
+ #
21
+ # Textual time zones listed in ZoneOffset are also supported.
22
+ #
23
+ # If the time zone does not match any of the above, `zone_offset` will check if
24
+ # the local time zone (both with and without potential Daylight Saving Time
25
+ # changes being in effect) matches `zone`. Specifying a value for `year` will
26
+ # change the year used to find the local time zone.
27
+ #
28
+ # If `zone_offset` is unable to determine the offset, nil will be returned.
29
+ #
30
+ # require 'time'
31
+ #
32
+ # Time.zone_offset("EST") #=> -18000
33
+ #
34
+ # You must require 'time' to use this method.
35
+ #
36
+ def self.zone_offset: (String zone, ?Integer year) -> Integer
37
+
38
+ # <!--
39
+ # rdoc-file=lib/time.rb
40
+ # - parse(date, now=self.now) { |year| ... }
41
+ # -->
42
+ # Takes a string representation of a Time and attempts to parse it using a
43
+ # heuristic.
44
+ #
45
+ # This method **does not** function as a validator. If the input string does
46
+ # not match valid formats strictly, you may get a cryptic result. Should
47
+ # consider to use Time.strptime instead of this method as possible.
48
+ #
49
+ # require 'time'
50
+ #
51
+ # Time.parse("2010-10-31") #=> 2010-10-31 00:00:00 -0500
52
+ #
53
+ # Any missing pieces of the date are inferred based on the current date.
54
+ #
55
+ # require 'time'
56
+ #
57
+ # # assuming the current date is "2011-10-31"
58
+ # Time.parse("12:00") #=> 2011-10-31 12:00:00 -0500
59
+ #
60
+ # We can change the date used to infer our missing elements by passing a second
61
+ # object that responds to #mon, #day and #year, such as Date, Time or DateTime.
62
+ # We can also use our own object.
63
+ #
64
+ # require 'time'
65
+ #
66
+ # class MyDate
67
+ # attr_reader :mon, :day, :year
68
+ #
69
+ # def initialize(mon, day, year)
70
+ # @mon, @day, @year = mon, day, year
71
+ # end
72
+ # end
73
+ #
74
+ # d = Date.parse("2010-10-28")
75
+ # t = Time.parse("2010-10-29")
76
+ # dt = DateTime.parse("2010-10-30")
77
+ # md = MyDate.new(10,31,2010)
78
+ #
79
+ # Time.parse("12:00", d) #=> 2010-10-28 12:00:00 -0500
80
+ # Time.parse("12:00", t) #=> 2010-10-29 12:00:00 -0500
81
+ # Time.parse("12:00", dt) #=> 2010-10-30 12:00:00 -0500
82
+ # Time.parse("12:00", md) #=> 2010-10-31 12:00:00 -0500
83
+ #
84
+ # If a block is given, the year described in `date` is converted by the block.
85
+ # This is specifically designed for handling two digit years. For example, if
86
+ # you wanted to treat all two digit years prior to 70 as the year 2000+ you
87
+ # could write this:
88
+ #
89
+ # require 'time'
90
+ #
91
+ # Time.parse("01-10-31") {|year| year + (year < 70 ? 2000 : 1900)}
92
+ # #=> 2001-10-31 00:00:00 -0500
93
+ # Time.parse("70-10-31") {|year| year + (year < 70 ? 2000 : 1900)}
94
+ # #=> 1970-10-31 00:00:00 -0500
95
+ #
96
+ # If the upper components of the given time are broken or missing, they are
97
+ # supplied with those of `now`. For the lower components, the minimum values (1
98
+ # or 0) are assumed if broken or missing. For example:
99
+ #
100
+ # require 'time'
101
+ #
102
+ # # Suppose it is "Thu Nov 29 14:33:20 2001" now and
103
+ # # your time zone is EST which is GMT-5.
104
+ # now = Time.parse("Thu Nov 29 14:33:20 2001")
105
+ # Time.parse("16:30", now) #=> 2001-11-29 16:30:00 -0500
106
+ # Time.parse("7/23", now) #=> 2001-07-23 00:00:00 -0500
107
+ # Time.parse("Aug 31", now) #=> 2001-08-31 00:00:00 -0500
108
+ # Time.parse("Aug 2000", now) #=> 2000-08-01 00:00:00 -0500
109
+ #
110
+ # Since there are numerous conflicts among locally defined time zone
111
+ # abbreviations all over the world, this method is not intended to understand
112
+ # all of them. For example, the abbreviation "CST" is used variously as:
113
+ #
114
+ # -06:00 in America/Chicago,
115
+ # -05:00 in America/Havana,
116
+ # +08:00 in Asia/Harbin,
117
+ # +09:30 in Australia/Darwin,
118
+ # +10:30 in Australia/Adelaide,
119
+ # etc.
120
+ #
121
+ # Based on this fact, this method only understands the time zone abbreviations
122
+ # described in RFC 822 and the system time zone, in the order named. (i.e. a
123
+ # definition in RFC 822 overrides the system time zone definition.) The system
124
+ # time zone is taken from <code>Time.local(year, 1, 1).zone</code> and
125
+ # <code>Time.local(year, 7, 1).zone</code>. If the extracted time zone
126
+ # abbreviation does not match any of them, it is ignored and the given time is
127
+ # regarded as a local time.
128
+ #
129
+ # ArgumentError is raised if Date._parse cannot extract information from `date`
130
+ # or if the Time class cannot represent specified date.
131
+ #
132
+ # This method can be used as a fail-safe for other parsing methods as:
133
+ #
134
+ # Time.rfc2822(date) rescue Time.parse(date)
135
+ # Time.httpdate(date) rescue Time.parse(date)
136
+ # Time.xmlschema(date) rescue Time.parse(date)
137
+ #
138
+ # A failure of Time.parse should be checked, though.
139
+ #
140
+ # You must require 'time' to use this method.
141
+ #
142
+ def self.parse: (String date, ?_TimeLike now) ?{ (Integer) -> Integer } -> Time
143
+
144
+ # <!--
145
+ # rdoc-file=lib/time.rb
146
+ # - strptime(date, format, now=self.now) { |year| ... }
147
+ # -->
148
+ # Works similar to `parse` except that instead of using a heuristic to detect
149
+ # the format of the input string, you provide a second argument that describes
150
+ # the format of the string.
151
+ #
152
+ # Raises ArgumentError if the date or format is invalid.
153
+ #
154
+ # If a block is given, the year described in `date` is converted by the block.
155
+ # For example:
156
+ #
157
+ # Time.strptime(...) {|y| y < 100 ? (y >= 69 ? y + 1900 : y + 2000) : y}
158
+ #
159
+ # Below is a list of the formatting options:
160
+ #
161
+ # %a
162
+ # : The abbreviated weekday name ("Sun")
163
+ #
164
+ # %A
165
+ # : The full weekday name ("Sunday")
166
+ #
167
+ # %b
168
+ # : The abbreviated month name ("Jan")
169
+ #
170
+ # %B
171
+ # : The full month name ("January")
172
+ #
173
+ # %c
174
+ # : The preferred local date and time representation
175
+ #
176
+ # %C
177
+ # : Century (20 in 2009)
178
+ #
179
+ # %d
180
+ # : Day of the month (01..31)
181
+ #
182
+ # %D
183
+ # : Date (%m/%d/%y)
184
+ #
185
+ # %e
186
+ # : Day of the month, blank-padded ( 1..31)
187
+ #
188
+ # %F
189
+ # : Equivalent to %Y-%m-%d (the ISO 8601 date format)
190
+ #
191
+ # %g
192
+ # : The last two digits of the commercial year
193
+ #
194
+ # %G
195
+ # : The week-based year according to ISO-8601 (week 1 starts on Monday and
196
+ # includes January 4)
197
+ #
198
+ # %h
199
+ # : Equivalent to %b
200
+ #
201
+ # %H
202
+ # : Hour of the day, 24-hour clock (00..23)
203
+ #
204
+ # %I
205
+ # : Hour of the day, 12-hour clock (01..12)
206
+ #
207
+ # %j
208
+ # : Day of the year (001..366)
209
+ #
210
+ # %k
211
+ # : hour, 24-hour clock, blank-padded ( 0..23)
212
+ #
213
+ # %l
214
+ # : hour, 12-hour clock, blank-padded ( 0..12)
215
+ #
216
+ # %L
217
+ # : Millisecond of the second (000..999)
218
+ #
219
+ # %m
220
+ # : Month of the year (01..12)
221
+ #
222
+ # %M
223
+ # : Minute of the hour (00..59)
224
+ #
225
+ # %n
226
+ # : Newline (n)
227
+ #
228
+ # %N
229
+ # : Fractional seconds digits
230
+ #
231
+ # %p
232
+ # : Meridian indicator ("AM" or "PM")
233
+ #
234
+ # %P
235
+ # : Meridian indicator ("am" or "pm")
236
+ #
237
+ # %r
238
+ # : time, 12-hour (same as %I:%M:%S %p)
239
+ #
240
+ # %R
241
+ # : time, 24-hour (%H:%M)
242
+ #
243
+ # %s
244
+ # : Number of seconds since 1970-01-01 00:00:00 UTC.
245
+ #
246
+ # %S
247
+ # : Second of the minute (00..60)
248
+ #
249
+ # %t
250
+ # : Tab character (t)
251
+ #
252
+ # %T
253
+ # : time, 24-hour (%H:%M:%S)
254
+ #
255
+ # %u
256
+ # : Day of the week as a decimal, Monday being 1. (1..7)
257
+ #
258
+ # %U
259
+ # : Week number of the current year, starting with the first Sunday as the
260
+ # first day of the first week (00..53)
261
+ #
262
+ # %v
263
+ # : VMS date (%e-%b-%Y)
264
+ #
265
+ # %V
266
+ # : Week number of year according to ISO 8601 (01..53)
267
+ #
268
+ # %W
269
+ # : Week number of the current year, starting with the first Monday as the
270
+ # first day of the first week (00..53)
271
+ #
272
+ # %w
273
+ # : Day of the week (Sunday is 0, 0..6)
274
+ #
275
+ # %x
276
+ # : Preferred representation for the date alone, no time
277
+ #
278
+ # %X
279
+ # : Preferred representation for the time alone, no date
280
+ #
281
+ # %y
282
+ # : Year without a century (00..99)
283
+ #
284
+ # %Y
285
+ # : Year which may include century, if provided
286
+ #
287
+ # %z
288
+ # : Time zone as hour offset from UTC (e.g. +0900)
289
+ #
290
+ # %Z
291
+ # : Time zone name
292
+ #
293
+ # %%
294
+ # : Literal "%" character
295
+ #
296
+ # %+
297
+ # : date(1) (%a %b %e %H:%M:%S %Z %Y)
298
+ #
299
+ #
300
+ # require 'time'
301
+ #
302
+ # Time.strptime("2000-10-31", "%Y-%m-%d") #=> 2000-10-31 00:00:00 -0500
303
+ #
304
+ # You must require 'time' to use this method.
305
+ #
306
+ def self.strptime: (String date, String format, ?_TimeLike now) ?{ (Integer) -> Integer } -> Time
307
+
308
+ # <!--
309
+ # rdoc-file=lib/time.rb
310
+ # - rfc2822(date)
311
+ # -->
312
+ # Parses `date` as date-time defined by RFC 2822 and converts it to a Time
313
+ # object. The format is identical to the date format defined by RFC 822 and
314
+ # updated by RFC 1123.
315
+ #
316
+ # ArgumentError is raised if `date` is not compliant with RFC 2822 or if the
317
+ # Time class cannot represent specified date.
318
+ #
319
+ # See #rfc2822 for more information on this format.
320
+ #
321
+ # require 'time'
322
+ #
323
+ # Time.rfc2822("Wed, 05 Oct 2011 22:26:12 -0400")
324
+ # #=> 2010-10-05 22:26:12 -0400
325
+ #
326
+ # You must require 'time' to use this method.
327
+ #
328
+ def self.rfc2822: (String date) -> Time
329
+
330
+ # <!--
331
+ # rdoc-file=lib/time.rb
332
+ # - rfc822(date)
333
+ # -->
334
+ #
335
+ alias self.rfc822 self.rfc2822
336
+
337
+ # <!--
338
+ # rdoc-file=lib/time.rb
339
+ # - httpdate(date)
340
+ # -->
341
+ # Parses `date` as an HTTP-date defined by RFC 2616 and converts it to a Time
342
+ # object.
343
+ #
344
+ # ArgumentError is raised if `date` is not compliant with RFC 2616 or if the
345
+ # Time class cannot represent specified date.
346
+ #
347
+ # See #httpdate for more information on this format.
348
+ #
349
+ # require 'time'
350
+ #
351
+ # Time.httpdate("Thu, 06 Oct 2011 02:26:12 GMT")
352
+ # #=> 2011-10-06 02:26:12 UTC
353
+ #
354
+ # You must require 'time' to use this method.
355
+ #
356
+ def self.httpdate: (String date) -> Time
357
+
358
+ # <!--
359
+ # rdoc-file=lib/time.rb
360
+ # - xmlschema(time)
361
+ # -->
362
+ # Parses `time` as a dateTime defined by the XML Schema and converts it to a
363
+ # Time object. The format is a restricted version of the format defined by ISO
364
+ # 8601.
365
+ #
366
+ # ArgumentError is raised if `time` is not compliant with the format or if the
367
+ # Time class cannot represent the specified time.
368
+ #
369
+ # See #xmlschema for more information on this format.
370
+ #
371
+ # require 'time'
372
+ #
373
+ # Time.xmlschema("2011-10-05T22:26:12-04:00")
374
+ # #=> 2011-10-05 22:26:12-04:00
375
+ #
376
+ # You must require 'time' to use this method.
377
+ #
378
+ def self.xmlschema: (String date) -> Time
379
+
380
+ # <!--
381
+ # rdoc-file=lib/time.rb
382
+ # - iso8601(time)
383
+ # -->
384
+ #
385
+ alias self.iso8601 self.xmlschema
386
+
387
+ # <!--
388
+ # rdoc-file=lib/time.rb
389
+ # - rfc2822()
390
+ # -->
391
+ # Returns a string which represents the time as date-time defined by RFC 2822:
392
+ #
393
+ # day-of-week, DD month-name CCYY hh:mm:ss zone
394
+ #
395
+ # where zone is [+-]hhmm.
396
+ #
397
+ # If `self` is a UTC time, -0000 is used as zone.
398
+ #
399
+ # require 'time'
400
+ #
401
+ # t = Time.now
402
+ # t.rfc2822 # => "Wed, 05 Oct 2011 22:26:12 -0400"
403
+ #
404
+ # You must require 'time' to use this method.
405
+ #
406
+ def rfc2822: () -> String
407
+
408
+ # <!--
409
+ # rdoc-file=lib/time.rb
410
+ # - rfc822()
411
+ # -->
412
+ #
413
+ alias rfc822 rfc2822
414
+
415
+ # <!--
416
+ # rdoc-file=lib/time.rb
417
+ # - httpdate()
418
+ # -->
419
+ # Returns a string which represents the time as RFC 1123 date of HTTP-date
420
+ # defined by RFC 2616:
421
+ #
422
+ # day-of-week, DD month-name CCYY hh:mm:ss GMT
423
+ #
424
+ # Note that the result is always UTC (GMT).
425
+ #
426
+ # require 'time'
427
+ #
428
+ # t = Time.now
429
+ # t.httpdate # => "Thu, 06 Oct 2011 02:26:12 GMT"
430
+ #
431
+ # You must require 'time' to use this method.
432
+ #
433
+ def httpdate: () -> String
434
+ end
@@ -0,0 +1,137 @@
1
+ # <!-- rdoc-file=lib/timeout.rb -->
2
+ # Timeout long-running blocks
3
+ #
4
+ # ## Synopsis
5
+ #
6
+ # require 'timeout'
7
+ # status = Timeout.timeout(5) {
8
+ # # Something that should be interrupted if it takes more than 5 seconds...
9
+ # }
10
+ #
11
+ # ## Description
12
+ #
13
+ # Timeout provides a way to auto-terminate a potentially long-running operation
14
+ # if it hasn't finished in a fixed amount of time.
15
+ #
16
+ # ## Copyright
17
+ #
18
+ # Copyright
19
+ # : (C) 2000 Network Applied Communication Laboratory, Inc.
20
+ #
21
+ # Copyright
22
+ # : (C) 2000 Information-technology Promotion Agency, Japan
23
+ #
24
+ module Timeout
25
+ # <!--
26
+ # rdoc-file=lib/timeout.rb
27
+ # - timeout(sec, klass = nil, message = nil) { |sec| ... }
28
+ # -->
29
+ # Perform an operation in a block, raising an exception if it takes longer than
30
+ # `sec` seconds to complete.
31
+ #
32
+ # `sec`
33
+ # : Number of seconds to wait for the block to terminate. Any non-negative
34
+ # number or nil may be used, including Floats to specify fractional seconds.
35
+ # A value of 0 or `nil` will execute the block without any timeout. Any
36
+ # negative number will raise an ArgumentError.
37
+ #
38
+ # `klass`
39
+ # : Exception Class to raise if the block fails to terminate in `sec` seconds.
40
+ # Omitting will use the default, Timeout::Error
41
+ #
42
+ # `message`
43
+ # : Error message to raise with Exception Class. Omitting will use the
44
+ # default, "execution expired"
45
+ #
46
+ #
47
+ # Returns the result of the block **if** the block completed before `sec`
48
+ # seconds, otherwise raises an exception, based on the value of `klass`.
49
+ #
50
+ # The exception raised to terminate the given block is the given `klass`, or
51
+ # Timeout::ExitException if `klass` is not given. The reason for that behavior
52
+ # is that Timeout::Error inherits from RuntimeError and might be caught
53
+ # unexpectedly by `rescue`. Timeout::ExitException inherits from Exception so it
54
+ # will only be rescued by `rescue Exception`. Note that the
55
+ # Timeout::ExitException is translated to a Timeout::Error once it reaches the
56
+ # Timeout.timeout call, so outside that call it will be a Timeout::Error.
57
+ #
58
+ # In general, be aware that the code block may rescue the exception, and in such
59
+ # a case not respect the timeout. Also, the block can use `ensure` to prevent
60
+ # the handling of the exception. For those reasons, this method cannot be relied
61
+ # on to enforce timeouts for untrusted blocks.
62
+ #
63
+ # If a scheduler is defined, it will be used to handle the timeout by invoking
64
+ # Scheduler#timeout_after.
65
+ #
66
+ # Note that this is both a method of module Timeout, so you can `include
67
+ # Timeout` into your classes so they have a #timeout method, as well as a module
68
+ # method, so you can call it directly as Timeout.timeout().
69
+ #
70
+ # #### Ensuring the exception does not fire inside ensure blocks
71
+ #
72
+ # When using Timeout.timeout it can be desirable to ensure the timeout exception
73
+ # does not fire inside an `ensure` block. The simplest and best way to do so it
74
+ # to put the Timeout.timeout call inside the body of the begin/ensure/end:
75
+ #
76
+ # begin
77
+ # Timeout.timeout(sec) { some_long_operation }
78
+ # ensure
79
+ # cleanup # safe, cannot be interrupt by timeout
80
+ # end
81
+ #
82
+ # If that is not feasible, e.g. if there are `ensure` blocks inside
83
+ # `some_long_operation`, they need to not be interrupted by timeout, and it's
84
+ # not possible to move these ensure blocks outside, one can use
85
+ # Thread.handle_interrupt to delay the timeout exception like so:
86
+ #
87
+ # Thread.handle_interrupt(Timeout::Error => :never) {
88
+ # Timeout.timeout(sec, Timeout::Error) do
89
+ # setup # timeout cannot happen here, no matter how long it takes
90
+ # Thread.handle_interrupt(Timeout::Error => :immediate) {
91
+ # some_long_operation # timeout can happen here
92
+ # }
93
+ # ensure
94
+ # cleanup # timeout cannot happen here, no matter how long it takes
95
+ # end
96
+ # }
97
+ #
98
+ # An important thing to note is the need to pass an exception klass to
99
+ # Timeout.timeout, otherwise it does not work. Specifically, using
100
+ # +Thread.handle_interrupt(Timeout::ExitException => ...)+ is unsupported and
101
+ # causes subtle errors like raising the wrong exception outside the block, do
102
+ # not use that.
103
+ #
104
+ # Note that Thread.handle_interrupt is somewhat dangerous because if setup or
105
+ # cleanup hangs then the current thread will hang too and the timeout will never
106
+ # fire. Also note the block might run for longer than `sec` seconds: e.g.
107
+ # some_long_operation executes for `sec` seconds + whatever time cleanup takes.
108
+ #
109
+ # If you want the timeout to only happen on blocking operations one can use
110
+ # :on_blocking instead of :immediate. However, that means if the block uses no
111
+ # blocking operations after `sec` seconds, the block will not be interrupted.
112
+ # ----
113
+ # <!--
114
+ # rdoc-file=lib/timeout.rb
115
+ # - timeout(*args, &block)
116
+ # -->
117
+ #
118
+ def self?.timeout: [T] (Numeric? sec, ?singleton(Exception) klass, ?String message) { (Numeric sec) -> T } -> T
119
+ end
120
+
121
+ # <!-- rdoc-file=lib/timeout.rb -->
122
+ # Internal exception raised to when a timeout is triggered.
123
+ #
124
+ class Timeout::ExitException < Exception
125
+ end
126
+
127
+ # <!-- rdoc-file=lib/timeout.rb -->
128
+ # Raised by Timeout.timeout when the block times out.
129
+ #
130
+ class Timeout::Error < RuntimeError
131
+ attr_reader thread: Thread?
132
+ end
133
+
134
+ # <!-- rdoc-file=lib/timeout.rb -->
135
+ # The version
136
+ #
137
+ Timeout::VERSION: String
@@ -0,0 +1,69 @@
1
+ %a{annotate:rdoc:skip}
2
+ class Dir
3
+ # <!--
4
+ # rdoc-file=lib/tmpdir.rb
5
+ # - tmpdir()
6
+ # -->
7
+ # Returns the operating system's temporary file path.
8
+ #
9
+ # require 'tmpdir'
10
+ # Dir.tmpdir # => "/tmp"
11
+ #
12
+ def self.tmpdir: () -> String
13
+
14
+ # <!--
15
+ # rdoc-file=lib/tmpdir.rb
16
+ # - mktmpdir(prefix_suffix=nil, *rest, **options) { |dup| ... }
17
+ # -->
18
+ # Dir.mktmpdir creates a temporary directory.
19
+ #
20
+ # require 'tmpdir'
21
+ # Dir.mktmpdir {|dir|
22
+ # # use the directory
23
+ # }
24
+ #
25
+ # The directory is created with 0700 permission. Application should not change
26
+ # the permission to make the temporary directory accessible from other users.
27
+ #
28
+ # The prefix and suffix of the name of the directory is specified by the
29
+ # optional first argument, *prefix_suffix*.
30
+ # * If it is not specified or nil, "d" is used as the prefix and no suffix is
31
+ # used.
32
+ # * If it is a string, it is used as the prefix and no suffix is used.
33
+ # * If it is an array, first element is used as the prefix and second element
34
+ # is used as a suffix.
35
+ #
36
+ # Dir.mktmpdir {|dir| dir is ".../d..." }
37
+ # Dir.mktmpdir("foo") {|dir| dir is ".../foo..." }
38
+ # Dir.mktmpdir(["foo", "bar"]) {|dir| dir is ".../foo...bar" }
39
+ #
40
+ # The directory is created under Dir.tmpdir or the optional second argument
41
+ # *tmpdir* if non-nil value is given.
42
+ #
43
+ # Dir.mktmpdir {|dir| dir is "#{Dir.tmpdir}/d..." }
44
+ # Dir.mktmpdir(nil, "/var/tmp") {|dir| dir is "/var/tmp/d..." }
45
+ #
46
+ # If a block is given, it is yielded with the path of the directory. The
47
+ # directory and its contents are removed using FileUtils.remove_entry before
48
+ # Dir.mktmpdir returns. The value of the block is returned.
49
+ #
50
+ # Dir.mktmpdir {|dir|
51
+ # # use the directory...
52
+ # open("#{dir}/foo", "w") { something using the file }
53
+ # }
54
+ #
55
+ # If a block is not given, The path of the directory is returned. In this case,
56
+ # Dir.mktmpdir doesn't remove the directory.
57
+ #
58
+ # dir = Dir.mktmpdir
59
+ # begin
60
+ # # use the directory...
61
+ # open("#{dir}/foo", "w") { something using the file }
62
+ # ensure
63
+ # # remove the directory.
64
+ # FileUtils.remove_entry dir
65
+ # end
66
+ #
67
+ def self.mktmpdir: (?string | [ string, string ] | nil, ?path?, ?max_try: Integer?) -> String
68
+ | [X] (?string | [string, string ] | nil, ?path?, ?max_try: Integer?) { (String) -> X } -> X
69
+ end
@@ -0,0 +1,8 @@
1
+ %a{annotate:rdoc:skip}
2
+ module TSort[N]
3
+ # <!-- rdoc-file=lib/tsort.rb -->
4
+ # Exception class to be raised when a cycle is found.
5
+ #
6
+ class Cyclic < StandardError
7
+ end
8
+ end
@@ -0,0 +1,20 @@
1
+ %a{annotate:rdoc:skip}
2
+ module TSort[N]
3
+ interface _Sortable[N]
4
+ # #tsort_each_node is used to iterate for all nodes over a graph.
5
+ #
6
+ def tsort_each_node: () { (N) -> void } -> void
7
+
8
+ # #tsort_each_child is used to iterate for child nodes of node.
9
+ #
10
+ def tsort_each_child: (N) { (N) -> void } -> void
11
+ end
12
+
13
+ interface _EachNode[N]
14
+ def call: () { (N) -> void } -> void
15
+ end
16
+
17
+ interface _EachChild[N]
18
+ def call: (N) { (N) -> void } -> void
19
+ end
20
+ end