rbs 2.8.4 → 3.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (434) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +12 -4
  3. data/.github/workflows/comments.yml +11 -11
  4. data/.github/workflows/dependabot.yml +30 -0
  5. data/.github/workflows/ruby.yml +40 -49
  6. data/.github/workflows/typecheck.yml +36 -0
  7. data/.github/workflows/windows.yml +28 -0
  8. data/.gitignore +1 -0
  9. data/.rubocop.yml +42 -2
  10. data/CHANGELOG.md +845 -1
  11. data/README.md +64 -4
  12. data/Rakefile +198 -18
  13. data/Steepfile +11 -11
  14. data/config.yml +311 -0
  15. data/core/array.rbs +2189 -1914
  16. data/core/basic_object.rbs +59 -84
  17. data/core/binding.rbs +7 -69
  18. data/core/builtin.rbs +210 -11
  19. data/core/class.rbs +37 -0
  20. data/core/comparable.rbs +23 -25
  21. data/core/complex.rbs +449 -227
  22. data/core/constants.rbs +29 -21
  23. data/core/data.rbs +415 -0
  24. data/core/dir.rbs +698 -415
  25. data/core/encoding.rbs +468 -843
  26. data/core/enumerable.rbs +495 -455
  27. data/core/enumerator/product.rbs +92 -0
  28. data/core/enumerator.rbs +106 -9
  29. data/core/env.rbs +1 -1
  30. data/core/errno.rbs +506 -605
  31. data/core/errors.rbs +15 -17
  32. data/core/exception.rbs +361 -145
  33. data/core/false_class.rbs +39 -26
  34. data/core/fiber.rbs +121 -14
  35. data/core/file.rbs +1262 -320
  36. data/core/file_test.rbs +62 -45
  37. data/core/float.rbs +187 -208
  38. data/core/gc.rbs +446 -196
  39. data/core/global_variables.rbs +29 -29
  40. data/core/hash.rbs +242 -349
  41. data/core/integer.rbs +246 -308
  42. data/core/io/buffer.rbs +373 -122
  43. data/core/io/wait.rbs +29 -17
  44. data/core/io.rbs +1881 -1518
  45. data/core/kernel.rbs +2116 -1538
  46. data/core/marshal.rbs +24 -14
  47. data/core/match_data.rbs +413 -166
  48. data/core/math.rbs +531 -291
  49. data/core/method.rbs +101 -32
  50. data/core/module.rbs +228 -64
  51. data/core/nil_class.rbs +106 -47
  52. data/core/numeric.rbs +206 -292
  53. data/core/object.rbs +73 -1168
  54. data/core/object_space/weak_key_map.rbs +166 -0
  55. data/core/object_space.rbs +5 -3
  56. data/core/proc.rbs +280 -39
  57. data/core/process.rbs +1318 -658
  58. data/core/ractor.rbs +200 -134
  59. data/core/random.rbs +21 -4
  60. data/core/range.rbs +309 -153
  61. data/core/rational.rbs +4 -12
  62. data/core/rb_config.rbs +64 -43
  63. data/core/rbs/unnamed/argf.rbs +411 -147
  64. data/core/rbs/unnamed/env_class.rbs +137 -253
  65. data/core/rbs/unnamed/random.rbs +49 -26
  66. data/core/refinement.rbs +16 -1
  67. data/core/regexp.rbs +1568 -862
  68. data/core/ruby_vm.rbs +719 -7
  69. data/core/rubygems/config_file.rbs +3 -0
  70. data/core/rubygems/errors.rbs +69 -6
  71. data/core/rubygems/rubygems.rbs +71 -17
  72. data/core/rubygems/version.rbs +11 -7
  73. data/{stdlib/set/0 → core}/set.rbs +80 -91
  74. data/core/signal.rbs +14 -8
  75. data/core/string.rbs +1732 -1607
  76. data/core/struct.rbs +467 -95
  77. data/core/symbol.rbs +215 -245
  78. data/core/thread.rbs +133 -89
  79. data/core/thread_group.rbs +9 -9
  80. data/core/time.rbs +1141 -841
  81. data/core/trace_point.rbs +181 -121
  82. data/core/true_class.rbs +58 -32
  83. data/core/unbound_method.rbs +103 -30
  84. data/core/warning.rbs +50 -5
  85. data/docs/CONTRIBUTING.md +1 -1
  86. data/docs/architecture.md +110 -0
  87. data/docs/collection.md +59 -5
  88. data/docs/data_and_struct.md +86 -0
  89. data/docs/gem.md +57 -0
  90. data/docs/rbs_by_example.md +16 -35
  91. data/docs/repo.md +1 -1
  92. data/docs/sigs.md +7 -7
  93. data/docs/stdlib.md +63 -5
  94. data/docs/syntax.md +255 -61
  95. data/docs/tools.md +1 -0
  96. data/ext/rbs_extension/extconf.rb +10 -0
  97. data/ext/rbs_extension/lexer.c +1741 -1548
  98. data/ext/rbs_extension/lexer.h +11 -1
  99. data/ext/rbs_extension/lexer.re +12 -6
  100. data/ext/rbs_extension/lexstate.c +26 -3
  101. data/ext/rbs_extension/location.c +119 -111
  102. data/ext/rbs_extension/location.h +32 -7
  103. data/ext/rbs_extension/main.c +3 -0
  104. data/ext/rbs_extension/parser.c +883 -481
  105. data/ext/rbs_extension/parserstate.c +65 -25
  106. data/ext/rbs_extension/parserstate.h +13 -3
  107. data/ext/rbs_extension/rbs_extension.h +1 -10
  108. data/ext/rbs_extension/unescape.c +7 -47
  109. data/goodcheck.yml +2 -2
  110. data/{ext/rbs_extension → include/rbs}/constants.h +26 -15
  111. data/include/rbs/ruby_objs.h +72 -0
  112. data/include/rbs.h +7 -0
  113. data/lib/rbs/annotate/annotations.rb +3 -3
  114. data/lib/rbs/annotate/formatter.rb +13 -3
  115. data/lib/rbs/annotate/rdoc_annotator.rb +1 -1
  116. data/lib/rbs/annotate/rdoc_source.rb +12 -3
  117. data/lib/rbs/ast/declarations.rb +85 -2
  118. data/lib/rbs/ast/directives.rb +39 -0
  119. data/lib/rbs/ast/members.rb +49 -15
  120. data/lib/rbs/ast/type_param.rb +104 -15
  121. data/lib/rbs/ast/visitor.rb +137 -0
  122. data/lib/rbs/buffer.rb +5 -0
  123. data/lib/rbs/cli/colored_io.rb +48 -0
  124. data/lib/rbs/cli/diff.rb +83 -0
  125. data/lib/rbs/cli/validate.rb +356 -0
  126. data/lib/rbs/cli.rb +253 -143
  127. data/lib/rbs/collection/cleaner.rb +8 -1
  128. data/lib/rbs/collection/config/lockfile.rb +92 -0
  129. data/lib/rbs/collection/config/lockfile_generator.rb +154 -65
  130. data/lib/rbs/collection/config.rb +19 -46
  131. data/lib/rbs/collection/installer.rb +12 -13
  132. data/lib/rbs/collection/sources/base.rb +2 -2
  133. data/lib/rbs/collection/sources/git.rb +146 -69
  134. data/lib/rbs/collection/sources/local.rb +81 -0
  135. data/lib/rbs/collection/sources/rubygems.rb +10 -12
  136. data/lib/rbs/collection/sources/stdlib.rb +14 -13
  137. data/lib/rbs/collection/sources.rb +15 -2
  138. data/lib/rbs/collection.rb +2 -1
  139. data/lib/rbs/definition.rb +13 -16
  140. data/lib/rbs/definition_builder/ancestor_builder.rb +100 -24
  141. data/lib/rbs/definition_builder/method_builder.rb +4 -4
  142. data/lib/rbs/definition_builder.rb +489 -584
  143. data/lib/rbs/diff.rb +125 -0
  144. data/lib/rbs/environment/use_map.rb +77 -0
  145. data/lib/rbs/environment.rb +406 -105
  146. data/lib/rbs/environment_loader.rb +48 -44
  147. data/lib/rbs/environment_walker.rb +1 -1
  148. data/lib/rbs/errors.rb +175 -56
  149. data/lib/rbs/file_finder.rb +28 -0
  150. data/lib/rbs/location_aux.rb +8 -7
  151. data/lib/rbs/locator.rb +37 -15
  152. data/lib/rbs/method_type.rb +23 -0
  153. data/lib/rbs/namespace.rb +1 -0
  154. data/lib/rbs/parser/lex_result.rb +15 -0
  155. data/lib/rbs/parser/token.rb +23 -0
  156. data/lib/rbs/parser_aux.rb +22 -13
  157. data/lib/rbs/prototype/helpers.rb +48 -22
  158. data/lib/rbs/prototype/node_usage.rb +99 -0
  159. data/lib/rbs/prototype/rb.rb +125 -31
  160. data/lib/rbs/prototype/rbi.rb +49 -36
  161. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  162. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  163. data/lib/rbs/prototype/runtime/value_object_generator.rb +279 -0
  164. data/lib/rbs/prototype/runtime.rb +273 -159
  165. data/lib/rbs/resolver/constant_resolver.rb +24 -8
  166. data/lib/rbs/resolver/type_name_resolver.rb +41 -7
  167. data/lib/rbs/sorter.rb +153 -123
  168. data/lib/rbs/substitution.rb +19 -0
  169. data/lib/rbs/subtractor.rb +201 -0
  170. data/lib/rbs/test/errors.rb +24 -11
  171. data/lib/rbs/test/guaranteed.rb +30 -0
  172. data/lib/rbs/test/hook.rb +45 -40
  173. data/lib/rbs/test/setup.rb +1 -1
  174. data/lib/rbs/test/tester.rb +1 -1
  175. data/lib/rbs/test/type_check.rb +120 -23
  176. data/lib/rbs/test.rb +6 -3
  177. data/lib/rbs/type_alias_dependency.rb +13 -3
  178. data/lib/rbs/type_alias_regularity.rb +21 -14
  179. data/lib/rbs/type_name.rb +18 -13
  180. data/lib/rbs/types.rb +352 -18
  181. data/lib/rbs/unit_test/convertibles.rb +176 -0
  182. data/lib/rbs/unit_test/spy.rb +136 -0
  183. data/lib/rbs/unit_test/type_assertions.rb +341 -0
  184. data/lib/rbs/unit_test/with_aliases.rb +143 -0
  185. data/lib/rbs/unit_test.rb +6 -0
  186. data/lib/rbs/validator.rb +55 -30
  187. data/lib/rbs/variance_calculator.rb +26 -23
  188. data/lib/rbs/vendorer.rb +3 -3
  189. data/lib/rbs/version.rb +1 -1
  190. data/lib/rbs/writer.rb +69 -22
  191. data/lib/rbs.rb +7 -2
  192. data/lib/rdoc/discover.rb +1 -1
  193. data/lib/rdoc_plugin/parser.rb +5 -5
  194. data/rbs.gemspec +12 -2
  195. data/schema/decls.json +1 -1
  196. data/schema/members.json +15 -10
  197. data/sig/ancestor_builder.rbs +4 -0
  198. data/sig/ancestor_graph.rbs +22 -2
  199. data/sig/annotate/formatter.rbs +2 -2
  200. data/sig/annotate/rdoc_annotater.rbs +1 -1
  201. data/sig/cli/colored_io.rbs +15 -0
  202. data/sig/cli/diff.rbs +21 -0
  203. data/sig/cli/validate.rbs +43 -0
  204. data/sig/cli.rbs +4 -0
  205. data/sig/collection/config/lockfile.rbs +74 -0
  206. data/sig/collection/config/lockfile_generator.rbs +66 -0
  207. data/sig/collection/config.rbs +5 -48
  208. data/sig/collection/installer.rbs +1 -1
  209. data/sig/collection/sources.rbs +105 -33
  210. data/sig/constant.rbs +1 -1
  211. data/sig/declarations.rbs +42 -3
  212. data/sig/definition.rbs +26 -10
  213. data/sig/definition_builder.rbs +103 -81
  214. data/sig/diff.rbs +28 -0
  215. data/sig/directives.rbs +61 -0
  216. data/sig/environment.rbs +175 -29
  217. data/sig/environment_loader.rbs +20 -18
  218. data/sig/errors.rbs +123 -2
  219. data/sig/file_finder.rbs +28 -0
  220. data/sig/location.rbs +0 -3
  221. data/sig/locator.rbs +14 -2
  222. data/sig/manifest.yaml +0 -1
  223. data/sig/members.rbs +32 -9
  224. data/sig/method_types.rbs +10 -4
  225. data/sig/namespace.rbs +2 -3
  226. data/sig/parser.rbs +55 -16
  227. data/sig/prototype/helpers.rbs +4 -0
  228. data/sig/prototype/node_usage.rbs +20 -0
  229. data/sig/prototype/rb.rbs +10 -2
  230. data/sig/prototype/rbi.rbs +2 -0
  231. data/sig/prototype/runtime.rbs +182 -0
  232. data/sig/rbs.rbs +1 -1
  233. data/sig/rdoc/rbs.rbs +4 -0
  234. data/sig/repository.rbs +7 -5
  235. data/sig/resolver/constant_resolver.rbs +3 -4
  236. data/sig/resolver/context.rbs +1 -1
  237. data/sig/resolver/type_name_resolver.rbs +5 -1
  238. data/sig/shims/bundler.rbs +38 -0
  239. data/sig/shims/rubygems.rbs +19 -0
  240. data/sig/sorter.rbs +23 -5
  241. data/sig/substitution.rbs +6 -0
  242. data/sig/subtractor.rbs +37 -0
  243. data/sig/test/errors.rbs +52 -0
  244. data/sig/test/guranteed.rbs +9 -0
  245. data/sig/test/type_check.rbs +19 -0
  246. data/sig/test.rbs +82 -0
  247. data/sig/type_alias_dependency.rbs +31 -0
  248. data/sig/type_alias_regularity.rbs +12 -6
  249. data/sig/type_param.rbs +45 -9
  250. data/sig/typename.rbs +8 -5
  251. data/sig/types.rbs +119 -12
  252. data/sig/unit_test/convertibles.rbs +154 -0
  253. data/sig/unit_test/spy.rbs +28 -0
  254. data/sig/unit_test/type_assertions.rbs +194 -0
  255. data/sig/unit_test/with_aliases.rbs +136 -0
  256. data/sig/use_map.rbs +35 -0
  257. data/sig/validator.rbs +12 -5
  258. data/sig/variance_calculator.rbs +3 -1
  259. data/sig/vendorer.rbs +1 -1
  260. data/sig/visitor.rbs +47 -0
  261. data/sig/writer.rbs +6 -2
  262. data/src/constants.c +153 -0
  263. data/src/ruby_objs.c +793 -0
  264. data/stdlib/base64/0/base64.rbs +298 -45
  265. data/stdlib/benchmark/0/benchmark.rbs +12 -3
  266. data/stdlib/bigdecimal/0/big_decimal.rbs +62 -198
  267. data/stdlib/cgi/0/core.rbs +68 -15
  268. data/stdlib/cgi/0/manifest.yaml +1 -0
  269. data/stdlib/coverage/0/coverage.rbs +50 -11
  270. data/stdlib/csv/0/csv.rbs +90 -119
  271. data/stdlib/csv/0/manifest.yaml +1 -0
  272. data/stdlib/date/0/date.rbs +806 -735
  273. data/stdlib/date/0/date_time.rbs +70 -211
  274. data/stdlib/dbm/0/dbm.rbs +0 -2
  275. data/stdlib/delegate/0/delegator.rbs +184 -0
  276. data/stdlib/delegate/0/kernel.rbs +47 -0
  277. data/stdlib/delegate/0/simple_delegator.rbs +96 -0
  278. data/stdlib/did_you_mean/0/did_you_mean.rbs +3 -8
  279. data/stdlib/digest/0/digest.rbs +48 -35
  280. data/stdlib/erb/0/erb.rbs +15 -39
  281. data/stdlib/etc/0/etc.rbs +174 -54
  282. data/stdlib/fileutils/0/fileutils.rbs +1234 -385
  283. data/stdlib/forwardable/0/forwardable.rbs +4 -4
  284. data/stdlib/io-console/0/io-console.rbs +82 -17
  285. data/stdlib/ipaddr/0/ipaddr.rbs +11 -6
  286. data/stdlib/json/0/json.rbs +434 -151
  287. data/stdlib/kconv/0/kconv.rbs +166 -0
  288. data/stdlib/logger/0/formatter.rbs +0 -2
  289. data/stdlib/logger/0/log_device.rbs +1 -3
  290. data/stdlib/logger/0/logger.rbs +465 -328
  291. data/stdlib/minitest/0/kernel.rbs +2 -2
  292. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
  293. data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
  294. data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
  295. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
  296. data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
  297. data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
  298. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  299. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  300. data/stdlib/minitest/0/minitest/mock.rbs +9 -5
  301. data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
  302. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
  303. data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
  304. data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
  305. data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
  306. data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
  307. data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
  308. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
  309. data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
  310. data/stdlib/minitest/0/minitest/spec.rbs +1 -1
  311. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
  312. data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
  313. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +7 -7
  314. data/stdlib/minitest/0/minitest/test.rbs +7 -14
  315. data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
  316. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  317. data/stdlib/minitest/0/minitest/unit.rbs +1 -2
  318. data/stdlib/minitest/0/minitest.rbs +41 -892
  319. data/stdlib/monitor/0/monitor.rbs +91 -10
  320. data/stdlib/mutex_m/0/mutex_m.rbs +0 -2
  321. data/stdlib/net-http/0/manifest.yaml +1 -1
  322. data/stdlib/net-http/0/net-http.rbs +3858 -964
  323. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  324. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  325. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  326. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  327. data/stdlib/nkf/0/nkf.rbs +35 -5
  328. data/stdlib/objspace/0/objspace.rbs +40 -18
  329. data/stdlib/observable/0/observable.rbs +217 -0
  330. data/stdlib/open-uri/0/manifest.yaml +4 -0
  331. data/stdlib/open-uri/0/open-uri.rbs +393 -0
  332. data/stdlib/open3/0/open3.rbs +147 -0
  333. data/stdlib/openssl/0/manifest.yaml +1 -0
  334. data/stdlib/openssl/0/openssl.rbs +681 -316
  335. data/stdlib/optparse/0/optparse.rbs +100 -65
  336. data/stdlib/pathname/0/pathname.rbs +24 -15
  337. data/stdlib/pp/0/manifest.yaml +2 -0
  338. data/stdlib/pp/0/pp.rbs +300 -0
  339. data/stdlib/prettyprint/0/prettyprint.rbs +2 -6
  340. data/stdlib/pstore/0/pstore.rbs +370 -156
  341. data/stdlib/psych/0/core_ext.rbs +12 -0
  342. data/stdlib/{yaml → psych}/0/dbm.rbs +3 -3
  343. data/stdlib/psych/0/manifest.yaml +3 -0
  344. data/stdlib/psych/0/psych.rbs +402 -0
  345. data/stdlib/{yaml → psych}/0/store.rbs +2 -2
  346. data/stdlib/pty/0/pty.rbs +63 -11
  347. data/stdlib/rdoc/0/code_object.rbs +51 -0
  348. data/stdlib/rdoc/0/comment.rbs +59 -0
  349. data/stdlib/rdoc/0/context.rbs +153 -0
  350. data/stdlib/rdoc/0/markup.rbs +117 -0
  351. data/stdlib/rdoc/0/parser.rbs +56 -0
  352. data/stdlib/rdoc/0/rdoc.rbs +13 -380
  353. data/stdlib/rdoc/0/ri.rbs +17 -0
  354. data/stdlib/rdoc/0/store.rbs +48 -0
  355. data/stdlib/rdoc/0/top_level.rbs +97 -0
  356. data/stdlib/resolv/0/resolv.rbs +16 -79
  357. data/stdlib/ripper/0/ripper.rbs +1648 -0
  358. data/stdlib/securerandom/0/securerandom.rbs +7 -2
  359. data/stdlib/shellwords/0/shellwords.rbs +11 -12
  360. data/stdlib/singleton/0/singleton.rbs +0 -3
  361. data/stdlib/socket/0/addrinfo.rbs +13 -18
  362. data/stdlib/socket/0/basic_socket.rbs +5 -10
  363. data/stdlib/socket/0/ip_socket.rbs +0 -2
  364. data/stdlib/socket/0/socket.rbs +77 -46
  365. data/stdlib/socket/0/tcp_server.rbs +0 -5
  366. data/stdlib/socket/0/tcp_socket.rbs +36 -3
  367. data/stdlib/socket/0/udp_socket.rbs +4 -5
  368. data/stdlib/socket/0/unix_server.rbs +0 -5
  369. data/stdlib/socket/0/unix_socket.rbs +2 -4
  370. data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +188 -107
  371. data/stdlib/strscan/0/string_scanner.rbs +1269 -425
  372. data/stdlib/tempfile/0/tempfile.rbs +224 -61
  373. data/stdlib/time/0/time.rbs +48 -35
  374. data/stdlib/timeout/0/timeout.rbs +17 -8
  375. data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
  376. data/stdlib/tsort/0/tsort.rbs +0 -4
  377. data/stdlib/uri/0/common.rbs +271 -144
  378. data/stdlib/uri/0/file.rbs +5 -0
  379. data/stdlib/uri/0/ftp.rbs +1 -1
  380. data/stdlib/uri/0/generic.rbs +26 -22
  381. data/stdlib/uri/0/http.rbs +4 -4
  382. data/stdlib/uri/0/ldap.rbs +1 -1
  383. data/stdlib/uri/0/mailto.rbs +84 -0
  384. data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
  385. data/stdlib/yaml/0/manifest.yaml +1 -2
  386. data/stdlib/yaml/0/yaml.rbs +1 -199
  387. data/stdlib/zlib/0/buf_error.rbs +10 -0
  388. data/stdlib/zlib/0/data_error.rbs +10 -0
  389. data/stdlib/zlib/0/deflate.rbs +210 -0
  390. data/stdlib/zlib/0/error.rbs +20 -0
  391. data/stdlib/zlib/0/gzip_file/crc_error.rbs +12 -0
  392. data/stdlib/zlib/0/gzip_file/error.rbs +23 -0
  393. data/stdlib/zlib/0/gzip_file/length_error.rbs +12 -0
  394. data/stdlib/zlib/0/gzip_file/no_footer.rbs +11 -0
  395. data/stdlib/zlib/0/gzip_file.rbs +156 -0
  396. data/stdlib/zlib/0/gzip_reader.rbs +293 -0
  397. data/stdlib/zlib/0/gzip_writer.rbs +166 -0
  398. data/stdlib/zlib/0/inflate.rbs +180 -0
  399. data/stdlib/zlib/0/mem_error.rbs +10 -0
  400. data/stdlib/zlib/0/need_dict.rbs +13 -0
  401. data/stdlib/zlib/0/stream_end.rbs +11 -0
  402. data/stdlib/zlib/0/stream_error.rbs +11 -0
  403. data/stdlib/zlib/0/version_error.rbs +11 -0
  404. data/stdlib/zlib/0/zlib.rbs +1 -3
  405. data/stdlib/zlib/0/zstream.rbs +200 -0
  406. data/templates/include/rbs/constants.h.erb +20 -0
  407. data/templates/include/rbs/ruby_objs.h.erb +10 -0
  408. data/templates/src/constants.c.erb +36 -0
  409. data/templates/src/ruby_objs.c.erb +27 -0
  410. data/templates/template.rb +122 -0
  411. metadata +136 -36
  412. data/Gemfile +0 -33
  413. data/Gemfile.lock +0 -118
  414. data/core/deprecated.rbs +0 -9
  415. data/ext/rbs_extension/constants.c +0 -135
  416. data/ext/rbs_extension/ruby_objs.c +0 -525
  417. data/ext/rbs_extension/ruby_objs.h +0 -43
  418. data/lib/rbs/constant_table.rb +0 -167
  419. data/lib/rbs/parser_compat/lexer_error.rb +0 -6
  420. data/lib/rbs/parser_compat/located_value.rb +0 -7
  421. data/lib/rbs/parser_compat/semantics_error.rb +0 -6
  422. data/lib/rbs/parser_compat/syntax_error.rb +0 -6
  423. data/lib/rbs/test/spy.rb +0 -6
  424. data/lib/rbs/type_name_resolver.rb +0 -67
  425. data/sig/constant_table.rbs +0 -30
  426. data/sig/shims/abstract_syntax_tree.rbs +0 -25
  427. data/sig/shims/pp.rbs +0 -3
  428. data/sig/shims/ripper.rbs +0 -8
  429. data/sig/shims.rbs +0 -69
  430. data/sig/type_name_resolver.rbs +0 -26
  431. data/stdlib/minitest/0/manifest.yaml +0 -2
  432. data/stdlib/prime/0/integer-extension.rbs +0 -41
  433. data/stdlib/prime/0/manifest.yaml +0 -2
  434. data/stdlib/prime/0/prime.rbs +0 -372
@@ -0,0 +1,210 @@
1
+ %a{annotate:rdoc:skip}
2
+ module Zlib
3
+ # <!-- rdoc-file=ext/zlib/zlib.c -->
4
+ # Zlib::Deflate is the class for compressing data. See Zlib::ZStream for more
5
+ # information.
6
+ #
7
+ class Deflate < Zlib::ZStream
8
+ type compression_level = Integer
9
+
10
+ # <!--
11
+ # rdoc-file=ext/zlib/zlib.c
12
+ # - Zlib.deflate(string[, level])
13
+ # - Zlib::Deflate.deflate(string[, level])
14
+ # -->
15
+ # Compresses the given `string`. Valid values of level are Zlib::NO_COMPRESSION,
16
+ # Zlib::BEST_SPEED, Zlib::BEST_COMPRESSION, Zlib::DEFAULT_COMPRESSION, or an
17
+ # integer from 0 to 9.
18
+ #
19
+ # This method is almost equivalent to the following code:
20
+ #
21
+ # def deflate(string, level)
22
+ # z = Zlib::Deflate.new(level)
23
+ # dst = z.deflate(string, Zlib::FINISH)
24
+ # z.close
25
+ # dst
26
+ # end
27
+ #
28
+ # See also Zlib.inflate
29
+ #
30
+ def self.deflate: (string string, ?compression_level level) -> String
31
+
32
+ # <!--
33
+ # rdoc-file=ext/zlib/zlib.c
34
+ # - << string
35
+ # -->
36
+ # Inputs `string` into the deflate stream just like Zlib::Deflate#deflate, but
37
+ # returns the Zlib::Deflate object itself. The output from the stream is
38
+ # preserved in output buffer.
39
+ #
40
+ def <<: (string string) -> self
41
+
42
+ # <!--
43
+ # rdoc-file=ext/zlib/zlib.c
44
+ # - z.deflate(string, flush = Zlib::NO_FLUSH) -> String
45
+ # - z.deflate(string, flush = Zlib::NO_FLUSH) { |chunk| ... } -> nil
46
+ # -->
47
+ # Inputs `string` into the deflate stream and returns the output from the
48
+ # stream. On calling this method, both the input and the output buffers of the
49
+ # stream are flushed. If `string` is nil, this method finishes the stream, just
50
+ # like Zlib::ZStream#finish.
51
+ #
52
+ # If a block is given consecutive deflated chunks from the `string` are yielded
53
+ # to the block and `nil` is returned.
54
+ #
55
+ # The `flush` parameter specifies the flush mode. The following constants may
56
+ # be used:
57
+ #
58
+ # Zlib::NO_FLUSH
59
+ # : The default
60
+ #
61
+ # Zlib::SYNC_FLUSH
62
+ # : Flushes the output to a byte boundary
63
+ #
64
+ # Zlib::FULL_FLUSH
65
+ # : SYNC_FLUSH + resets the compression state
66
+ #
67
+ # Zlib::FINISH
68
+ # : Pending input is processed, pending output is flushed.
69
+ #
70
+ #
71
+ # See the constants for further description.
72
+ #
73
+ def deflate: (string string, ?Integer flush) -> String
74
+ | (string string, ?Integer flush) { (String chunk) -> nil } -> nil
75
+
76
+ # <!--
77
+ # rdoc-file=ext/zlib/zlib.c
78
+ # - flush(flush = Zlib::SYNC_FLUSH) -> String
79
+ # - flush(flush = Zlib::SYNC_FLUSH) { |chunk| ... } -> nil
80
+ # -->
81
+ # This method is equivalent to `deflate('', flush)`. This method is just
82
+ # provided to improve the readability of your Ruby program. If a block is given
83
+ # chunks of deflate output are yielded to the block until the buffer is flushed.
84
+ #
85
+ # See Zlib::Deflate#deflate for detail on the `flush` constants NO_FLUSH,
86
+ # SYNC_FLUSH, FULL_FLUSH and FINISH.
87
+ #
88
+ def flush: (?Integer flush) -> String
89
+ | (?Integer flush) { (String chunk) -> nil } -> nil
90
+
91
+ # <!--
92
+ # rdoc-file=ext/zlib/zlib.c
93
+ # - params(level, strategy)
94
+ # -->
95
+ # Changes the parameters of the deflate stream to allow changes between
96
+ # different types of data that require different types of compression. Any
97
+ # unprocessed data is flushed before changing the params.
98
+ #
99
+ # See Zlib::Deflate.new for a description of `level` and `strategy`.
100
+ #
101
+ def params: (compression_level level, Integer strategy) -> void
102
+
103
+ # <!--
104
+ # rdoc-file=ext/zlib/zlib.c
105
+ # - set_dictionary(string)
106
+ # -->
107
+ # Sets the preset dictionary and returns `string`. This method is available just
108
+ # only after Zlib::Deflate.new or Zlib::ZStream#reset method was called. See
109
+ # zlib.h for details.
110
+ #
111
+ # Can raise errors of Z_STREAM_ERROR if a parameter is invalid (such as NULL
112
+ # dictionary) or the stream state is inconsistent, Z_DATA_ERROR if the given
113
+ # dictionary doesn't match the expected one (incorrect adler32 value)
114
+ #
115
+ def set_dictionary: (String dictionary) -> String
116
+
117
+ private
118
+
119
+ # <!--
120
+ # rdoc-file=ext/zlib/zlib.c
121
+ # - Zlib::Deflate.new(level=DEFAULT_COMPRESSION, window_bits=MAX_WBITS, mem_level=DEF_MEM_LEVEL, strategy=DEFAULT_STRATEGY)
122
+ # -->
123
+ # Creates a new deflate stream for compression. If a given argument is nil, the
124
+ # default value of that argument is used.
125
+ #
126
+ # The `level` sets the compression level for the deflate stream between 0 (no
127
+ # compression) and 9 (best compression). The following constants have been
128
+ # defined to make code more readable:
129
+ #
130
+ # * Zlib::DEFAULT_COMPRESSION
131
+ # * Zlib::NO_COMPRESSION
132
+ # * Zlib::BEST_SPEED
133
+ # * Zlib::BEST_COMPRESSION
134
+ #
135
+ # See http://www.zlib.net/manual.html#Constants for further information.
136
+ #
137
+ # The `window_bits` sets the size of the history buffer and should be between 8
138
+ # and 15. Larger values of this parameter result in better compression at the
139
+ # expense of memory usage.
140
+ #
141
+ # The `mem_level` specifies how much memory should be allocated for the internal
142
+ # compression state. 1 uses minimum memory but is slow and reduces compression
143
+ # ratio while 9 uses maximum memory for optimal speed. The default value is 8.
144
+ # Two constants are defined:
145
+ #
146
+ # * Zlib::DEF_MEM_LEVEL
147
+ # * Zlib::MAX_MEM_LEVEL
148
+ #
149
+ # The `strategy` sets the deflate compression strategy. The following
150
+ # strategies are available:
151
+ #
152
+ # Zlib::DEFAULT_STRATEGY
153
+ # : For normal data
154
+ #
155
+ # Zlib::FILTERED
156
+ # : For data produced by a filter or predictor
157
+ #
158
+ # Zlib::FIXED
159
+ # : Prevents dynamic Huffman codes
160
+ #
161
+ # Zlib::HUFFMAN_ONLY
162
+ # : Prevents string matching
163
+ #
164
+ # Zlib::RLE
165
+ # : Designed for better compression of PNG image data
166
+ #
167
+ #
168
+ # See the constants for further description.
169
+ #
170
+ # ## Examples
171
+ #
172
+ # ### Basic
173
+ #
174
+ # open "compressed.file", "w+" do |io|
175
+ # io << Zlib::Deflate.new.deflate(File.read("big.file"))
176
+ # end
177
+ #
178
+ # ### Custom compression
179
+ #
180
+ # open "compressed.file", "w+" do |compressed_io|
181
+ # deflate = Zlib::Deflate.new(Zlib::BEST_COMPRESSION,
182
+ # Zlib::MAX_WBITS,
183
+ # Zlib::MAX_MEM_LEVEL,
184
+ # Zlib::HUFFMAN_ONLY)
185
+ #
186
+ # begin
187
+ # open "big.file" do |big_io|
188
+ # until big_io.eof? do
189
+ # compressed_io << zd.deflate(big_io.read(16384))
190
+ # end
191
+ # end
192
+ # ensure
193
+ # deflate.close
194
+ # end
195
+ # end
196
+ #
197
+ # While this example will work, for best optimization review the flags for your
198
+ # specific time, memory usage and output space requirements.
199
+ #
200
+ def initialize: (?compression_level level, ?Integer window_bits, ?Integer mem_level, ?Integer strategy) -> void
201
+
202
+ # <!--
203
+ # rdoc-file=ext/zlib/zlib.c
204
+ # - initialize_copy(p1)
205
+ # -->
206
+ # Duplicates the deflate stream.
207
+ #
208
+ def initialize_copy: (self other) -> self
209
+ end
210
+ end
@@ -0,0 +1,20 @@
1
+ %a{annotate:rdoc:skip}
2
+ module Zlib
3
+ # <!-- rdoc-file=ext/zlib/zlib.c -->
4
+ # The superclass for all exceptions raised by Ruby/zlib.
5
+ #
6
+ # The following exceptions are defined as subclasses of Zlib::Error. These
7
+ # exceptions are raised when zlib library functions return with an error status.
8
+ #
9
+ # * Zlib::StreamEnd
10
+ # * Zlib::NeedDict
11
+ # * Zlib::DataError
12
+ # * Zlib::StreamError
13
+ # * Zlib::MemError
14
+ # * Zlib::BufError
15
+ # * Zlib::VersionError
16
+ # * Zlib::InProgressError
17
+ #
18
+ class Error < StandardError
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ %a{annotate:rdoc:skip}
2
+ module Zlib
3
+ %a{annotate:rdoc:skip}
4
+ class GzipFile
5
+ # <!-- rdoc-file=ext/zlib/zlib.c -->
6
+ # Raised when the CRC checksum recorded in gzip file footer is not equivalent to
7
+ # the CRC checksum of the actual uncompressed data.
8
+ #
9
+ class CRCError < Zlib::GzipFile::Error
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,23 @@
1
+ %a{annotate:rdoc:skip}
2
+ module Zlib
3
+ %a{annotate:rdoc:skip}
4
+ class GzipFile
5
+ # <!-- rdoc-file=ext/zlib/zlib.c -->
6
+ # Base class of errors that occur when processing GZIP files.
7
+ #
8
+ class Error < Zlib::Error
9
+ # <!-- rdoc-file=ext/zlib/zlib.c -->
10
+ # input gzipped string
11
+ #
12
+ def input: () -> String
13
+
14
+ # <!--
15
+ # rdoc-file=ext/zlib/zlib.c
16
+ # - inspect()
17
+ # -->
18
+ # Constructs a String of the GzipFile Error
19
+ #
20
+ def inspect: () -> String
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,12 @@
1
+ %a{annotate:rdoc:skip}
2
+ module Zlib
3
+ %a{annotate:rdoc:skip}
4
+ class GzipFile
5
+ # <!-- rdoc-file=ext/zlib/zlib.c -->
6
+ # Raised when the data length recorded in the gzip file footer is not equivalent
7
+ # to the length of the actual uncompressed data.
8
+ #
9
+ class LengthError < Zlib::GzipFile::Error
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ %a{annotate:rdoc:skip}
2
+ module Zlib
3
+ %a{annotate:rdoc:skip}
4
+ class GzipFile
5
+ # <!-- rdoc-file=ext/zlib/zlib.c -->
6
+ # Raised when gzip file footer is not found.
7
+ #
8
+ class NoFooter < Zlib::GzipFile::Error
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,156 @@
1
+ %a{annotate:rdoc:skip}
2
+ module Zlib
3
+ # <!-- rdoc-file=ext/zlib/zlib.c -->
4
+ # Zlib::GzipFile is an abstract class for handling a gzip formatted compressed
5
+ # file. The operations are defined in the subclasses, Zlib::GzipReader for
6
+ # reading, and Zlib::GzipWriter for writing.
7
+ #
8
+ # GzipReader should be used by associating an IO, or IO-like, object.
9
+ #
10
+ # ## Method Catalogue
11
+ #
12
+ # * ::wrap
13
+ # * ::open (Zlib::GzipReader::open and Zlib::GzipWriter::open)
14
+ # * #close
15
+ # * #closed?
16
+ # * #comment
17
+ # * comment= (Zlib::GzipWriter#comment=)
18
+ # * #crc
19
+ # * eof? (Zlib::GzipReader#eof?)
20
+ # * #finish
21
+ # * #level
22
+ # * lineno (Zlib::GzipReader#lineno)
23
+ # * lineno= (Zlib::GzipReader#lineno=)
24
+ # * #mtime
25
+ # * mtime= (Zlib::GzipWriter#mtime=)
26
+ # * #orig_name
27
+ # * orig_name (Zlib::GzipWriter#orig_name=)
28
+ # * #os_code
29
+ # * path (when the underlying IO supports #path)
30
+ # * #sync
31
+ # * #sync=
32
+ # * #to_io
33
+ #
34
+ # (due to internal structure, documentation may appear under Zlib::GzipReader or
35
+ # Zlib::GzipWriter)
36
+ #
37
+ class GzipFile
38
+ # <!--
39
+ # rdoc-file=ext/zlib/zlib.c
40
+ # - Zlib::GzipReader.wrap(io, ...) { |gz| ... }
41
+ # - Zlib::GzipWriter.wrap(io, ...) { |gz| ... }
42
+ # -->
43
+ # Creates a GzipReader or GzipWriter associated with `io`, passing in any
44
+ # necessary extra options, and executes the block with the newly created object
45
+ # just like File.open.
46
+ #
47
+ # The GzipFile object will be closed automatically after executing the block. If
48
+ # you want to keep the associated IO object open, you may call
49
+ # Zlib::GzipFile#finish method in the block.
50
+ #
51
+ def self.wrap: (IO io, *untyped) { (instance gz) -> void } -> void
52
+
53
+ # <!--
54
+ # rdoc-file=ext/zlib/zlib.c
55
+ # - close()
56
+ # -->
57
+ # Closes the GzipFile object. This method calls close method of the associated
58
+ # IO object. Returns the associated IO object.
59
+ #
60
+ def close: () -> void
61
+
62
+ # <!--
63
+ # rdoc-file=ext/zlib/zlib.c
64
+ # - closed?()
65
+ # -->
66
+ # Same as IO#closed?
67
+ #
68
+ def closed?: () -> void
69
+
70
+ # <!--
71
+ # rdoc-file=ext/zlib/zlib.c
72
+ # - comment()
73
+ # -->
74
+ # Returns comments recorded in the gzip file header, or nil if the comments is
75
+ # not present.
76
+ #
77
+ def comment: () -> String?
78
+
79
+ # <!--
80
+ # rdoc-file=ext/zlib/zlib.c
81
+ # - crc()
82
+ # -->
83
+ # Returns CRC value of the uncompressed data.
84
+ #
85
+ def crc: () -> Integer
86
+
87
+ # <!--
88
+ # rdoc-file=ext/zlib/zlib.c
89
+ # - finish()
90
+ # -->
91
+ # Closes the GzipFile object. Unlike Zlib::GzipFile#close, this method never
92
+ # calls the close method of the associated IO object. Returns the associated IO
93
+ # object.
94
+ #
95
+ def finish: () -> IO
96
+
97
+ # <!--
98
+ # rdoc-file=ext/zlib/zlib.c
99
+ # - level()
100
+ # -->
101
+ # Returns compression level.
102
+ #
103
+ def level: () -> Integer
104
+
105
+ # <!--
106
+ # rdoc-file=ext/zlib/zlib.c
107
+ # - mtime()
108
+ # -->
109
+ # Returns last modification time recorded in the gzip file header.
110
+ #
111
+ def mtime: () -> Time
112
+
113
+ # <!--
114
+ # rdoc-file=ext/zlib/zlib.c
115
+ # - orig_name()
116
+ # -->
117
+ # Returns original filename recorded in the gzip file header, or `nil` if
118
+ # original filename is not present.
119
+ #
120
+ def orig_name: () -> String?
121
+
122
+ # <!--
123
+ # rdoc-file=ext/zlib/zlib.c
124
+ # - os_code()
125
+ # -->
126
+ # Returns OS code number recorded in the gzip file header.
127
+ #
128
+ def os_code: () -> Integer
129
+
130
+ # <!--
131
+ # rdoc-file=ext/zlib/zlib.c
132
+ # - sync()
133
+ # -->
134
+ # Same as IO#sync
135
+ #
136
+ def sync: () -> bool
137
+
138
+ # <!--
139
+ # rdoc-file=ext/zlib/zlib.c
140
+ # - sync = flag
141
+ # -->
142
+ # Same as IO. If flag is `true`, the associated IO object must respond to the
143
+ # `flush` method. While `sync` mode is `true`, the compression ratio decreases
144
+ # sharply.
145
+ #
146
+ def sync=: (boolish) -> untyped
147
+
148
+ # <!--
149
+ # rdoc-file=ext/zlib/zlib.c
150
+ # - to_io()
151
+ # -->
152
+ # Same as IO.
153
+ #
154
+ def to_io: () -> IO
155
+ end
156
+ end