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,1209 @@
1
+ module RBS
2
+ module Unnamed
3
+ # <!-- rdoc-file=hash.c -->
4
+ # `ENV` is a hash-like accessor for environment variables.
5
+ #
6
+ # ### Interaction with the Operating System
7
+ #
8
+ # The `ENV` object interacts with the operating system's environment variables:
9
+ #
10
+ # * When you get the value for a name in `ENV`, the value is retrieved from
11
+ # among the current environment variables.
12
+ # * When you create or set a name-value pair in `ENV`, the name and value are
13
+ # immediately set in the environment variables.
14
+ # * When you delete a name-value pair in `ENV`, it is immediately deleted from
15
+ # the environment variables.
16
+ #
17
+ # ### Names and Values
18
+ #
19
+ # Generally, a name or value is a String.
20
+ #
21
+ # #### Valid Names and Values
22
+ #
23
+ # Each name or value must be one of the following:
24
+ #
25
+ # * A String.
26
+ # * An object that responds to #to_str by returning a String, in which case
27
+ # that String will be used as the name or value.
28
+ #
29
+ # #### Invalid Names and Values
30
+ #
31
+ # A new name:
32
+ #
33
+ # * May not be the empty string:
34
+ # ENV[''] = '0'
35
+ # # Raises Errno::EINVAL (Invalid argument - ruby_setenv())
36
+ #
37
+ # * May not contain character `"="`:
38
+ # ENV['='] = '0'
39
+ # # Raises Errno::EINVAL (Invalid argument - ruby_setenv(=))
40
+ #
41
+ # A new name or value:
42
+ #
43
+ # * May not be a non-String that does not respond to #to_str:
44
+ #
45
+ # ENV['foo'] = Object.new
46
+ # # Raises TypeError (no implicit conversion of Object into String)
47
+ # ENV[Object.new] = '0'
48
+ # # Raises TypeError (no implicit conversion of Object into String)
49
+ #
50
+ # * May not contain the NUL character `"\0"`:
51
+ #
52
+ # ENV['foo'] = "\0"
53
+ # # Raises ArgumentError (bad environment variable value: contains null byte)
54
+ # ENV["\0"] == '0'
55
+ # # Raises ArgumentError (bad environment variable name: contains null byte)
56
+ #
57
+ # * May not have an ASCII-incompatible encoding such as UTF-16LE or
58
+ # ISO-2022-JP:
59
+ #
60
+ # ENV['foo'] = '0'.force_encoding(Encoding::ISO_2022_JP)
61
+ # # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: ISO-2022-JP)
62
+ # ENV["foo".force_encoding(Encoding::ISO_2022_JP)] = '0'
63
+ # # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: ISO-2022-JP)
64
+ #
65
+ # ### About Ordering
66
+ #
67
+ # `ENV` enumerates its name/value pairs in the order found in the operating
68
+ # system's environment variables. Therefore the ordering of `ENV` content is
69
+ # OS-dependent, and may be indeterminate.
70
+ #
71
+ # This will be seen in:
72
+ # * A Hash returned by an `ENV` method.
73
+ # * An Enumerator returned by an `ENV` method.
74
+ # * An Array returned by ENV.keys, ENV.values, or ENV.to_a.
75
+ # * The String returned by ENV.inspect.
76
+ # * The Array returned by ENV.shift.
77
+ # * The name returned by ENV.key.
78
+ #
79
+ # ### About the Examples
80
+ # Some methods in `ENV` return `ENV` itself. Typically, there are many
81
+ # environment variables. It's not useful to display a large `ENV` in the
82
+ # examples here, so most example snippets begin by resetting the contents of
83
+ # `ENV`:
84
+ # * ENV.replace replaces `ENV` with a new collection of entries.
85
+ # * ENV.clear empties `ENV`.
86
+ #
87
+ # ### What's Here
88
+ #
89
+ # First, what's elsewhere. Class `ENV`:
90
+ #
91
+ # * Inherits from [class Object](rdoc-ref:Object@What-27s+Here).
92
+ # * Extends [module Enumerable](rdoc-ref:Enumerable@What-27s+Here),
93
+ #
94
+ # Here, class `ENV` provides methods that are useful for:
95
+ #
96
+ # * [Querying](rdoc-ref:ENV@Methods+for+Querying)
97
+ # * [Assigning](rdoc-ref:ENV@Methods+for+Assigning)
98
+ # * [Deleting](rdoc-ref:ENV@Methods+for+Deleting)
99
+ # * [Iterating](rdoc-ref:ENV@Methods+for+Iterating)
100
+ # * [Converting](rdoc-ref:ENV@Methods+for+Converting)
101
+ # * [And more ....](rdoc-ref:ENV@More+Methods)
102
+ #
103
+ # #### Methods for Querying
104
+ #
105
+ # * ::[]: Returns the value for the given environment variable name if it
106
+ # exists:
107
+ # * ::empty?: Returns whether `ENV` is empty.
108
+ # * ::has_value?, ::value?: Returns whether the given value is in `ENV`.
109
+ # * ::include?, ::has_key?, ::key?, ::member?: Returns whether the given name
110
+ # is in `ENV`.
111
+ # * ::key: Returns the name of the first entry with the given value.
112
+ # * ::size, ::length: Returns the number of entries.
113
+ # * ::value?: Returns whether any entry has the given value.
114
+ #
115
+ # #### Methods for Assigning
116
+ #
117
+ # * ::[]=, ::store: Creates, updates, or deletes the named environment
118
+ # variable.
119
+ # * ::clear: Removes every environment variable; returns `ENV`:
120
+ # * ::update, ::merge!: Adds to `ENV` each key/value pair in the given hash.
121
+ # * ::replace: Replaces the entire content of the `ENV` with the name/value
122
+ # pairs in the given hash.
123
+ #
124
+ # #### Methods for Deleting
125
+ #
126
+ # * ::delete: Deletes the named environment variable name if it exists.
127
+ # * ::delete_if: Deletes entries selected by the block.
128
+ # * ::keep_if: Deletes entries not selected by the block.
129
+ # * ::reject!: Similar to #delete_if, but returns `nil` if no change was made.
130
+ # * ::select!, ::filter!: Deletes entries selected by the block.
131
+ # * ::shift: Removes and returns the first entry.
132
+ #
133
+ # #### Methods for Iterating
134
+ #
135
+ # * ::each, ::each_pair: Calls the block with each name/value pair.
136
+ # * ::each_key: Calls the block with each name.
137
+ # * ::each_value: Calls the block with each value.
138
+ #
139
+ # #### Methods for Converting
140
+ #
141
+ # * ::assoc: Returns a 2-element array containing the name and value of the
142
+ # named environment variable if it exists:
143
+ # * ::clone: Returns `ENV` (and issues a warning).
144
+ # * ::except: Returns a hash of all name/value pairs except those given.
145
+ # * ::fetch: Returns the value for the given name.
146
+ # * ::inspect: Returns the contents of `ENV` as a string.
147
+ # * ::invert: Returns a hash whose keys are the `ENV` values, and whose values
148
+ # are the corresponding `ENV` names.
149
+ # * ::keys: Returns an array of all names.
150
+ # * ::rassoc: Returns the name and value of the first found entry that has the
151
+ # given value.
152
+ # * ::reject: Returns a hash of those entries not rejected by the block.
153
+ # * ::select, ::filter: Returns a hash of name/value pairs selected by the
154
+ # block.
155
+ # * ::slice: Returns a hash of the given names and their corresponding values.
156
+ # * ::to_a: Returns the entries as an array of 2-element Arrays.
157
+ # * ::to_h: Returns a hash of entries selected by the block.
158
+ # * ::to_hash: Returns a hash of all entries.
159
+ # * ::to_s: Returns the string `'ENV'`.
160
+ # * ::values: Returns all values as an array.
161
+ # * ::values_at: Returns an array of the values for the given name.
162
+ #
163
+ # #### More Methods
164
+ #
165
+ # * ::dup: Raises an exception.
166
+ # * ::freeze: Raises an exception.
167
+ # * ::rehash: Returns `nil`, without modifying `ENV`.
168
+ #
169
+ %a{annotate:rdoc:copy:ENV}
170
+ class ENVClass
171
+ include Enumerable[[ String, String ]]
172
+
173
+ # <!--
174
+ # rdoc-file=hash.c
175
+ # - ENV[name] -> value
176
+ # -->
177
+ # Returns the value for the environment variable `name` if it exists:
178
+ # ENV['foo'] = '0'
179
+ # ENV['foo'] # => "0"
180
+ #
181
+ # Returns `nil` if the named variable does not exist.
182
+ #
183
+ # Raises an exception if `name` is invalid. See [Invalid Names and
184
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
185
+ #
186
+ %a{annotate:rdoc:copy:ENV.[]}
187
+ def []: (String name) -> String?
188
+
189
+ # <!--
190
+ # rdoc-file=hash.c
191
+ # - ENV.fetch(name) -> value
192
+ # - ENV.fetch(name, default) -> value
193
+ # - ENV.fetch(name) { |name| block } -> value
194
+ # -->
195
+ # If `name` is the name of an environment variable, returns its value:
196
+ # ENV['foo'] = '0'
197
+ # ENV.fetch('foo') # => '0'
198
+ #
199
+ # Otherwise if a block is given (but not a default value), yields `name` to the
200
+ # block and returns the block's return value:
201
+ # ENV.fetch('foo') { |name| :need_not_return_a_string } # => :need_not_return_a_string
202
+ #
203
+ # Otherwise if a default value is given (but not a block), returns the default
204
+ # value:
205
+ # ENV.delete('foo')
206
+ # ENV.fetch('foo', :default_need_not_be_a_string) # => :default_need_not_be_a_string
207
+ #
208
+ # If the environment variable does not exist and both default and block are
209
+ # given, issues a warning ("warning: block supersedes default value argument"),
210
+ # yields `name` to the block, and returns the block's return value:
211
+ # ENV.fetch('foo', :default) { |name| :block_return } # => :block_return
212
+ #
213
+ # Raises KeyError if `name` is valid, but not found, and neither default value
214
+ # nor block is given:
215
+ # ENV.fetch('foo') # Raises KeyError (key not found: "foo")
216
+ #
217
+ # Raises an exception if `name` is invalid. See [Invalid Names and
218
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
219
+ #
220
+ %a{annotate:rdoc:copy:ENV.fetch}
221
+ def fetch: (String name) -> String
222
+ | [X] (String name, X default) -> (String | X)
223
+ | [X] (String name) { (String) -> X } -> (String | X)
224
+
225
+ # <!--
226
+ # rdoc-file=hash.c
227
+ # - ENV[name] = value -> value
228
+ # - ENV.store(name, value) -> value
229
+ # -->
230
+ # Creates, updates, or deletes the named environment variable, returning the
231
+ # value. Both `name` and `value` may be instances of String. See [Valid Names
232
+ # and Values](rdoc-ref:ENV@Valid+Names+and+Values).
233
+ #
234
+ # * If the named environment variable does not exist:
235
+ # * If `value` is `nil`, does nothing.
236
+ # ENV.clear
237
+ # ENV['foo'] = nil # => nil
238
+ # ENV.include?('foo') # => false
239
+ # ENV.store('bar', nil) # => nil
240
+ # ENV.include?('bar') # => false
241
+ #
242
+ # * If `value` is not `nil`, creates the environment variable with `name`
243
+ # and `value`:
244
+ # # Create 'foo' using ENV.[]=.
245
+ # ENV['foo'] = '0' # => '0'
246
+ # ENV['foo'] # => '0'
247
+ # # Create 'bar' using ENV.store.
248
+ # ENV.store('bar', '1') # => '1'
249
+ # ENV['bar'] # => '1'
250
+ #
251
+ # * If the named environment variable exists:
252
+ # * If `value` is not `nil`, updates the environment variable with value
253
+ # `value`:
254
+ # # Update 'foo' using ENV.[]=.
255
+ # ENV['foo'] = '2' # => '2'
256
+ # ENV['foo'] # => '2'
257
+ # # Update 'bar' using ENV.store.
258
+ # ENV.store('bar', '3') # => '3'
259
+ # ENV['bar'] # => '3'
260
+ #
261
+ # * If `value` is `nil`, deletes the environment variable:
262
+ # # Delete 'foo' using ENV.[]=.
263
+ # ENV['foo'] = nil # => nil
264
+ # ENV.include?('foo') # => false
265
+ # # Delete 'bar' using ENV.store.
266
+ # ENV.store('bar', nil) # => nil
267
+ # ENV.include?('bar') # => false
268
+ #
269
+ # Raises an exception if `name` or `value` is invalid. See [Invalid Names and
270
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
271
+ #
272
+ %a{annotate:rdoc:copy:ENV.[]=}
273
+ def []=: (String name, String? value) -> String?
274
+
275
+ # <!--
276
+ # rdoc-file=hash.c
277
+ # - ENV[name] = value -> value
278
+ # - ENV.store(name, value) -> value
279
+ # -->
280
+ # Creates, updates, or deletes the named environment variable, returning the
281
+ # value. Both `name` and `value` may be instances of String. See [Valid Names
282
+ # and Values](rdoc-ref:ENV@Valid+Names+and+Values).
283
+ #
284
+ # * If the named environment variable does not exist:
285
+ # * If `value` is `nil`, does nothing.
286
+ # ENV.clear
287
+ # ENV['foo'] = nil # => nil
288
+ # ENV.include?('foo') # => false
289
+ # ENV.store('bar', nil) # => nil
290
+ # ENV.include?('bar') # => false
291
+ #
292
+ # * If `value` is not `nil`, creates the environment variable with `name`
293
+ # and `value`:
294
+ # # Create 'foo' using ENV.[]=.
295
+ # ENV['foo'] = '0' # => '0'
296
+ # ENV['foo'] # => '0'
297
+ # # Create 'bar' using ENV.store.
298
+ # ENV.store('bar', '1') # => '1'
299
+ # ENV['bar'] # => '1'
300
+ #
301
+ # * If the named environment variable exists:
302
+ # * If `value` is not `nil`, updates the environment variable with value
303
+ # `value`:
304
+ # # Update 'foo' using ENV.[]=.
305
+ # ENV['foo'] = '2' # => '2'
306
+ # ENV['foo'] # => '2'
307
+ # # Update 'bar' using ENV.store.
308
+ # ENV.store('bar', '3') # => '3'
309
+ # ENV['bar'] # => '3'
310
+ #
311
+ # * If `value` is `nil`, deletes the environment variable:
312
+ # # Delete 'foo' using ENV.[]=.
313
+ # ENV['foo'] = nil # => nil
314
+ # ENV.include?('foo') # => false
315
+ # # Delete 'bar' using ENV.store.
316
+ # ENV.store('bar', nil) # => nil
317
+ # ENV.include?('bar') # => false
318
+ #
319
+ # Raises an exception if `name` or `value` is invalid. See [Invalid Names and
320
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
321
+ #
322
+ %a{annotate:rdoc:copy:ENV.store}
323
+ alias store []=
324
+
325
+ # <!--
326
+ # rdoc-file=hash.c
327
+ # - ENV.each { |name, value| block } -> ENV
328
+ # - ENV.each -> an_enumerator
329
+ # - ENV.each_pair { |name, value| block } -> ENV
330
+ # - ENV.each_pair -> an_enumerator
331
+ # -->
332
+ # Yields each environment variable name and its value as a 2-element Array:
333
+ # h = {}
334
+ # ENV.each_pair { |name, value| h[name] = value } # => ENV
335
+ # h # => {"bar"=>"1", "foo"=>"0"}
336
+ #
337
+ # Returns an Enumerator if no block given:
338
+ # h = {}
339
+ # e = ENV.each_pair # => #<Enumerator: {"bar"=>"1", "foo"=>"0"}:each_pair>
340
+ # e.each { |name, value| h[name] = value } # => ENV
341
+ # h # => {"bar"=>"1", "foo"=>"0"}
342
+ #
343
+ %a{annotate:rdoc:copy:ENV.each}
344
+ def each: () -> ::Enumerator[[ String, String ], self]
345
+ | () { ([ String, String ]) -> void } -> self
346
+
347
+ # <!--
348
+ # rdoc-file=hash.c
349
+ # - ENV.each { |name, value| block } -> ENV
350
+ # - ENV.each -> an_enumerator
351
+ # - ENV.each_pair { |name, value| block } -> ENV
352
+ # - ENV.each_pair -> an_enumerator
353
+ # -->
354
+ # Yields each environment variable name and its value as a 2-element Array:
355
+ # h = {}
356
+ # ENV.each_pair { |name, value| h[name] = value } # => ENV
357
+ # h # => {"bar"=>"1", "foo"=>"0"}
358
+ #
359
+ # Returns an Enumerator if no block given:
360
+ # h = {}
361
+ # e = ENV.each_pair # => #<Enumerator: {"bar"=>"1", "foo"=>"0"}:each_pair>
362
+ # e.each { |name, value| h[name] = value } # => ENV
363
+ # h # => {"bar"=>"1", "foo"=>"0"}
364
+ #
365
+ %a{annotate:rdoc:copy:ENV.each_pair}
366
+ def each_pair: () -> ::Enumerator[[ String, String ], self]
367
+ | () { ([ String, String ]) -> void } -> self
368
+
369
+ # <!--
370
+ # rdoc-file=hash.c
371
+ # - ENV.each_key { |name| block } -> ENV
372
+ # - ENV.each_key -> an_enumerator
373
+ # -->
374
+ # Yields each environment variable name:
375
+ # ENV.replace('foo' => '0', 'bar' => '1') # => ENV
376
+ # names = []
377
+ # ENV.each_key { |name| names.push(name) } # => ENV
378
+ # names # => ["bar", "foo"]
379
+ #
380
+ # Returns an Enumerator if no block given:
381
+ # e = ENV.each_key # => #<Enumerator: {"bar"=>"1", "foo"=>"0"}:each_key>
382
+ # names = []
383
+ # e.each { |name| names.push(name) } # => ENV
384
+ # names # => ["bar", "foo"]
385
+ #
386
+ %a{annotate:rdoc:copy:ENV.each_key}
387
+ def each_key: () -> ::Enumerator[[ String ], self]
388
+ | () { (String name) -> void } -> self
389
+
390
+ # <!--
391
+ # rdoc-file=hash.c
392
+ # - ENV.each_value { |value| block } -> ENV
393
+ # - ENV.each_value -> an_enumerator
394
+ # -->
395
+ # Yields each environment variable value:
396
+ # ENV.replace('foo' => '0', 'bar' => '1') # => ENV
397
+ # values = []
398
+ # ENV.each_value { |value| values.push(value) } # => ENV
399
+ # values # => ["1", "0"]
400
+ #
401
+ # Returns an Enumerator if no block given:
402
+ # e = ENV.each_value # => #<Enumerator: {"bar"=>"1", "foo"=>"0"}:each_value>
403
+ # values = []
404
+ # e.each { |value| values.push(value) } # => ENV
405
+ # values # => ["1", "0"]
406
+ #
407
+ %a{annotate:rdoc:copy:ENV.each_value}
408
+ def each_value: () -> ::Enumerator[[ String ], self]
409
+ | () { (String value) -> void } -> self
410
+
411
+ # <!--
412
+ # rdoc-file=hash.c
413
+ # - ENV.delete(name) -> value
414
+ # - ENV.delete(name) { |name| block } -> value
415
+ # - ENV.delete(missing_name) -> nil
416
+ # - ENV.delete(missing_name) { |name| block } -> block_value
417
+ # -->
418
+ # Deletes the environment variable with `name` if it exists and returns its
419
+ # value:
420
+ # ENV['foo'] = '0'
421
+ # ENV.delete('foo') # => '0'
422
+ #
423
+ # If a block is not given and the named environment variable does not exist,
424
+ # returns `nil`.
425
+ #
426
+ # If a block given and the environment variable does not exist, yields `name` to
427
+ # the block and returns the value of the block:
428
+ # ENV.delete('foo') { |name| name * 2 } # => "foofoo"
429
+ #
430
+ # If a block given and the environment variable exists, deletes the environment
431
+ # variable and returns its value (ignoring the block):
432
+ # ENV['foo'] = '0'
433
+ # ENV.delete('foo') { |name| raise 'ignored' } # => "0"
434
+ #
435
+ # Raises an exception if `name` is invalid. See [Invalid Names and
436
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
437
+ #
438
+ %a{annotate:rdoc:copy:ENV.delete}
439
+ def delete: (String name) -> String?
440
+ | (String name) { (String) -> String } -> String
441
+
442
+ # <!--
443
+ # rdoc-file=hash.c
444
+ # - ENV.delete_if { |name, value| block } -> ENV
445
+ # - ENV.delete_if -> an_enumerator
446
+ # -->
447
+ # Yields each environment variable name and its value as a 2-element Array,
448
+ # deleting each environment variable for which the block returns a truthy value,
449
+ # and returning ENV (regardless of whether any deletions):
450
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
451
+ # ENV.delete_if { |name, value| name.start_with?('b') } # => ENV
452
+ # ENV # => {"foo"=>"0"}
453
+ # ENV.delete_if { |name, value| name.start_with?('b') } # => ENV
454
+ #
455
+ # Returns an Enumerator if no block given:
456
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
457
+ # e = ENV.delete_if # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:delete_if!>
458
+ # e.each { |name, value| name.start_with?('b') } # => ENV
459
+ # ENV # => {"foo"=>"0"}
460
+ # e.each { |name, value| name.start_with?('b') } # => ENV
461
+ #
462
+ %a{annotate:rdoc:copy:ENV.delete_if}
463
+ def delete_if: () -> ::Enumerator[[ String, String ], self]
464
+ | () { (String name, String value) -> boolish } -> self
465
+
466
+ # <!--
467
+ # rdoc-file=hash.c
468
+ # - ENV.keep_if { |name, value| block } -> ENV
469
+ # - ENV.keep_if -> an_enumerator
470
+ # -->
471
+ # Yields each environment variable name and its value as a 2-element Array,
472
+ # deleting each environment variable for which the block returns `false` or
473
+ # `nil`, and returning ENV:
474
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
475
+ # ENV.keep_if { |name, value| name.start_with?('b') } # => ENV
476
+ # ENV # => {"bar"=>"1", "baz"=>"2"}
477
+ #
478
+ # Returns an Enumerator if no block given:
479
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
480
+ # e = ENV.keep_if # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:keep_if>
481
+ # e.each { |name, value| name.start_with?('b') } # => ENV
482
+ # ENV # => {"bar"=>"1", "baz"=>"2"}
483
+ #
484
+ %a{annotate:rdoc:copy:ENV.keep_if}
485
+ def keep_if: () -> ::Enumerator[[ String, String ], self]
486
+ | () { (String name, String value) -> boolish } -> self
487
+
488
+ # <!--
489
+ # rdoc-file=hash.c
490
+ # - ENV.slice(*names) -> hash of name/value pairs
491
+ # -->
492
+ # Returns a Hash of the given ENV names and their corresponding values:
493
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2', 'bat' => '3')
494
+ # ENV.slice('foo', 'baz') # => {"foo"=>"0", "baz"=>"2"}
495
+ # ENV.slice('baz', 'foo') # => {"baz"=>"2", "foo"=>"0"}
496
+ #
497
+ # Raises an exception if any of the `names` is invalid (see [Invalid Names and
498
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
499
+ # ENV.slice('foo', 'bar', :bat) # Raises TypeError (no implicit conversion of Symbol into String)
500
+ #
501
+ %a{annotate:rdoc:copy:ENV.slice}
502
+ def slice: (*String names) -> ::Hash[String, String]
503
+
504
+ # <!--
505
+ # rdoc-file=hash.c
506
+ # - ENV.except(*keys) -> a_hash
507
+ # -->
508
+ # Returns a hash except the given keys from ENV and their values.
509
+ #
510
+ # ENV #=> {"LANG"=>"en_US.UTF-8", "TERM"=>"xterm-256color", "HOME"=>"/Users/rhc"}
511
+ # ENV.except("TERM","HOME") #=> {"LANG"=>"en_US.UTF-8"}
512
+ #
513
+ %a{annotate:rdoc:copy:ENV.except}
514
+ def except: (*String names) -> ::Hash[String, String]
515
+
516
+ # <!--
517
+ # rdoc-file=hash.c
518
+ # - ENV.clear -> ENV
519
+ # -->
520
+ # Removes every environment variable; returns ENV:
521
+ # ENV.replace('foo' => '0', 'bar' => '1')
522
+ # ENV.size # => 2
523
+ # ENV.clear # => ENV
524
+ # ENV.size # => 0
525
+ #
526
+ %a{annotate:rdoc:copy:ENV.clear}
527
+ def clear: () -> self
528
+
529
+ # <!--
530
+ # rdoc-file=hash.c
531
+ # - ENV.reject { |name, value| block } -> hash of name/value pairs
532
+ # - ENV.reject -> an_enumerator
533
+ # -->
534
+ # Yields each environment variable name and its value as a 2-element Array.
535
+ # Returns a Hash whose items are determined by the block. When the block returns
536
+ # a truthy value, the name/value pair is added to the return Hash; otherwise the
537
+ # pair is ignored:
538
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
539
+ # ENV.reject { |name, value| name.start_with?('b') } # => {"foo"=>"0"}
540
+ #
541
+ # Returns an Enumerator if no block given:
542
+ # e = ENV.reject
543
+ # e.each { |name, value| name.start_with?('b') } # => {"foo"=>"0"}
544
+ #
545
+ %a{annotate:rdoc:copy:ENV.reject}
546
+ def reject: () -> ::Enumerator[[ String, String ], self]
547
+ | () { (String name, String value) -> boolish } -> self
548
+
549
+ # <!--
550
+ # rdoc-file=hash.c
551
+ # - ENV.reject! { |name, value| block } -> ENV or nil
552
+ # - ENV.reject! -> an_enumerator
553
+ # -->
554
+ # Similar to ENV.delete_if, but returns `nil` if no changes were made.
555
+ #
556
+ # Yields each environment variable name and its value as a 2-element Array,
557
+ # deleting each environment variable for which the block returns a truthy value,
558
+ # and returning ENV (if any deletions) or `nil` (if not):
559
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
560
+ # ENV.reject! { |name, value| name.start_with?('b') } # => ENV
561
+ # ENV # => {"foo"=>"0"}
562
+ # ENV.reject! { |name, value| name.start_with?('b') } # => nil
563
+ #
564
+ # Returns an Enumerator if no block given:
565
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
566
+ # e = ENV.reject! # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:reject!>
567
+ # e.each { |name, value| name.start_with?('b') } # => ENV
568
+ # ENV # => {"foo"=>"0"}
569
+ # e.each { |name, value| name.start_with?('b') } # => nil
570
+ #
571
+ %a{annotate:rdoc:copy:ENV.reject!}
572
+ def reject!: () -> ::Enumerator[[ String, String ], self?]
573
+ | () { (String name, String value) -> boolish } -> self?
574
+
575
+ # <!--
576
+ # rdoc-file=hash.c
577
+ # - ENV.select { |name, value| block } -> hash of name/value pairs
578
+ # - ENV.select -> an_enumerator
579
+ # - ENV.filter { |name, value| block } -> hash of name/value pairs
580
+ # - ENV.filter -> an_enumerator
581
+ # -->
582
+ # Yields each environment variable name and its value as a 2-element Array,
583
+ # returning a Hash of the names and values for which the block returns a truthy
584
+ # value:
585
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
586
+ # ENV.select { |name, value| name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
587
+ # ENV.filter { |name, value| name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
588
+ #
589
+ # Returns an Enumerator if no block given:
590
+ # e = ENV.select # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:select>
591
+ # e.each { |name, value | name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
592
+ # e = ENV.filter # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:filter>
593
+ # e.each { |name, value | name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
594
+ #
595
+ %a{annotate:rdoc:copy:ENV.select}
596
+ def select: () -> ::Enumerator[[ String, String ], ::Hash[String, String]]
597
+ | () { (String name, String value) -> boolish } -> ::Hash[String, String]
598
+
599
+ # <!--
600
+ # rdoc-file=hash.c
601
+ # - ENV.select { |name, value| block } -> hash of name/value pairs
602
+ # - ENV.select -> an_enumerator
603
+ # - ENV.filter { |name, value| block } -> hash of name/value pairs
604
+ # - ENV.filter -> an_enumerator
605
+ # -->
606
+ # Yields each environment variable name and its value as a 2-element Array,
607
+ # returning a Hash of the names and values for which the block returns a truthy
608
+ # value:
609
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
610
+ # ENV.select { |name, value| name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
611
+ # ENV.filter { |name, value| name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
612
+ #
613
+ # Returns an Enumerator if no block given:
614
+ # e = ENV.select # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:select>
615
+ # e.each { |name, value | name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
616
+ # e = ENV.filter # => #<Enumerator: {"bar"=>"1", "baz"=>"2", "foo"=>"0"}:filter>
617
+ # e.each { |name, value | name.start_with?('b') } # => {"bar"=>"1", "baz"=>"2"}
618
+ #
619
+ %a{annotate:rdoc:copy:ENV.filter}
620
+ alias filter select
621
+
622
+ # <!--
623
+ # rdoc-file=hash.c
624
+ # - ENV.select! { |name, value| block } -> ENV or nil
625
+ # - ENV.select! -> an_enumerator
626
+ # - ENV.filter! { |name, value| block } -> ENV or nil
627
+ # - ENV.filter! -> an_enumerator
628
+ # -->
629
+ # Yields each environment variable name and its value as a 2-element Array,
630
+ # deleting each entry for which the block returns `false` or `nil`, and
631
+ # returning ENV if any deletions made, or `nil` otherwise:
632
+ #
633
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
634
+ # ENV.select! { |name, value| name.start_with?('b') } # => ENV
635
+ # ENV # => {"bar"=>"1", "baz"=>"2"}
636
+ # ENV.select! { |name, value| true } # => nil
637
+ #
638
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
639
+ # ENV.filter! { |name, value| name.start_with?('b') } # => ENV
640
+ # ENV # => {"bar"=>"1", "baz"=>"2"}
641
+ # ENV.filter! { |name, value| true } # => nil
642
+ #
643
+ # Returns an Enumerator if no block given:
644
+ #
645
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
646
+ # e = ENV.select! # => #<Enumerator: {"bar"=>"1", "baz"=>"2"}:select!>
647
+ # e.each { |name, value| name.start_with?('b') } # => ENV
648
+ # ENV # => {"bar"=>"1", "baz"=>"2"}
649
+ # e.each { |name, value| true } # => nil
650
+ #
651
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
652
+ # e = ENV.filter! # => #<Enumerator: {"bar"=>"1", "baz"=>"2"}:filter!>
653
+ # e.each { |name, value| name.start_with?('b') } # => ENV
654
+ # ENV # => {"bar"=>"1", "baz"=>"2"}
655
+ # e.each { |name, value| true } # => nil
656
+ #
657
+ %a{annotate:rdoc:copy:ENV.select!}
658
+ def select!: () -> ::Enumerator[[ String, String ], self?]
659
+ | () { (String name, String value) -> boolish } -> self?
660
+
661
+ # <!--
662
+ # rdoc-file=hash.c
663
+ # - ENV.select! { |name, value| block } -> ENV or nil
664
+ # - ENV.select! -> an_enumerator
665
+ # - ENV.filter! { |name, value| block } -> ENV or nil
666
+ # - ENV.filter! -> an_enumerator
667
+ # -->
668
+ # Yields each environment variable name and its value as a 2-element Array,
669
+ # deleting each entry for which the block returns `false` or `nil`, and
670
+ # returning ENV if any deletions made, or `nil` otherwise:
671
+ #
672
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
673
+ # ENV.select! { |name, value| name.start_with?('b') } # => ENV
674
+ # ENV # => {"bar"=>"1", "baz"=>"2"}
675
+ # ENV.select! { |name, value| true } # => nil
676
+ #
677
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
678
+ # ENV.filter! { |name, value| name.start_with?('b') } # => ENV
679
+ # ENV # => {"bar"=>"1", "baz"=>"2"}
680
+ # ENV.filter! { |name, value| true } # => nil
681
+ #
682
+ # Returns an Enumerator if no block given:
683
+ #
684
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
685
+ # e = ENV.select! # => #<Enumerator: {"bar"=>"1", "baz"=>"2"}:select!>
686
+ # e.each { |name, value| name.start_with?('b') } # => ENV
687
+ # ENV # => {"bar"=>"1", "baz"=>"2"}
688
+ # e.each { |name, value| true } # => nil
689
+ #
690
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
691
+ # e = ENV.filter! # => #<Enumerator: {"bar"=>"1", "baz"=>"2"}:filter!>
692
+ # e.each { |name, value| name.start_with?('b') } # => ENV
693
+ # ENV # => {"bar"=>"1", "baz"=>"2"}
694
+ # e.each { |name, value| true } # => nil
695
+ #
696
+ %a{annotate:rdoc:copy:ENV.filter!}
697
+ alias filter! select!
698
+
699
+ # <!--
700
+ # rdoc-file=hash.c
701
+ # - ENV.shift -> [name, value] or nil
702
+ # -->
703
+ # Removes the first environment variable from ENV and returns a 2-element Array
704
+ # containing its name and value:
705
+ # ENV.replace('foo' => '0', 'bar' => '1')
706
+ # ENV.to_hash # => {'bar' => '1', 'foo' => '0'}
707
+ # ENV.shift # => ['bar', '1']
708
+ # ENV.to_hash # => {'foo' => '0'}
709
+ #
710
+ # Exactly which environment variable is "first" is OS-dependent. See [About
711
+ # Ordering](rdoc-ref:ENV@About+Ordering).
712
+ #
713
+ # Returns `nil` if the environment is empty.
714
+ #
715
+ %a{annotate:rdoc:copy:ENV.shift}
716
+ def shift: () -> [ String, String ]?
717
+
718
+ # <!--
719
+ # rdoc-file=hash.c
720
+ # - ENV.invert -> hash of value/name pairs
721
+ # -->
722
+ # Returns a Hash whose keys are the ENV values, and whose values are the
723
+ # corresponding ENV names:
724
+ # ENV.replace('foo' => '0', 'bar' => '1')
725
+ # ENV.invert # => {"1"=>"bar", "0"=>"foo"}
726
+ #
727
+ # For a duplicate ENV value, overwrites the hash entry:
728
+ # ENV.replace('foo' => '0', 'bar' => '0')
729
+ # ENV.invert # => {"0"=>"foo"}
730
+ #
731
+ # Note that the order of the ENV processing is OS-dependent, which means that
732
+ # the order of overwriting is also OS-dependent. See [About
733
+ # Ordering](rdoc-ref:ENV@About+Ordering).
734
+ #
735
+ %a{annotate:rdoc:copy:ENV.invert}
736
+ def invert: () -> ::Hash[String, String]
737
+
738
+ # <!--
739
+ # rdoc-file=hash.c
740
+ # - ENV.replace(hash) -> ENV
741
+ # -->
742
+ # Replaces the entire content of the environment variables with the name/value
743
+ # pairs in the given `hash`; returns ENV.
744
+ #
745
+ # Replaces the content of ENV with the given pairs:
746
+ # ENV.replace('foo' => '0', 'bar' => '1') # => ENV
747
+ # ENV.to_hash # => {"bar"=>"1", "foo"=>"0"}
748
+ #
749
+ # Raises an exception if a name or value is invalid (see [Invalid Names and
750
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
751
+ # ENV.replace('foo' => '0', :bar => '1') # Raises TypeError (no implicit conversion of Symbol into String)
752
+ # ENV.replace('foo' => '0', 'bar' => 1) # Raises TypeError (no implicit conversion of Integer into String)
753
+ # ENV.to_hash # => {"bar"=>"1", "foo"=>"0"}
754
+ #
755
+ %a{annotate:rdoc:copy:ENV.replace}
756
+ def replace: (Hash[String, String]) -> self
757
+
758
+ # <!--
759
+ # rdoc-file=hash.c
760
+ # - ENV.update -> ENV
761
+ # - ENV.update(*hashes) -> ENV
762
+ # - ENV.update(*hashes) { |name, env_val, hash_val| block } -> ENV
763
+ # - ENV.merge! -> ENV
764
+ # - ENV.merge!(*hashes) -> ENV
765
+ # - ENV.merge!(*hashes) { |name, env_val, hash_val| block } -> ENV
766
+ # -->
767
+ # Adds to ENV each key/value pair in the given `hash`; returns ENV:
768
+ # ENV.replace('foo' => '0', 'bar' => '1')
769
+ # ENV.merge!('baz' => '2', 'bat' => '3') # => {"bar"=>"1", "bat"=>"3", "baz"=>"2", "foo"=>"0"}
770
+ #
771
+ # Deletes the ENV entry for a hash value that is `nil`:
772
+ # ENV.merge!('baz' => nil, 'bat' => nil) # => {"bar"=>"1", "foo"=>"0"}
773
+ #
774
+ # For an already-existing name, if no block given, overwrites the ENV value:
775
+ # ENV.merge!('foo' => '4') # => {"bar"=>"1", "foo"=>"4"}
776
+ #
777
+ # For an already-existing name, if block given, yields the name, its ENV value,
778
+ # and its hash value; the block's return value becomes the new name:
779
+ # ENV.merge!('foo' => '5') { |name, env_val, hash_val | env_val + hash_val } # => {"bar"=>"1", "foo"=>"45"}
780
+ #
781
+ # Raises an exception if a name or value is invalid (see [Invalid Names and
782
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values));
783
+ # ENV.replace('foo' => '0', 'bar' => '1')
784
+ # ENV.merge!('foo' => '6', :bar => '7', 'baz' => '9') # Raises TypeError (no implicit conversion of Symbol into String)
785
+ # ENV # => {"bar"=>"1", "foo"=>"6"}
786
+ # ENV.merge!('foo' => '7', 'bar' => 8, 'baz' => '9') # Raises TypeError (no implicit conversion of Integer into String)
787
+ # ENV # => {"bar"=>"1", "foo"=>"7"}
788
+ #
789
+ # Raises an exception if the block returns an invalid name: (see [Invalid Names
790
+ # and Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
791
+ # ENV.merge!('bat' => '8', 'foo' => '9') { |name, env_val, hash_val | 10 } # Raises TypeError (no implicit conversion of Integer into String)
792
+ # ENV # => {"bar"=>"1", "bat"=>"8", "foo"=>"7"}
793
+ #
794
+ # Note that for the exceptions above, hash pairs preceding an invalid name or
795
+ # value are processed normally; those following are ignored.
796
+ #
797
+ %a{annotate:rdoc:copy:ENV.update}
798
+ def update: (Hash[String, String?]) -> self
799
+ | (Hash[String, String?]) { (String name, String env_val, String? hash_val) -> String } -> self
800
+
801
+ # <!--
802
+ # rdoc-file=hash.c
803
+ # - ENV.update -> ENV
804
+ # - ENV.update(*hashes) -> ENV
805
+ # - ENV.update(*hashes) { |name, env_val, hash_val| block } -> ENV
806
+ # - ENV.merge! -> ENV
807
+ # - ENV.merge!(*hashes) -> ENV
808
+ # - ENV.merge!(*hashes) { |name, env_val, hash_val| block } -> ENV
809
+ # -->
810
+ # Adds to ENV each key/value pair in the given `hash`; returns ENV:
811
+ # ENV.replace('foo' => '0', 'bar' => '1')
812
+ # ENV.merge!('baz' => '2', 'bat' => '3') # => {"bar"=>"1", "bat"=>"3", "baz"=>"2", "foo"=>"0"}
813
+ #
814
+ # Deletes the ENV entry for a hash value that is `nil`:
815
+ # ENV.merge!('baz' => nil, 'bat' => nil) # => {"bar"=>"1", "foo"=>"0"}
816
+ #
817
+ # For an already-existing name, if no block given, overwrites the ENV value:
818
+ # ENV.merge!('foo' => '4') # => {"bar"=>"1", "foo"=>"4"}
819
+ #
820
+ # For an already-existing name, if block given, yields the name, its ENV value,
821
+ # and its hash value; the block's return value becomes the new name:
822
+ # ENV.merge!('foo' => '5') { |name, env_val, hash_val | env_val + hash_val } # => {"bar"=>"1", "foo"=>"45"}
823
+ #
824
+ # Raises an exception if a name or value is invalid (see [Invalid Names and
825
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values));
826
+ # ENV.replace('foo' => '0', 'bar' => '1')
827
+ # ENV.merge!('foo' => '6', :bar => '7', 'baz' => '9') # Raises TypeError (no implicit conversion of Symbol into String)
828
+ # ENV # => {"bar"=>"1", "foo"=>"6"}
829
+ # ENV.merge!('foo' => '7', 'bar' => 8, 'baz' => '9') # Raises TypeError (no implicit conversion of Integer into String)
830
+ # ENV # => {"bar"=>"1", "foo"=>"7"}
831
+ #
832
+ # Raises an exception if the block returns an invalid name: (see [Invalid Names
833
+ # and Values](rdoc-ref:ENV@Invalid+Names+and+Values)):
834
+ # ENV.merge!('bat' => '8', 'foo' => '9') { |name, env_val, hash_val | 10 } # Raises TypeError (no implicit conversion of Integer into String)
835
+ # ENV # => {"bar"=>"1", "bat"=>"8", "foo"=>"7"}
836
+ #
837
+ # Note that for the exceptions above, hash pairs preceding an invalid name or
838
+ # value are processed normally; those following are ignored.
839
+ #
840
+ %a{annotate:rdoc:copy:ENV.merge!}
841
+ alias merge! update
842
+
843
+ # <!--
844
+ # rdoc-file=hash.c
845
+ # - ENV.rehash -> nil
846
+ # -->
847
+ # (Provided for compatibility with Hash.)
848
+ #
849
+ # Does not modify ENV; returns `nil`.
850
+ #
851
+ %a{annotate:rdoc:copy:ENV.rehash}
852
+ def rehash: () -> nil
853
+
854
+ # <!--
855
+ # rdoc-file=hash.c
856
+ # - ENV.to_a -> array of 2-element arrays
857
+ # -->
858
+ # Returns the contents of ENV as an Array of 2-element Arrays, each of which is
859
+ # a name/value pair:
860
+ # ENV.replace('foo' => '0', 'bar' => '1')
861
+ # ENV.to_a # => [["bar", "1"], ["foo", "0"]]
862
+ #
863
+ %a{annotate:rdoc:copy:ENV.to_a}
864
+ def to_a: () -> ::Array[[ String, String ]]
865
+
866
+ # <!--
867
+ # rdoc-file=hash.c
868
+ # - ENV.to_s -> "ENV"
869
+ # -->
870
+ # Returns String 'ENV':
871
+ # ENV.to_s # => "ENV"
872
+ #
873
+ %a{annotate:rdoc:copy:ENV.to_s}
874
+ def to_s: () -> "ENV"
875
+
876
+ # <!--
877
+ # rdoc-file=hash.c
878
+ # - ENV.key(value) -> name or nil
879
+ # -->
880
+ # Returns the name of the first environment variable with `value`, if it exists:
881
+ # ENV.replace('foo' => '0', 'bar' => '0')
882
+ # ENV.key('0') # => "foo"
883
+ #
884
+ # The order in which environment variables are examined is OS-dependent. See
885
+ # [About Ordering](rdoc-ref:ENV@About+Ordering).
886
+ #
887
+ # Returns `nil` if there is no such value.
888
+ #
889
+ # Raises an exception if `value` is invalid:
890
+ # ENV.key(Object.new) # raises TypeError (no implicit conversion of Object into String)
891
+ #
892
+ # See [Invalid Names and Values](rdoc-ref:ENV@Invalid+Names+and+Values).
893
+ #
894
+ %a{annotate:rdoc:copy:ENV.key}
895
+ def key: (String value) -> String?
896
+
897
+ # <!--
898
+ # rdoc-file=hash.c
899
+ # - ENV.length -> an_integer
900
+ # - ENV.size -> an_integer
901
+ # -->
902
+ # Returns the count of environment variables:
903
+ # ENV.replace('foo' => '0', 'bar' => '1')
904
+ # ENV.length # => 2
905
+ # ENV.size # => 2
906
+ #
907
+ %a{annotate:rdoc:copy:ENV.size}
908
+ def size: () -> Integer
909
+
910
+ # <!--
911
+ # rdoc-file=hash.c
912
+ # - ENV.length -> an_integer
913
+ # - ENV.size -> an_integer
914
+ # -->
915
+ # Returns the count of environment variables:
916
+ # ENV.replace('foo' => '0', 'bar' => '1')
917
+ # ENV.length # => 2
918
+ # ENV.size # => 2
919
+ #
920
+ %a{annotate:rdoc:copy:ENV.length}
921
+ alias length size
922
+
923
+ # <!--
924
+ # rdoc-file=hash.c
925
+ # - ENV.empty? -> true or false
926
+ # -->
927
+ # Returns `true` when there are no environment variables, `false` otherwise:
928
+ # ENV.clear
929
+ # ENV.empty? # => true
930
+ # ENV['foo'] = '0'
931
+ # ENV.empty? # => false
932
+ #
933
+ %a{annotate:rdoc:copy:ENV.empty?}
934
+ def empty?: () -> bool
935
+
936
+ # <!--
937
+ # rdoc-file=hash.c
938
+ # - ENV.keys -> array of names
939
+ # -->
940
+ # Returns all variable names in an Array:
941
+ # ENV.replace('foo' => '0', 'bar' => '1')
942
+ # ENV.keys # => ['bar', 'foo']
943
+ #
944
+ # The order of the names is OS-dependent. See [About
945
+ # Ordering](rdoc-ref:ENV@About+Ordering).
946
+ #
947
+ # Returns the empty Array if ENV is empty.
948
+ #
949
+ %a{annotate:rdoc:copy:ENV.keys}
950
+ def keys: () -> ::Array[String]
951
+
952
+ # <!--
953
+ # rdoc-file=hash.c
954
+ # - ENV.values -> array of values
955
+ # -->
956
+ # Returns all environment variable values in an Array:
957
+ # ENV.replace('foo' => '0', 'bar' => '1')
958
+ # ENV.values # => ['1', '0']
959
+ #
960
+ # The order of the values is OS-dependent. See [About
961
+ # Ordering](rdoc-ref:ENV@About+Ordering).
962
+ #
963
+ # Returns the empty Array if ENV is empty.
964
+ #
965
+ %a{annotate:rdoc:copy:ENV.values}
966
+ def values: () -> ::Array[String]
967
+
968
+ # <!--
969
+ # rdoc-file=hash.c
970
+ # - ENV.values_at(*names) -> array of values
971
+ # -->
972
+ # Returns an Array containing the environment variable values associated with
973
+ # the given names:
974
+ # ENV.replace('foo' => '0', 'bar' => '1', 'baz' => '2')
975
+ # ENV.values_at('foo', 'baz') # => ["0", "2"]
976
+ #
977
+ # Returns `nil` in the Array for each name that is not an ENV name:
978
+ # ENV.values_at('foo', 'bat', 'bar', 'bam') # => ["0", nil, "1", nil]
979
+ #
980
+ # Returns an empty Array if no names given.
981
+ #
982
+ # Raises an exception if any name is invalid. See [Invalid Names and
983
+ # Values](rdoc-ref:ENV@Invalid+Names+and+Values).
984
+ #
985
+ %a{annotate:rdoc:copy:ENV.values_at}
986
+ def values_at: (*String names) -> ::Array[String?]
987
+
988
+ # <!--
989
+ # rdoc-file=hash.c
990
+ # - ENV.include?(name) -> true or false
991
+ # - ENV.has_key?(name) -> true or false
992
+ # - ENV.member?(name) -> true or false
993
+ # - ENV.key?(name) -> true or false
994
+ # -->
995
+ # Returns `true` if there is an environment variable with the given `name`:
996
+ # ENV.replace('foo' => '0', 'bar' => '1')
997
+ # ENV.include?('foo') # => true
998
+ #
999
+ # Returns `false` if `name` is a valid String and there is no such environment
1000
+ # variable:
1001
+ # ENV.include?('baz') # => false
1002
+ #
1003
+ # Returns `false` if `name` is the empty String or is a String containing
1004
+ # character `'='`:
1005
+ # ENV.include?('') # => false
1006
+ # ENV.include?('=') # => false
1007
+ #
1008
+ # Raises an exception if `name` is a String containing the NUL character `"\0"`:
1009
+ # ENV.include?("\0") # Raises ArgumentError (bad environment variable name: contains null byte)
1010
+ #
1011
+ # Raises an exception if `name` has an encoding that is not ASCII-compatible:
1012
+ # ENV.include?("\xa1\xa1".force_encoding(Encoding::UTF_16LE))
1013
+ # # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)
1014
+ #
1015
+ # Raises an exception if `name` is not a String:
1016
+ # ENV.include?(Object.new) # TypeError (no implicit conversion of Object into String)
1017
+ #
1018
+ %a{annotate:rdoc:copy:ENV.include?}
1019
+ def include?: (String name) -> bool
1020
+
1021
+ # <!--
1022
+ # rdoc-file=hash.c
1023
+ # - ENV.include?(name) -> true or false
1024
+ # - ENV.has_key?(name) -> true or false
1025
+ # - ENV.member?(name) -> true or false
1026
+ # - ENV.key?(name) -> true or false
1027
+ # -->
1028
+ # Returns `true` if there is an environment variable with the given `name`:
1029
+ # ENV.replace('foo' => '0', 'bar' => '1')
1030
+ # ENV.include?('foo') # => true
1031
+ #
1032
+ # Returns `false` if `name` is a valid String and there is no such environment
1033
+ # variable:
1034
+ # ENV.include?('baz') # => false
1035
+ #
1036
+ # Returns `false` if `name` is the empty String or is a String containing
1037
+ # character `'='`:
1038
+ # ENV.include?('') # => false
1039
+ # ENV.include?('=') # => false
1040
+ #
1041
+ # Raises an exception if `name` is a String containing the NUL character `"\0"`:
1042
+ # ENV.include?("\0") # Raises ArgumentError (bad environment variable name: contains null byte)
1043
+ #
1044
+ # Raises an exception if `name` has an encoding that is not ASCII-compatible:
1045
+ # ENV.include?("\xa1\xa1".force_encoding(Encoding::UTF_16LE))
1046
+ # # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)
1047
+ #
1048
+ # Raises an exception if `name` is not a String:
1049
+ # ENV.include?(Object.new) # TypeError (no implicit conversion of Object into String)
1050
+ #
1051
+ %a{annotate:rdoc:copy:ENV.member?}
1052
+ alias member? include?
1053
+
1054
+ # <!--
1055
+ # rdoc-file=hash.c
1056
+ # - ENV.include?(name) -> true or false
1057
+ # - ENV.has_key?(name) -> true or false
1058
+ # - ENV.member?(name) -> true or false
1059
+ # - ENV.key?(name) -> true or false
1060
+ # -->
1061
+ # Returns `true` if there is an environment variable with the given `name`:
1062
+ # ENV.replace('foo' => '0', 'bar' => '1')
1063
+ # ENV.include?('foo') # => true
1064
+ #
1065
+ # Returns `false` if `name` is a valid String and there is no such environment
1066
+ # variable:
1067
+ # ENV.include?('baz') # => false
1068
+ #
1069
+ # Returns `false` if `name` is the empty String or is a String containing
1070
+ # character `'='`:
1071
+ # ENV.include?('') # => false
1072
+ # ENV.include?('=') # => false
1073
+ #
1074
+ # Raises an exception if `name` is a String containing the NUL character `"\0"`:
1075
+ # ENV.include?("\0") # Raises ArgumentError (bad environment variable name: contains null byte)
1076
+ #
1077
+ # Raises an exception if `name` has an encoding that is not ASCII-compatible:
1078
+ # ENV.include?("\xa1\xa1".force_encoding(Encoding::UTF_16LE))
1079
+ # # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)
1080
+ #
1081
+ # Raises an exception if `name` is not a String:
1082
+ # ENV.include?(Object.new) # TypeError (no implicit conversion of Object into String)
1083
+ #
1084
+ %a{annotate:rdoc:copy:ENV.has_key?}
1085
+ alias has_key? include?
1086
+
1087
+ # <!--
1088
+ # rdoc-file=hash.c
1089
+ # - ENV.value?(value) -> true or false
1090
+ # - ENV.has_value?(value) -> true or false
1091
+ # -->
1092
+ # Returns `true` if `value` is the value for some environment variable name,
1093
+ # `false` otherwise:
1094
+ # ENV.replace('foo' => '0', 'bar' => '1')
1095
+ # ENV.value?('0') # => true
1096
+ # ENV.has_value?('0') # => true
1097
+ # ENV.value?('2') # => false
1098
+ # ENV.has_value?('2') # => false
1099
+ #
1100
+ %a{annotate:rdoc:copy:ENV.has_value?}
1101
+ def has_value?: (String value) -> bool
1102
+
1103
+ # <!--
1104
+ # rdoc-file=hash.c
1105
+ # - ENV.value?(value) -> true or false
1106
+ # - ENV.has_value?(value) -> true or false
1107
+ # -->
1108
+ # Returns `true` if `value` is the value for some environment variable name,
1109
+ # `false` otherwise:
1110
+ # ENV.replace('foo' => '0', 'bar' => '1')
1111
+ # ENV.value?('0') # => true
1112
+ # ENV.has_value?('0') # => true
1113
+ # ENV.value?('2') # => false
1114
+ # ENV.has_value?('2') # => false
1115
+ #
1116
+ %a{annotate:rdoc:copy:ENV.value?}
1117
+ alias value? has_value?
1118
+
1119
+ # <!--
1120
+ # rdoc-file=hash.c
1121
+ # - ENV.include?(name) -> true or false
1122
+ # - ENV.has_key?(name) -> true or false
1123
+ # - ENV.member?(name) -> true or false
1124
+ # - ENV.key?(name) -> true or false
1125
+ # -->
1126
+ # Returns `true` if there is an environment variable with the given `name`:
1127
+ # ENV.replace('foo' => '0', 'bar' => '1')
1128
+ # ENV.include?('foo') # => true
1129
+ #
1130
+ # Returns `false` if `name` is a valid String and there is no such environment
1131
+ # variable:
1132
+ # ENV.include?('baz') # => false
1133
+ #
1134
+ # Returns `false` if `name` is the empty String or is a String containing
1135
+ # character `'='`:
1136
+ # ENV.include?('') # => false
1137
+ # ENV.include?('=') # => false
1138
+ #
1139
+ # Raises an exception if `name` is a String containing the NUL character `"\0"`:
1140
+ # ENV.include?("\0") # Raises ArgumentError (bad environment variable name: contains null byte)
1141
+ #
1142
+ # Raises an exception if `name` has an encoding that is not ASCII-compatible:
1143
+ # ENV.include?("\xa1\xa1".force_encoding(Encoding::UTF_16LE))
1144
+ # # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)
1145
+ #
1146
+ # Raises an exception if `name` is not a String:
1147
+ # ENV.include?(Object.new) # TypeError (no implicit conversion of Object into String)
1148
+ #
1149
+ %a{annotate:rdoc:copy:ENV.key?}
1150
+ alias key? include?
1151
+
1152
+ # <!--
1153
+ # rdoc-file=hash.c
1154
+ # - ENV.to_hash -> hash of name/value pairs
1155
+ # -->
1156
+ # Returns a Hash containing all name/value pairs from ENV:
1157
+ # ENV.replace('foo' => '0', 'bar' => '1')
1158
+ # ENV.to_hash # => {"bar"=>"1", "foo"=>"0"}
1159
+ #
1160
+ %a{annotate:rdoc:copy:ENV.to_hash}
1161
+ def to_hash: () -> ::Hash[String, String]
1162
+
1163
+ # <!--
1164
+ # rdoc-file=hash.c
1165
+ # - ENV.assoc(name) -> [name, value] or nil
1166
+ # -->
1167
+ # Returns a 2-element Array containing the name and value of the environment
1168
+ # variable for `name` if it exists:
1169
+ # ENV.replace('foo' => '0', 'bar' => '1')
1170
+ # ENV.assoc('foo') # => ['foo', '0']
1171
+ #
1172
+ # Returns `nil` if `name` is a valid String and there is no such environment
1173
+ # variable.
1174
+ #
1175
+ # Returns `nil` if `name` is the empty String or is a String containing
1176
+ # character `'='`.
1177
+ #
1178
+ # Raises an exception if `name` is a String containing the NUL character `"\0"`:
1179
+ # ENV.assoc("\0") # Raises ArgumentError (bad environment variable name: contains null byte)
1180
+ #
1181
+ # Raises an exception if `name` has an encoding that is not ASCII-compatible:
1182
+ # ENV.assoc("\xa1\xa1".force_encoding(Encoding::UTF_16LE))
1183
+ # # Raises ArgumentError (bad environment variable name: ASCII incompatible encoding: UTF-16LE)
1184
+ #
1185
+ # Raises an exception if `name` is not a String:
1186
+ # ENV.assoc(Object.new) # TypeError (no implicit conversion of Object into String)
1187
+ #
1188
+ %a{annotate:rdoc:copy:ENV.assoc}
1189
+ def assoc: (String name) -> [ String, String ]?
1190
+
1191
+ # <!--
1192
+ # rdoc-file=hash.c
1193
+ # - ENV.rassoc(value) -> [name, value] or nil
1194
+ # -->
1195
+ # Returns a 2-element Array containing the name and value of the **first**
1196
+ # **found** environment variable that has value `value`, if one exists:
1197
+ # ENV.replace('foo' => '0', 'bar' => '0')
1198
+ # ENV.rassoc('0') # => ["bar", "0"]
1199
+ #
1200
+ # The order in which environment variables are examined is OS-dependent. See
1201
+ # [About Ordering](rdoc-ref:ENV@About+Ordering).
1202
+ #
1203
+ # Returns `nil` if there is no such environment variable.
1204
+ #
1205
+ %a{annotate:rdoc:copy:ENV.rassoc}
1206
+ def rassoc: (String value) -> [ String, String ]?
1207
+ end
1208
+ end
1209
+ end