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,796 @@
1
+ # <!-- rdoc-file=lib/logger.rb -->
2
+ # Class Logger provides a simple but sophisticated logging utility that you can
3
+ # use to create one or more [event
4
+ # logs](https://en.wikipedia.org/wiki/Logging_(software)#Event_logs) for your
5
+ # program. Each such log contains a chronological sequence of entries that
6
+ # provides a record of the program's activities.
7
+ #
8
+ # ## About the Examples
9
+ #
10
+ # All examples on this page assume that Logger has been required:
11
+ #
12
+ # require 'logger'
13
+ #
14
+ # ## Synopsis
15
+ #
16
+ # Create a log with Logger.new:
17
+ #
18
+ # # Single log file.
19
+ # logger = Logger.new('t.log')
20
+ # # Size-based rotated logging: 3 10-megabyte files.
21
+ # logger = Logger.new('t.log', 3, 10485760)
22
+ # # Period-based rotated logging: daily (also allowed: 'weekly', 'monthly').
23
+ # logger = Logger.new('t.log', 'daily')
24
+ # # Log to an IO stream.
25
+ # logger = Logger.new($stdout)
26
+ #
27
+ # Add entries (level, message) with Logger#add:
28
+ #
29
+ # logger.add(Logger::DEBUG, 'Maximal debugging info')
30
+ # logger.add(Logger::INFO, 'Non-error information')
31
+ # logger.add(Logger::WARN, 'Non-error warning')
32
+ # logger.add(Logger::ERROR, 'Non-fatal error')
33
+ # logger.add(Logger::FATAL, 'Fatal error')
34
+ # logger.add(Logger::UNKNOWN, 'Most severe')
35
+ #
36
+ # Close the log with Logger#close:
37
+ #
38
+ # logger.close
39
+ #
40
+ # ## Entries
41
+ #
42
+ # You can add entries with method Logger#add:
43
+ #
44
+ # logger.add(Logger::DEBUG, 'Maximal debugging info')
45
+ # logger.add(Logger::INFO, 'Non-error information')
46
+ # logger.add(Logger::WARN, 'Non-error warning')
47
+ # logger.add(Logger::ERROR, 'Non-fatal error')
48
+ # logger.add(Logger::FATAL, 'Fatal error')
49
+ # logger.add(Logger::UNKNOWN, 'Most severe')
50
+ #
51
+ # These shorthand methods also add entries:
52
+ #
53
+ # logger.debug('Maximal debugging info')
54
+ # logger.info('Non-error information')
55
+ # logger.warn('Non-error warning')
56
+ # logger.error('Non-fatal error')
57
+ # logger.fatal('Fatal error')
58
+ # logger.unknown('Most severe')
59
+ #
60
+ # When you call any of these methods, the entry may or may not be written to the
61
+ # log, depending on the entry's severity and on the log level; see [Log
62
+ # Level](rdoc-ref:Logger@Log+Level)
63
+ #
64
+ # An entry always has:
65
+ #
66
+ # * A severity (the required argument to #add).
67
+ # * An automatically created timestamp.
68
+ #
69
+ # And may also have:
70
+ #
71
+ # * A message.
72
+ # * A program name.
73
+ #
74
+ # Example:
75
+ #
76
+ # logger = Logger.new($stdout)
77
+ # logger.add(Logger::INFO, 'My message.', 'mung')
78
+ # # => I, [2022-05-07T17:21:46.536234 #20536] INFO -- mung: My message.
79
+ #
80
+ # The default format for an entry is:
81
+ #
82
+ # "%s, [%s #%d] %5s -- %s: %s\n"
83
+ #
84
+ # where the values to be formatted are:
85
+ #
86
+ # * Severity (one letter).
87
+ # * Timestamp.
88
+ # * Process id.
89
+ # * Severity (word).
90
+ # * Program name.
91
+ # * Message.
92
+ #
93
+ # You can use a different entry format by:
94
+ #
95
+ # * Setting a custom format proc (affects following entries); see
96
+ # [formatter=](Logger.html#attribute-i-formatter).
97
+ # * Calling any of the methods above with a block (affects only the one
98
+ # entry). Doing so can have two benefits:
99
+ #
100
+ # * Context: the block can evaluate the entire program context and create
101
+ # a context-dependent message.
102
+ # * Performance: the block is not evaluated unless the log level permits
103
+ # the entry actually to be written:
104
+ #
105
+ # logger.error { my_slow_message_generator }
106
+ #
107
+ # Contrast this with the string form, where the string is always
108
+ # evaluated, regardless of the log level:
109
+ #
110
+ # logger.error("#{my_slow_message_generator}")
111
+ #
112
+ # ### Severity
113
+ #
114
+ # The severity of a log entry has two effects:
115
+ #
116
+ # * Determines whether the entry is selected for inclusion in the log; see
117
+ # [Log Level](rdoc-ref:Logger@Log+Level).
118
+ # * Indicates to any log reader (whether a person or a program) the relative
119
+ # importance of the entry.
120
+ #
121
+ # ### Timestamp
122
+ #
123
+ # The timestamp for a log entry is generated automatically when the entry is
124
+ # created.
125
+ #
126
+ # The logged timestamp is formatted by method
127
+ # [Time#strftime](rdoc-ref:Time#strftime) using this format string:
128
+ #
129
+ # '%Y-%m-%dT%H:%M:%S.%6N'
130
+ #
131
+ # Example:
132
+ #
133
+ # logger = Logger.new($stdout)
134
+ # logger.add(Logger::INFO)
135
+ # # => I, [2022-05-07T17:04:32.318331 #20536] INFO -- : nil
136
+ #
137
+ # You can set a different format using method #datetime_format=.
138
+ #
139
+ # ### Message
140
+ #
141
+ # The message is an optional argument to an entry method:
142
+ #
143
+ # logger = Logger.new($stdout)
144
+ # logger.add(Logger::INFO, 'My message')
145
+ # # => I, [2022-05-07T18:15:37.647581 #20536] INFO -- : My message
146
+ #
147
+ # For the default entry formatter, `Logger::Formatter`, the message object may
148
+ # be:
149
+ #
150
+ # * A string: used as-is.
151
+ # * An Exception: `message.message` is used.
152
+ # * Anything else: `message.inspect` is used.
153
+ #
154
+ # **Note**: Logger::Formatter does not escape or sanitize the message passed to
155
+ # it. Developers should be aware that malicious data (user input) may be in the
156
+ # message, and should explicitly escape untrusted data.
157
+ #
158
+ # You can use a custom formatter to escape message data; see the example at
159
+ # [formatter=](Logger.html#attribute-i-formatter).
160
+ #
161
+ # ### Program Name
162
+ #
163
+ # The program name is an optional argument to an entry method:
164
+ #
165
+ # logger = Logger.new($stdout)
166
+ # logger.add(Logger::INFO, 'My message', 'mung')
167
+ # # => I, [2022-05-07T18:17:38.084716 #20536] INFO -- mung: My message
168
+ #
169
+ # The default program name for a new logger may be set in the call to Logger.new
170
+ # via optional keyword argument `progname`:
171
+ #
172
+ # logger = Logger.new('t.log', progname: 'mung')
173
+ #
174
+ # The default program name for an existing logger may be set by a call to method
175
+ # #progname=:
176
+ #
177
+ # logger.progname = 'mung'
178
+ #
179
+ # The current program name may be retrieved with method
180
+ # [progname](Logger.html#attribute-i-progname):
181
+ #
182
+ # logger.progname # => "mung"
183
+ #
184
+ # ## Log Level
185
+ #
186
+ # The log level setting determines whether an entry is actually written to the
187
+ # log, based on the entry's severity.
188
+ #
189
+ # These are the defined severities (least severe to most severe):
190
+ #
191
+ # logger = Logger.new($stdout)
192
+ # logger.add(Logger::DEBUG, 'Maximal debugging info')
193
+ # # => D, [2022-05-07T17:57:41.776220 #20536] DEBUG -- : Maximal debugging info
194
+ # logger.add(Logger::INFO, 'Non-error information')
195
+ # # => I, [2022-05-07T17:59:14.349167 #20536] INFO -- : Non-error information
196
+ # logger.add(Logger::WARN, 'Non-error warning')
197
+ # # => W, [2022-05-07T18:00:45.337538 #20536] WARN -- : Non-error warning
198
+ # logger.add(Logger::ERROR, 'Non-fatal error')
199
+ # # => E, [2022-05-07T18:02:41.592912 #20536] ERROR -- : Non-fatal error
200
+ # logger.add(Logger::FATAL, 'Fatal error')
201
+ # # => F, [2022-05-07T18:05:24.703931 #20536] FATAL -- : Fatal error
202
+ # logger.add(Logger::UNKNOWN, 'Most severe')
203
+ # # => A, [2022-05-07T18:07:54.657491 #20536] ANY -- : Most severe
204
+ #
205
+ # The default initial level setting is Logger::DEBUG, the lowest level, which
206
+ # means that all entries are to be written, regardless of severity:
207
+ #
208
+ # logger = Logger.new($stdout)
209
+ # logger.level # => 0
210
+ # logger.add(0, "My message")
211
+ # # => D, [2022-05-11T15:10:59.773668 #20536] DEBUG -- : My message
212
+ #
213
+ # You can specify a different setting in a new logger using keyword argument
214
+ # `level` with an appropriate value:
215
+ #
216
+ # logger = Logger.new($stdout, level: Logger::ERROR)
217
+ # logger = Logger.new($stdout, level: 'error')
218
+ # logger = Logger.new($stdout, level: :error)
219
+ # logger.level # => 3
220
+ #
221
+ # With this level, entries with severity Logger::ERROR and higher are written,
222
+ # while those with lower severities are not written:
223
+ #
224
+ # logger = Logger.new($stdout, level: Logger::ERROR)
225
+ # logger.add(3)
226
+ # # => E, [2022-05-11T15:17:20.933362 #20536] ERROR -- : nil
227
+ # logger.add(2) # Silent.
228
+ #
229
+ # You can set the log level for an existing logger with method #level=:
230
+ #
231
+ # logger.level = Logger::ERROR
232
+ #
233
+ # These shorthand methods also set the level:
234
+ #
235
+ # logger.debug! # => 0
236
+ # logger.info! # => 1
237
+ # logger.warn! # => 2
238
+ # logger.error! # => 3
239
+ # logger.fatal! # => 4
240
+ #
241
+ # You can retrieve the log level with method #level.
242
+ #
243
+ # logger.level = Logger::ERROR
244
+ # logger.level # => 3
245
+ #
246
+ # These methods return whether a given level is to be written:
247
+ #
248
+ # logger.level = Logger::ERROR
249
+ # logger.debug? # => false
250
+ # logger.info? # => false
251
+ # logger.warn? # => false
252
+ # logger.error? # => true
253
+ # logger.fatal? # => true
254
+ #
255
+ # ## Log File Rotation
256
+ #
257
+ # By default, a log file is a single file that grows indefinitely (until
258
+ # explicitly closed); there is no file rotation.
259
+ #
260
+ # To keep log files to a manageable size, you can use *log* *file* *rotation*,
261
+ # which uses multiple log files:
262
+ #
263
+ # * Each log file has entries for a non-overlapping time interval.
264
+ # * Only the most recent log file is open and active; the others are closed
265
+ # and inactive.
266
+ #
267
+ # ### Size-Based Rotation
268
+ #
269
+ # For size-based log file rotation, call Logger.new with:
270
+ #
271
+ # * Argument `logdev` as a file path.
272
+ # * Argument `shift_age` with a positive integer: the number of log files to
273
+ # be in the rotation.
274
+ # * Argument `shift_size` as a positive integer: the maximum size (in bytes)
275
+ # of each log file; defaults to 1048576 (1 megabyte).
276
+ #
277
+ # Examples:
278
+ #
279
+ # logger = Logger.new('t.log', 3) # Three 1-megabyte files.
280
+ # logger = Logger.new('t.log', 5, 10485760) # Five 10-megabyte files.
281
+ #
282
+ # For these examples, suppose:
283
+ #
284
+ # logger = Logger.new('t.log', 3)
285
+ #
286
+ # Logging begins in the new log file, `t.log`; the log file is "full" and ready
287
+ # for rotation when a new entry would cause its size to exceed `shift_size`.
288
+ #
289
+ # The first time `t.log` is full:
290
+ #
291
+ # * `t.log` is closed and renamed to `t.log.0`.
292
+ # * A new file `t.log` is opened.
293
+ #
294
+ # The second time `t.log` is full:
295
+ #
296
+ # * +t.log.0 is renamed as `t.log.1`.
297
+ # * `t.log` is closed and renamed to `t.log.0`.
298
+ # * A new file `t.log` is opened.
299
+ #
300
+ # Each subsequent time that `t.log` is full, the log files are rotated:
301
+ #
302
+ # * `t.log.1` is removed.
303
+ # * +t.log.0 is renamed as `t.log.1`.
304
+ # * `t.log` is closed and renamed to `t.log.0`.
305
+ # * A new file `t.log` is opened.
306
+ #
307
+ # ### Periodic Rotation
308
+ #
309
+ # For periodic rotation, call Logger.new with:
310
+ #
311
+ # * Argument `logdev` as a file path.
312
+ # * Argument `shift_age` as a string period indicator.
313
+ #
314
+ # Examples:
315
+ #
316
+ # logger = Logger.new('t.log', 'daily') # Rotate log files daily.
317
+ # logger = Logger.new('t.log', 'weekly') # Rotate log files weekly.
318
+ # logger = Logger.new('t.log', 'monthly') # Rotate log files monthly.
319
+ #
320
+ # Example:
321
+ #
322
+ # logger = Logger.new('t.log', 'daily')
323
+ #
324
+ # When the given period expires:
325
+ #
326
+ # * The base log file, `t.log` is closed and renamed with a date-based suffix
327
+ # such as `t.log.20220509`.
328
+ # * A new log file `t.log` is opened.
329
+ # * Nothing is removed.
330
+ #
331
+ # The default format for the suffix is `'%Y%m%d'`, which produces a suffix
332
+ # similar to the one above. You can set a different format using create-time
333
+ # option `shift_period_suffix`; see details and suggestions at
334
+ # [Time#strftime](rdoc-ref:Time#strftime).
335
+ #
336
+ class Logger
337
+ interface _WriteCloser
338
+ def write: (_ToS) -> untyped
339
+
340
+ def close: () -> untyped
341
+ end
342
+ type logdev = _WriteCloser | String
343
+
344
+ include Logger::Severity
345
+
346
+ # <!--
347
+ # rdoc-file=lib/logger.rb
348
+ # - <<(msg)
349
+ # -->
350
+ # Writes the given `msg` to the log with no formatting; returns the number of
351
+ # characters written, or `nil` if no log device exists:
352
+ #
353
+ # logger = Logger.new($stdout)
354
+ # logger << 'My message.' # => 10
355
+ #
356
+ # Output:
357
+ #
358
+ # My message.
359
+ #
360
+ def <<: (untyped msg) -> (untyped | nil)
361
+
362
+ # <!--
363
+ # rdoc-file=lib/logger.rb
364
+ # - add(severity, message = nil, progname = nil) { || ... }
365
+ # -->
366
+ # Creates a log entry, which may or may not be written to the log, depending on
367
+ # the entry's severity and on the log level. See [Log
368
+ # Level](rdoc-ref:Logger@Log+Level) and [Entries](rdoc-ref:Logger@Entries) for
369
+ # details.
370
+ #
371
+ # Examples:
372
+ #
373
+ # logger = Logger.new($stdout, progname: 'mung')
374
+ # logger.add(Logger::INFO)
375
+ # logger.add(Logger::ERROR, 'No good')
376
+ # logger.add(Logger::ERROR, 'No good', 'gnum')
377
+ #
378
+ # Output:
379
+ #
380
+ # I, [2022-05-12T16:25:31.469726 #36328] INFO -- mung: mung
381
+ # E, [2022-05-12T16:25:55.349414 #36328] ERROR -- mung: No good
382
+ # E, [2022-05-12T16:26:35.841134 #36328] ERROR -- gnum: No good
383
+ #
384
+ # These convenience methods have implicit severity:
385
+ #
386
+ # * #debug.
387
+ # * #info.
388
+ # * #warn.
389
+ # * #error.
390
+ # * #fatal.
391
+ # * #unknown.
392
+ #
393
+ def add: (Integer severity, ?untyped message, ?untyped progname) ?{ () -> untyped } -> true
394
+
395
+ # <!--
396
+ # rdoc-file=lib/logger.rb
397
+ # - close()
398
+ # -->
399
+ # Closes the logger; returns `nil`:
400
+ #
401
+ # logger = Logger.new('t.log')
402
+ # logger.close # => nil
403
+ # logger.info('foo') # Prints "log writing failed. closed stream"
404
+ #
405
+ # Related: Logger#reopen.
406
+ #
407
+ def close: () -> untyped
408
+
409
+ # <!--
410
+ # rdoc-file=lib/logger.rb
411
+ # - datetime_format()
412
+ # -->
413
+ # Returns the date-time format; see #datetime_format=.
414
+ #
415
+ def datetime_format: () -> String?
416
+
417
+ # <!--
418
+ # rdoc-file=lib/logger.rb
419
+ # - datetime_format=(datetime_format)
420
+ # -->
421
+ # Sets the date-time format.
422
+ #
423
+ # Argument `datetime_format` should be either of these:
424
+ #
425
+ # * A string suitable for use as a format for method
426
+ # [Time#strftime](rdoc-ref:Time#strftime).
427
+ # * `nil`: the logger uses `'%Y-%m-%dT%H:%M:%S.%6N'`.
428
+ #
429
+ def datetime_format=: (String datetime_format) -> String
430
+ | (nil datetime_format) -> nil
431
+
432
+ # <!--
433
+ # rdoc-file=lib/logger.rb
434
+ # - debug(progname = nil, &block)
435
+ # -->
436
+ # Equivalent to calling #add with severity `Logger::DEBUG`.
437
+ #
438
+ def debug: (?untyped progname) ?{ () -> untyped } -> true
439
+
440
+ # <!--
441
+ # rdoc-file=lib/logger.rb
442
+ # - debug!()
443
+ # -->
444
+ # Sets the log level to Logger::DEBUG. See [Log
445
+ # Level](rdoc-ref:Logger@Log+Level).
446
+ #
447
+ def debug!: () -> Integer
448
+
449
+ # <!--
450
+ # rdoc-file=lib/logger.rb
451
+ # - debug?()
452
+ # -->
453
+ # Returns `true` if the log level allows entries with severity Logger::DEBUG to
454
+ # be written, `false` otherwise. See [Log Level](rdoc-ref:Logger@Log+Level).
455
+ #
456
+ def debug?: () -> bool
457
+
458
+ # <!--
459
+ # rdoc-file=lib/logger.rb
460
+ # - error(progname = nil, &block)
461
+ # -->
462
+ # Equivalent to calling #add with severity `Logger::ERROR`.
463
+ #
464
+ def error: (?untyped progname) ?{ () -> untyped } -> true
465
+
466
+ # <!--
467
+ # rdoc-file=lib/logger.rb
468
+ # - error!()
469
+ # -->
470
+ # Sets the log level to Logger::ERROR. See [Log
471
+ # Level](rdoc-ref:Logger@Log+Level).
472
+ #
473
+ def error!: () -> Integer
474
+
475
+ # <!--
476
+ # rdoc-file=lib/logger.rb
477
+ # - error?()
478
+ # -->
479
+ # Returns `true` if the log level allows entries with severity Logger::ERROR to
480
+ # be written, `false` otherwise. See [Log Level](rdoc-ref:Logger@Log+Level).
481
+ #
482
+ def error?: () -> bool
483
+
484
+ # <!--
485
+ # rdoc-file=lib/logger.rb
486
+ # - fatal(progname = nil, &block)
487
+ # -->
488
+ # Equivalent to calling #add with severity `Logger::FATAL`.
489
+ #
490
+ def fatal: (?untyped progname) ?{ () -> untyped } -> true
491
+
492
+ # <!--
493
+ # rdoc-file=lib/logger.rb
494
+ # - fatal!()
495
+ # -->
496
+ # Sets the log level to Logger::FATAL. See [Log
497
+ # Level](rdoc-ref:Logger@Log+Level).
498
+ #
499
+ def fatal!: () -> Integer
500
+
501
+ # <!--
502
+ # rdoc-file=lib/logger.rb
503
+ # - fatal?()
504
+ # -->
505
+ # Returns `true` if the log level allows entries with severity Logger::FATAL to
506
+ # be written, `false` otherwise. See [Log Level](rdoc-ref:Logger@Log+Level).
507
+ #
508
+ def fatal?: () -> bool
509
+
510
+ # <!-- rdoc-file=lib/logger.rb -->
511
+ # Sets or retrieves the logger entry formatter proc.
512
+ #
513
+ # When `formatter` is `nil`, the logger uses Logger::Formatter.
514
+ #
515
+ # When `formatter` is a proc, a new entry is formatted by the proc, which is
516
+ # called with four arguments:
517
+ #
518
+ # * `severity`: The severity of the entry.
519
+ # * `time`: A Time object representing the entry's timestamp.
520
+ # * `progname`: The program name for the entry.
521
+ # * `msg`: The message for the entry (string or string-convertible object).
522
+ #
523
+ # The proc should return a string containing the formatted entry.
524
+ #
525
+ # This custom formatter uses [String#dump](rdoc-ref:String#dump) to escape the
526
+ # message string:
527
+ #
528
+ # logger = Logger.new($stdout, progname: 'mung')
529
+ # original_formatter = logger.formatter || Logger::Formatter.new
530
+ # logger.formatter = proc { |severity, time, progname, msg|
531
+ # original_formatter.call(severity, time, progname, msg.dump)
532
+ # }
533
+ # logger.add(Logger::INFO, "hello \n ''")
534
+ # logger.add(Logger::INFO, "\f\x00\xff\\\"")
535
+ #
536
+ # Output:
537
+ #
538
+ # I, [2022-05-13T13:16:29.637488 #8492] INFO -- mung: "hello \n ''"
539
+ # I, [2022-05-13T13:16:29.637610 #8492] INFO -- mung: "\f\x00\xFF\\\""
540
+ #
541
+ def formatter: () -> (_Formatter | nil)
542
+
543
+ # <!-- rdoc-file=lib/logger.rb -->
544
+ # Sets or retrieves the logger entry formatter proc.
545
+ #
546
+ # When `formatter` is `nil`, the logger uses Logger::Formatter.
547
+ #
548
+ # When `formatter` is a proc, a new entry is formatted by the proc, which is
549
+ # called with four arguments:
550
+ #
551
+ # * `severity`: The severity of the entry.
552
+ # * `time`: A Time object representing the entry's timestamp.
553
+ # * `progname`: The program name for the entry.
554
+ # * `msg`: The message for the entry (string or string-convertible object).
555
+ #
556
+ # The proc should return a string containing the formatted entry.
557
+ #
558
+ # This custom formatter uses [String#dump](rdoc-ref:String#dump) to escape the
559
+ # message string:
560
+ #
561
+ # logger = Logger.new($stdout, progname: 'mung')
562
+ # original_formatter = logger.formatter || Logger::Formatter.new
563
+ # logger.formatter = proc { |severity, time, progname, msg|
564
+ # original_formatter.call(severity, time, progname, msg.dump)
565
+ # }
566
+ # logger.add(Logger::INFO, "hello \n ''")
567
+ # logger.add(Logger::INFO, "\f\x00\xff\\\"")
568
+ #
569
+ # Output:
570
+ #
571
+ # I, [2022-05-13T13:16:29.637488 #8492] INFO -- mung: "hello \n ''"
572
+ # I, [2022-05-13T13:16:29.637610 #8492] INFO -- mung: "\f\x00\xFF\\\""
573
+ #
574
+ def formatter=: (_Formatter) -> _Formatter
575
+ | (nil) -> nil
576
+
577
+ # <!--
578
+ # rdoc-file=lib/logger.rb
579
+ # - info(progname = nil, &block)
580
+ # -->
581
+ # Equivalent to calling #add with severity `Logger::INFO`.
582
+ #
583
+ def info: (?untyped progname) ?{ () -> untyped } -> true
584
+
585
+ # <!--
586
+ # rdoc-file=lib/logger.rb
587
+ # - info!()
588
+ # -->
589
+ # Sets the log level to Logger::INFO. See [Log
590
+ # Level](rdoc-ref:Logger@Log+Level).
591
+ #
592
+ def info!: () -> Integer
593
+
594
+ # <!--
595
+ # rdoc-file=lib/logger.rb
596
+ # - info?()
597
+ # -->
598
+ # Returns `true` if the log level allows entries with severity Logger::INFO to
599
+ # be written, `false` otherwise. See [Log Level](rdoc-ref:Logger@Log+Level).
600
+ #
601
+ def info?: () -> bool
602
+
603
+ # <!--
604
+ # rdoc-file=lib/logger.rb
605
+ # - level()
606
+ # -->
607
+ # Logging severity threshold (e.g. `Logger::INFO`).
608
+ #
609
+ def level: () -> Integer
610
+
611
+ # <!--
612
+ # rdoc-file=lib/logger.rb
613
+ # - level=(severity)
614
+ # -->
615
+ # Sets the log level; returns `severity`. See [Log
616
+ # Level](rdoc-ref:Logger@Log+Level).
617
+ #
618
+ # Argument `severity` may be an integer, a string, or a symbol:
619
+ #
620
+ # logger.level = Logger::ERROR # => 3
621
+ # logger.level = 3 # => 3
622
+ # logger.level = 'error' # => "error"
623
+ # logger.level = :error # => :error
624
+ #
625
+ # Logger#sev_threshold= is an alias for Logger#level=.
626
+ #
627
+ def level=: (Integer | interned severity) -> Integer
628
+
629
+ # <!--
630
+ # rdoc-file=lib/logger.rb
631
+ # - log(severity, message = nil, progname = nil)
632
+ # -->
633
+ #
634
+ alias log add
635
+
636
+ # <!-- rdoc-file=lib/logger.rb -->
637
+ # Program name to include in log messages.
638
+ #
639
+ def progname: () -> untyped
640
+
641
+ # <!-- rdoc-file=lib/logger.rb -->
642
+ # Program name to include in log messages.
643
+ #
644
+ def progname=: (untyped) -> untyped
645
+
646
+ # <!--
647
+ # rdoc-file=lib/logger.rb
648
+ # - reopen(logdev = nil)
649
+ # -->
650
+ # Sets the logger's output stream:
651
+ #
652
+ # * If `logdev` is `nil`, reopens the current output stream.
653
+ # * If `logdev` is a filepath, opens the indicated file for append.
654
+ # * If `logdev` is an IO stream (usually `$stdout`, `$stderr`, or an open File
655
+ # object), opens the stream for append.
656
+ #
657
+ # Example:
658
+ #
659
+ # logger = Logger.new('t.log')
660
+ # logger.add(Logger::ERROR, 'one')
661
+ # logger.close
662
+ # logger.add(Logger::ERROR, 'two') # Prints 'log writing failed. closed stream'
663
+ # logger.reopen
664
+ # logger.add(Logger::ERROR, 'three')
665
+ # logger.close
666
+ # File.readlines('t.log')
667
+ # # =>
668
+ # # ["# Logfile created on 2022-05-12 14:21:19 -0500 by logger.rb/v1.5.0\n",
669
+ # # "E, [2022-05-12T14:21:27.596726 #22428] ERROR -- : one\n",
670
+ # # "E, [2022-05-12T14:23:05.847241 #22428] ERROR -- : three\n"]
671
+ #
672
+ def reopen: () -> self
673
+ | (logdev?) -> self
674
+
675
+ # <!--
676
+ # rdoc-file=lib/logger.rb
677
+ # - sev_threshold()
678
+ # -->
679
+ #
680
+ alias sev_threshold level
681
+
682
+ # <!--
683
+ # rdoc-file=lib/logger.rb
684
+ # - sev_threshold=(severity)
685
+ # -->
686
+ #
687
+ alias sev_threshold= level=
688
+
689
+ # <!--
690
+ # rdoc-file=lib/logger.rb
691
+ # - unknown(progname = nil, &block)
692
+ # -->
693
+ # Equivalent to calling #add with severity `Logger::UNKNOWN`.
694
+ #
695
+ def unknown: (?untyped progname) ?{ () -> untyped } -> true
696
+
697
+ # <!--
698
+ # rdoc-file=lib/logger.rb
699
+ # - warn(progname = nil, &block)
700
+ # -->
701
+ # Equivalent to calling #add with severity `Logger::WARN`.
702
+ #
703
+ def warn: (?untyped progname) ?{ () -> untyped } -> true
704
+
705
+ # <!--
706
+ # rdoc-file=lib/logger.rb
707
+ # - warn!()
708
+ # -->
709
+ # Sets the log level to Logger::WARN. See [Log
710
+ # Level](rdoc-ref:Logger@Log+Level).
711
+ #
712
+ def warn!: () -> Integer
713
+
714
+ # <!--
715
+ # rdoc-file=lib/logger.rb
716
+ # - warn?()
717
+ # -->
718
+ # Returns `true` if the log level allows entries with severity Logger::WARN to
719
+ # be written, `false` otherwise. See [Log Level](rdoc-ref:Logger@Log+Level).
720
+ #
721
+ def warn?: () -> bool
722
+
723
+ private
724
+
725
+ # <!--
726
+ # rdoc-file=lib/logger.rb
727
+ # - format_message(severity, datetime, progname, msg)
728
+ # -->
729
+ #
730
+ def format_message: (String severity, Time datetime, untyped progname, untyped msg) -> _ToS
731
+
732
+ # <!--
733
+ # rdoc-file=lib/logger.rb
734
+ # - format_severity(severity)
735
+ # -->
736
+ #
737
+ def format_severity: (Integer severity) -> String
738
+
739
+ # <!--
740
+ # rdoc-file=lib/logger.rb
741
+ # - Logger.new(logdev, shift_age = 0, shift_size = 1048576, **options)
742
+ # -->
743
+ # With the single argument `logdev`, returns a new logger with all default
744
+ # options:
745
+ #
746
+ # Logger.new('t.log') # => #<Logger:0x000001e685dc6ac8>
747
+ #
748
+ # Argument `logdev` must be one of:
749
+ #
750
+ # * A string filepath: entries are to be written to the file at that path; if
751
+ # the file at that path exists, new entries are appended.
752
+ # * An IO stream (typically +$stdout+, +$stderr+. or an open file): entries
753
+ # are to be written to the given stream.
754
+ # * `nil` or `File::NULL`: no entries are to be written.
755
+ #
756
+ # Examples:
757
+ #
758
+ # Logger.new('t.log')
759
+ # Logger.new($stdout)
760
+ #
761
+ # The keyword options are:
762
+ #
763
+ # * `level`: sets the log level; default value is Logger::DEBUG. See [Log
764
+ # Level](rdoc-ref:Logger@Log+Level):
765
+ #
766
+ # Logger.new('t.log', level: Logger::ERROR)
767
+ #
768
+ # * `progname`: sets the default program name; default is `nil`. See [Program
769
+ # Name](rdoc-ref:Logger@Program+Name):
770
+ #
771
+ # Logger.new('t.log', progname: 'mung')
772
+ #
773
+ # * `formatter`: sets the entry formatter; default is `nil`. See
774
+ # [formatter=](Logger.html#attribute-i-formatter).
775
+ # * `datetime_format`: sets the format for entry timestamp; default is `nil`.
776
+ # See #datetime_format=.
777
+ # * `binmode`: sets whether the logger writes in binary mode; default is
778
+ # `false`.
779
+ # * `shift_period_suffix`: sets the format for the filename suffix for
780
+ # periodic log file rotation; default is `'%Y%m%d'`. See [Periodic
781
+ # Rotation](rdoc-ref:Logger@Periodic+Rotation).
782
+ # * `reraise_write_errors`: An array of exception classes, which will be
783
+ # reraised if there is an error when writing to the log device. The default
784
+ # is to swallow all exceptions raised.
785
+ #
786
+ def initialize: (logdev? logdev, ?Numeric | String shift_age, ?Integer shift_size, ?shift_period_suffix: String, ?binmode: boolish, ?datetime_format: String, ?formatter: _Formatter, ?progname: String, ?level: Integer | interned) -> void
787
+ end
788
+
789
+ Logger::ProgName: String
790
+
791
+ # <!-- rdoc-file=lib/logger.rb -->
792
+ # Severity label for logging (max 5 chars).
793
+ #
794
+ Logger::SEV_LABEL: Array[String]
795
+
796
+ Logger::VERSION: String