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,421 @@
1
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
2
+ # ## Introduction
3
+ #
4
+ # The DBM class provides a wrapper to a Unix-style
5
+ # [dbm](https://en.wikipedia.org/wiki/Dbm) or Database Manager library.
6
+ #
7
+ # Dbm databases do not have tables or columns; they are simple key-value data
8
+ # stores, like a Ruby Hash except not resident in RAM. Keys and values must be
9
+ # strings.
10
+ #
11
+ # The exact library used depends on how Ruby was compiled. It could be any of
12
+ # the following:
13
+ #
14
+ # * The original ndbm library is released in 4.3BSD. It is based on dbm
15
+ # library in Unix Version 7 but has different API to support multiple
16
+ # databases in a process.
17
+ # * [Berkeley DB](https://en.wikipedia.org/wiki/Berkeley_DB) versions 1 thru
18
+ # 6, also known as BDB and Sleepycat DB, now owned by Oracle Corporation.
19
+ # * Berkeley DB 1.x, still found in 4.4BSD derivatives (FreeBSD, OpenBSD,
20
+ # etc).
21
+ # * [gdbm](http://www.gnu.org/software/gdbm/), the GNU implementation of dbm.
22
+ # * [qdbm](http://fallabs.com/qdbm/index.html), another open source
23
+ # reimplementation of dbm.
24
+ #
25
+ #
26
+ # All of these dbm implementations have their own Ruby interfaces available,
27
+ # which provide richer (but varying) APIs.
28
+ #
29
+ # ## Cautions
30
+ #
31
+ # Before you decide to use DBM, there are some issues you should consider:
32
+ #
33
+ # * Each implementation of dbm has its own file format. Generally, dbm
34
+ # libraries will not read each other's files. This makes dbm files a bad
35
+ # choice for data exchange.
36
+ #
37
+ # * Even running the same OS and the same dbm implementation, the database
38
+ # file format may depend on the CPU architecture. For example, files may not
39
+ # be portable between PowerPC and 386, or between 32 and 64 bit Linux.
40
+ #
41
+ # * Different versions of Berkeley DB use different file formats. A change to
42
+ # the OS may therefore break DBM access to existing files.
43
+ #
44
+ # * Data size limits vary between implementations. Original Berkeley DB was
45
+ # limited to 2GB of data. Dbm libraries also sometimes limit the total size
46
+ # of a key/value pair, and the total size of all the keys that hash to the
47
+ # same value. These limits can be as little as 512 bytes. That said, gdbm
48
+ # and recent versions of Berkeley DB do away with these limits.
49
+ #
50
+ #
51
+ # Given the above cautions, DBM is not a good choice for long term storage of
52
+ # important data. It is probably best used as a fast and easy alternative to a
53
+ # Hash for processing large amounts of data.
54
+ #
55
+ # ## Example
56
+ #
57
+ # require 'dbm'
58
+ # db = DBM.open('rfcs', 0666, DBM::WRCREAT)
59
+ # db['822'] = 'Standard for the Format of ARPA Internet Text Messages'
60
+ # db['1123'] = 'Requirements for Internet Hosts - Application and Support'
61
+ # db['3068'] = 'An Anycast Prefix for 6to4 Relay Routers'
62
+ # puts db['822']
63
+ #
64
+ class DBM
65
+ include Enumerable[[ String, String ]]
66
+
67
+ # <!--
68
+ # rdoc-file=ext/dbm/dbm.c
69
+ # - DBM.open(filename[, mode[, flags]]) -> dbm
70
+ # - DBM.open(filename[, mode[, flags]]) {|dbm| block}
71
+ # -->
72
+ # Open a dbm database and yields it if a block is given. See also `DBM.new`.
73
+ #
74
+ def self.open: (String filename, ?Integer mode, ?Integer flags) -> DBM
75
+ | [T] (String filename, ?Integer mode, ?Integer flags) { (DBM) -> T } -> T
76
+
77
+ # <!--
78
+ # rdoc-file=ext/dbm/dbm.c
79
+ # - dbm[key] -> string value or nil
80
+ # -->
81
+ # Return a value from the database by locating the key string provided. If the
82
+ # key is not found, returns nil.
83
+ #
84
+ def []: (String) -> String?
85
+
86
+ # <!--
87
+ # rdoc-file=ext/dbm/dbm.c
88
+ # - dbm.store(key, value) -> value
89
+ # - dbm[key] = value
90
+ # -->
91
+ # Stores the specified string value in the database, indexed via the string key
92
+ # provided.
93
+ #
94
+ def []=: (String, String) -> String
95
+
96
+ # <!--
97
+ # rdoc-file=ext/dbm/dbm.c
98
+ # - dbm.clear
99
+ # -->
100
+ # Deletes all data from the database.
101
+ #
102
+ def clear: () -> self
103
+
104
+ # <!--
105
+ # rdoc-file=ext/dbm/dbm.c
106
+ # - dbm.close
107
+ # -->
108
+ # Closes the database.
109
+ #
110
+ def close: () -> void
111
+
112
+ # <!--
113
+ # rdoc-file=ext/dbm/dbm.c
114
+ # - dbm.closed? -> true or false
115
+ # -->
116
+ # Returns true if the database is closed, false otherwise.
117
+ #
118
+ def closed?: () -> bool
119
+
120
+ # <!--
121
+ # rdoc-file=ext/dbm/dbm.c
122
+ # - dbm.delete(key)
123
+ # -->
124
+ # Deletes an entry from the database.
125
+ #
126
+ def delete: (String) -> void
127
+
128
+ # <!--
129
+ # rdoc-file=ext/dbm/dbm.c
130
+ # - dbm.reject! {|key, value| block} -> self
131
+ # - dbm.delete_if {|key, value| block} -> self
132
+ # -->
133
+ # Deletes all entries for which the code block returns true. Returns self.
134
+ #
135
+ def delete_if: () { (String) -> boolish } -> self
136
+
137
+ # <!--
138
+ # rdoc-file=ext/dbm/dbm.c
139
+ # - dbm.each_pair {|key,value| block} -> self
140
+ # -->
141
+ # Calls the block once for each [key, value] pair in the database. Returns self.
142
+ #
143
+ def each: () { ([ String, String ]) -> void } -> self
144
+ | () -> Enumerator[[ String, String ], self]
145
+
146
+ # <!--
147
+ # rdoc-file=ext/dbm/dbm.c
148
+ # - dbm.each_key {|key| block} -> self
149
+ # -->
150
+ # Calls the block once for each key string in the database. Returns self.
151
+ #
152
+ def each_key: () { (String) -> void } -> self
153
+ | () -> Enumerator[String, self]
154
+
155
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
156
+ # Calls the block once for each [key, value] pair in the database. Returns self.
157
+ #
158
+ def each_pair: () { ([ String, String ]) -> void } -> self
159
+ | () -> Enumerator[[ String, String ], self]
160
+
161
+ # <!--
162
+ # rdoc-file=ext/dbm/dbm.c
163
+ # - dbm.each_value {|value| block} -> self
164
+ # -->
165
+ # Calls the block once for each value string in the database. Returns self.
166
+ #
167
+ def each_value: () { (String) -> void } -> self
168
+ | () -> Enumerator[String, self]
169
+
170
+ # <!--
171
+ # rdoc-file=ext/dbm/dbm.c
172
+ # - dbm.empty?
173
+ # -->
174
+ # Returns true if the database is empty, false otherwise.
175
+ #
176
+ def empty?: () -> bool
177
+
178
+ # <!--
179
+ # rdoc-file=ext/dbm/dbm.c
180
+ # - dbm.fetch(key[, ifnone]) -> value
181
+ # -->
182
+ # Return a value from the database by locating the key string provided. If the
183
+ # key is not found, returns `ifnone`. If `ifnone` is not given, raises
184
+ # IndexError.
185
+ #
186
+ def fetch: (String key, ?String ifnone) -> String
187
+
188
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
189
+ # Returns true if the database contains the specified key, false otherwise.
190
+ #
191
+ def has_key?: (String) -> bool
192
+
193
+ # <!--
194
+ # rdoc-file=ext/dbm/dbm.c
195
+ # - dbm.has_value?(value) -> boolean
196
+ # - dbm.value?(value) -> boolean
197
+ # -->
198
+ # Returns true if the database contains the specified string value, false
199
+ # otherwise.
200
+ #
201
+ def has_value?: () -> bool
202
+
203
+ # <!--
204
+ # rdoc-file=ext/dbm/dbm.c
205
+ # - dbm.include?(key) -> boolean
206
+ # - dbm.has_key?(key) -> boolean
207
+ # - dbm.member?(key) -> boolean
208
+ # - dbm.key?(key) -> boolean
209
+ # -->
210
+ # Returns true if the database contains the specified key, false otherwise.
211
+ #
212
+ def include?: (String) -> bool
213
+
214
+ # <!--
215
+ # rdoc-file=ext/dbm/dbm.c
216
+ # - dbm.invert -> hash
217
+ # -->
218
+ # Returns a Hash (not a DBM database) created by using each value in the
219
+ # database as a key, with the corresponding key as its value.
220
+ #
221
+ def invert: () -> Hash[String, String]
222
+
223
+ # <!--
224
+ # rdoc-file=ext/dbm/dbm.c
225
+ # - dbm.key(value) -> string
226
+ # -->
227
+ # Returns the key for the specified value.
228
+ #
229
+ def key: (String) -> String?
230
+
231
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
232
+ # Returns true if the database contains the specified key, false otherwise.
233
+ #
234
+ def key?: (String) -> bool
235
+
236
+ # <!--
237
+ # rdoc-file=ext/dbm/dbm.c
238
+ # - dbm.keys -> array
239
+ # -->
240
+ # Returns an array of all the string keys in the database.
241
+ #
242
+ def keys: () -> Array[String]
243
+
244
+ # <!--
245
+ # rdoc-file=ext/dbm/dbm.c
246
+ # - dbm.length -> integer
247
+ # - dbm.size -> integer
248
+ # -->
249
+ # Returns the number of entries in the database.
250
+ #
251
+ def length: () -> Integer
252
+
253
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
254
+ # Returns true if the database contains the specified key, false otherwise.
255
+ #
256
+ def member?: (String) -> bool
257
+
258
+ # <!--
259
+ # rdoc-file=ext/dbm/dbm.c
260
+ # - dbm.reject {|key,value| block} -> Hash
261
+ # -->
262
+ # Converts the contents of the database to an in-memory Hash, then calls
263
+ # Hash#reject with the specified code block, returning a new Hash.
264
+ #
265
+ def reject: () { (String, String) -> boolish } -> Hash[String, String]
266
+
267
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
268
+ # Deletes all entries for which the code block returns true. Returns self.
269
+ #
270
+ def reject!: () { (String, String) -> boolish } -> self
271
+
272
+ # <!--
273
+ # rdoc-file=ext/dbm/dbm.c
274
+ # - dbm.replace(obj)
275
+ # -->
276
+ # Replaces the contents of the database with the contents of the specified
277
+ # object. Takes any object which implements the each_pair method, including Hash
278
+ # and DBM objects.
279
+ #
280
+ def replace: (_ReplaceSource) -> ::DBM
281
+
282
+ interface _ReplaceSource
283
+ def each_pair: () { ([ String, String ]) -> void } -> void
284
+ end
285
+
286
+ # <!--
287
+ # rdoc-file=ext/dbm/dbm.c
288
+ # - dbm.select {|key, value| block} -> array
289
+ # -->
290
+ # Returns a new array consisting of the [key, value] pairs for which the code
291
+ # block returns true.
292
+ #
293
+ def select: () { ([ String, String ]) -> boolish } -> Array[[ String, String ]]
294
+
295
+ # <!--
296
+ # rdoc-file=ext/dbm/dbm.c
297
+ # - dbm.shift() -> [key, value]
298
+ # -->
299
+ # Removes a [key, value] pair from the database, and returns it. If the database
300
+ # is empty, returns nil. The order in which values are removed/returned is not
301
+ # guaranteed.
302
+ #
303
+ def shift: () -> [ String, String ]?
304
+
305
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
306
+ # Returns the number of entries in the database.
307
+ #
308
+ def size: () -> Integer
309
+
310
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
311
+ # Stores the specified string value in the database, indexed via the string key
312
+ # provided.
313
+ #
314
+ def store: (String, String) -> String
315
+
316
+ # <!--
317
+ # rdoc-file=ext/dbm/dbm.c
318
+ # - dbm.to_a -> array
319
+ # -->
320
+ # Converts the contents of the database to an array of [key, value] arrays, and
321
+ # returns it.
322
+ #
323
+ def to_a: () -> Array[[ String, String ]]
324
+
325
+ # <!--
326
+ # rdoc-file=ext/dbm/dbm.c
327
+ # - dbm.to_hash -> hash
328
+ # -->
329
+ # Converts the contents of the database to an in-memory Hash object, and returns
330
+ # it.
331
+ #
332
+ def to_hash: () -> Hash[String, String]
333
+
334
+ # <!--
335
+ # rdoc-file=ext/dbm/dbm.c
336
+ # - dbm.update(obj)
337
+ # -->
338
+ # Updates the database with multiple values from the specified object. Takes any
339
+ # object which implements the each_pair method, including Hash and DBM objects.
340
+ #
341
+ def update: (_UpdateSource) -> ::DBM
342
+
343
+ interface _UpdateSource
344
+ def each_pair: () { ([ String, String ]) -> void } -> void
345
+ end
346
+
347
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
348
+ # Returns true if the database contains the specified string value, false
349
+ # otherwise.
350
+ #
351
+ def value?: (String) -> bool
352
+
353
+ # <!--
354
+ # rdoc-file=ext/dbm/dbm.c
355
+ # - dbm.values -> array
356
+ # -->
357
+ # Returns an array of all the string values in the database.
358
+ #
359
+ def values: () -> Array[String]
360
+
361
+ # <!--
362
+ # rdoc-file=ext/dbm/dbm.c
363
+ # - dbm.values_at(key, ...) -> Array
364
+ # -->
365
+ # Returns an array containing the values associated with the given keys.
366
+ #
367
+ def values_at: (*String) -> Array[String]
368
+
369
+ private
370
+
371
+ # <!--
372
+ # rdoc-file=ext/dbm/dbm.c
373
+ # - DBM.new(filename[, mode[, flags]]) -> dbm
374
+ # -->
375
+ # Open a dbm database with the specified name, which can include a directory
376
+ # path. Any file extensions needed will be supplied automatically by the dbm
377
+ # library. For example, Berkeley DB appends '.db', and GNU gdbm uses two
378
+ # physical files with extensions '.dir' and '.pag'.
379
+ #
380
+ # The mode should be an integer, as for Unix chmod.
381
+ #
382
+ # Flags should be one of READER, WRITER, WRCREAT or NEWDB.
383
+ #
384
+ def initialize: (String filename, ?Integer mode, ?Integer flags) -> void
385
+ end
386
+
387
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
388
+ # Indicates that dbm_open() should open the database in read/write mode, create
389
+ # it if it does not already exist, and delete all contents if it does already
390
+ # exist.
391
+ #
392
+ DBM::NEWDB: Integer
393
+
394
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
395
+ # Indicates that dbm_open() should open the database in read-only mode
396
+ #
397
+ DBM::READER: Integer
398
+
399
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
400
+ # Identifies ndbm library version.
401
+ #
402
+ # Examples:
403
+ #
404
+ # * "ndbm (4.3BSD)"
405
+ # * "Berkeley DB 4.8.30: (April 9, 2010)"
406
+ # * "Berkeley DB (unknown)" (4.4BSD, maybe)
407
+ # * "GDBM version 1.8.3. 10/15/2002 (built Jul 1 2011 12:32:45)"
408
+ # * "QDBM 1.8.78"
409
+ #
410
+ DBM::VERSION: String
411
+
412
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
413
+ # Indicates that dbm_open() should open the database in read/write mode, and
414
+ # create it if it does not already exist
415
+ #
416
+ DBM::WRCREAT: Integer
417
+
418
+ # <!-- rdoc-file=ext/dbm/dbm.c -->
419
+ # Indicates that dbm_open() should open the database in read/write mode
420
+ #
421
+ DBM::WRITER: Integer
@@ -0,0 +1,184 @@
1
+ # <!-- rdoc-file=lib/delegate.rb -->
2
+ # This library provides three different ways to delegate method calls to an
3
+ # object. The easiest to use is SimpleDelegator. Pass an object to the
4
+ # constructor and all methods supported by the object will be delegated. This
5
+ # object can be changed later.
6
+ #
7
+ # Going a step further, the top level DelegateClass method allows you to easily
8
+ # setup delegation through class inheritance. This is considerably more
9
+ # flexible and thus probably the most common use for this library.
10
+ #
11
+ # Finally, if you need full control over the delegation scheme, you can inherit
12
+ # from the abstract class Delegator and customize as needed. (If you find
13
+ # yourself needing this control, have a look at Forwardable which is also in the
14
+ # standard library. It may suit your needs better.)
15
+ #
16
+ # SimpleDelegator's implementation serves as a nice example of the use of
17
+ # Delegator:
18
+ #
19
+ # require 'delegate'
20
+ #
21
+ # class SimpleDelegator < Delegator
22
+ # def __getobj__
23
+ # @delegate_sd_obj # return object we are delegating to, required
24
+ # end
25
+ #
26
+ # def __setobj__(obj)
27
+ # @delegate_sd_obj = obj # change delegation object,
28
+ # # a feature we're providing
29
+ # end
30
+ # end
31
+ #
32
+ # ## Notes
33
+ #
34
+ # Be advised, RDoc will not detect delegated methods.
35
+ #
36
+ class Delegator < BasicObject
37
+ def self.const_missing: (Symbol n) -> untyped
38
+
39
+ def self.delegating_block: (Symbol mid) -> Proc
40
+
41
+ def self.public_api: () -> untyped
42
+
43
+ # <!--
44
+ # rdoc-file=lib/delegate.rb
45
+ # - !()
46
+ # -->
47
+ # Delegates ! to the _*getobj*_
48
+ #
49
+ def !: () -> untyped
50
+
51
+ # <!--
52
+ # rdoc-file=lib/delegate.rb
53
+ # - !=(obj)
54
+ # -->
55
+ # Returns true if two objects are not considered of equal value.
56
+ #
57
+ def !=: (untyped obj) -> bool
58
+
59
+ # <!--
60
+ # rdoc-file=lib/delegate.rb
61
+ # - ==(obj)
62
+ # -->
63
+ # Returns true if two objects are considered of equal value.
64
+ #
65
+ def ==: (untyped obj) -> bool
66
+
67
+ # <!--
68
+ # rdoc-file=lib/delegate.rb
69
+ # - __getobj__()
70
+ # -->
71
+ # This method must be overridden by subclasses and should return the object
72
+ # method calls are being delegated to.
73
+ #
74
+ def __getobj__: () -> untyped
75
+
76
+ # <!--
77
+ # rdoc-file=lib/delegate.rb
78
+ # - __setobj__(obj)
79
+ # -->
80
+ # This method must be overridden by subclasses and change the object delegate to
81
+ # *obj*.
82
+ #
83
+ def __setobj__: (untyped obj) -> untyped
84
+
85
+ # <!--
86
+ # rdoc-file=lib/delegate.rb
87
+ # - eql?(obj)
88
+ # -->
89
+ # Returns true if two objects are considered of equal value.
90
+ #
91
+ def eql?: (untyped obj) -> bool
92
+
93
+ # <!--
94
+ # rdoc-file=lib/delegate.rb
95
+ # - freeze()
96
+ # -->
97
+ # :method: freeze Freeze both the object returned by _*getobj*_ and self.
98
+ #
99
+ def freeze: () -> self
100
+
101
+ # <!--
102
+ # rdoc-file=lib/delegate.rb
103
+ # - marshal_dump()
104
+ # -->
105
+ # Serialization support for the object returned by _*getobj*_.
106
+ #
107
+ def marshal_dump: () -> untyped
108
+
109
+ # <!--
110
+ # rdoc-file=lib/delegate.rb
111
+ # - marshal_load(data)
112
+ # -->
113
+ # Reinitializes delegation from a serialized object.
114
+ #
115
+ def marshal_load: (untyped data) -> void
116
+
117
+ # <!--
118
+ # rdoc-file=lib/delegate.rb
119
+ # - method_missing(m, *args, &block)
120
+ # -->
121
+ #
122
+ def method_missing: (Symbol m, *untyped args, **untyped) { (*untyped, **untyped) -> untyped } -> untyped
123
+
124
+ # <!--
125
+ # rdoc-file=lib/delegate.rb
126
+ # - methods(all=true)
127
+ # -->
128
+ # Returns the methods available to this delegate object as the union of this
129
+ # object's and _*getobj*_ methods.
130
+ #
131
+ def methods: (?boolish all) -> Array[Symbol]
132
+
133
+ # <!--
134
+ # rdoc-file=lib/delegate.rb
135
+ # - protected_methods(all=true)
136
+ # -->
137
+ # Returns the methods available to this delegate object as the union of this
138
+ # object's and _*getobj*_ protected methods.
139
+ #
140
+ def protected_methods: (?boolish all) -> Array[Symbol]
141
+
142
+ # <!--
143
+ # rdoc-file=lib/delegate.rb
144
+ # - public_methods(all=true)
145
+ # -->
146
+ # Returns the methods available to this delegate object as the union of this
147
+ # object's and _*getobj*_ public methods.
148
+ #
149
+ def public_methods: (?untyped all) -> Array[Symbol]
150
+
151
+ private
152
+
153
+ # <!--
154
+ # rdoc-file=lib/delegate.rb
155
+ # - new(obj)
156
+ # -->
157
+ # Pass in the *obj* to delegate method calls to. All methods supported by *obj*
158
+ # will be delegated to.
159
+ #
160
+ def initialize: (untyped obj) -> void
161
+
162
+ def initialize_clone: (self obj, ?freeze: bool?) -> self
163
+
164
+ def initialize_dup: (self obj) -> self
165
+
166
+ # <!--
167
+ # rdoc-file=lib/delegate.rb
168
+ # - respond_to_missing?(m, include_private)
169
+ # -->
170
+ # Checks for a method provided by this the delegate object by forwarding the
171
+ # call through _*getobj*_.
172
+ #
173
+ def respond_to_missing?: (Symbol m, bool include_private) -> bool
174
+
175
+ # <!--
176
+ # rdoc-file=lib/delegate.rb
177
+ # - target_respond_to?(target, m, include_private)
178
+ # -->
179
+ # Handle BasicObject instances
180
+ #
181
+ def target_respond_to?: (untyped target, Symbol m, bool include_private) -> bool
182
+
183
+ VERSION: String
184
+ end
@@ -0,0 +1,47 @@
1
+ %a{annotate:rdoc:skip}
2
+ class Object
3
+ # <!--
4
+ # rdoc-file=lib/delegate.rb
5
+ # - DelegateClass(superclass, &block)
6
+ # -->
7
+ # The primary interface to this library. Use to setup delegation when defining
8
+ # your class.
9
+ #
10
+ # class MyClass < DelegateClass(ClassToDelegateTo) # Step 1
11
+ # def initialize
12
+ # super(obj_of_ClassToDelegateTo) # Step 2
13
+ # end
14
+ # end
15
+ #
16
+ # or:
17
+ #
18
+ # MyClass = DelegateClass(ClassToDelegateTo) do # Step 1
19
+ # def initialize
20
+ # super(obj_of_ClassToDelegateTo) # Step 2
21
+ # end
22
+ # end
23
+ #
24
+ # Here's a sample of use from Tempfile which is really a File object with a few
25
+ # special rules about storage location and when the File should be deleted.
26
+ # That makes for an almost textbook perfect example of how to use delegation.
27
+ #
28
+ # class Tempfile < DelegateClass(File)
29
+ # # constant and class member data initialization...
30
+ #
31
+ # def initialize(basename, tmpdir=Dir::tmpdir)
32
+ # # build up file path/name in var tmpname...
33
+ #
34
+ # @tmpfile = File.open(tmpname, File::RDWR|File::CREAT|File::EXCL, 0600)
35
+ #
36
+ # # ...
37
+ #
38
+ # super(@tmpfile)
39
+ #
40
+ # # below this point, all methods of File are supported...
41
+ # end
42
+ #
43
+ # # ...
44
+ # end
45
+ #
46
+ def DelegateClass: (Class) -> Class
47
+ end