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,590 @@
1
+ # <!-- rdoc-file=ext/socket/basicsocket.c -->
2
+ # BasicSocket is the super class for all the Socket classes.
3
+ #
4
+ class BasicSocket < IO
5
+ # <!--
6
+ # rdoc-file=ext/socket/basicsocket.c
7
+ # - BasicSocket.do_not_reverse_lookup => true or false
8
+ # -->
9
+ # Gets the global do_not_reverse_lookup flag.
10
+ #
11
+ # BasicSocket.do_not_reverse_lookup #=> false
12
+ #
13
+ def self.do_not_reverse_lookup: () -> bool
14
+
15
+ # <!--
16
+ # rdoc-file=ext/socket/basicsocket.c
17
+ # - BasicSocket.do_not_reverse_lookup = bool
18
+ # -->
19
+ # Sets the global do_not_reverse_lookup flag.
20
+ #
21
+ # The flag is used for initial value of do_not_reverse_lookup for each socket.
22
+ #
23
+ # s1 = TCPSocket.new("localhost", 80)
24
+ # p s1.do_not_reverse_lookup #=> true
25
+ # BasicSocket.do_not_reverse_lookup = false
26
+ # s2 = TCPSocket.new("localhost", 80)
27
+ # p s2.do_not_reverse_lookup #=> false
28
+ # p s1.do_not_reverse_lookup #=> true
29
+ #
30
+ def self.do_not_reverse_lookup=: (boolish) -> void
31
+
32
+ # <!--
33
+ # rdoc-file=ext/socket/basicsocket.c
34
+ # - BasicSocket.for_fd(fd) => basicsocket
35
+ # -->
36
+ # Returns a socket object which contains the file descriptor, *fd*.
37
+ #
38
+ # # If invoked by inetd, STDIN/STDOUT/STDERR is a socket.
39
+ # STDIN_SOCK = Socket.for_fd(STDIN.fileno)
40
+ # p STDIN_SOCK.remote_address
41
+ #
42
+ def self.for_fd: (Integer fileno) -> BasicSocket
43
+
44
+ # <!--
45
+ # rdoc-file=ext/socket/basicsocket.c
46
+ # - basicsocket.close_read => nil
47
+ # -->
48
+ # Disallows further read using shutdown system call.
49
+ #
50
+ # s1, s2 = UNIXSocket.pair
51
+ # s1.close_read
52
+ # s2.puts #=> Broken pipe (Errno::EPIPE)
53
+ #
54
+ def close_read: () -> void
55
+
56
+ # <!--
57
+ # rdoc-file=ext/socket/basicsocket.c
58
+ # - basicsocket.close_write => nil
59
+ # -->
60
+ # Disallows further write using shutdown system call.
61
+ #
62
+ # UNIXSocket.pair {|s1, s2|
63
+ # s1.print "ping"
64
+ # s1.close_write
65
+ # p s2.read #=> "ping"
66
+ # s2.print "pong"
67
+ # s2.close
68
+ # p s1.read #=> "pong"
69
+ # }
70
+ #
71
+ def close_write: () -> void
72
+
73
+ # <!--
74
+ # rdoc-file=ext/socket/lib/socket.rb
75
+ # - connect_address()
76
+ # -->
77
+ # Returns an address of the socket suitable for connect in the local machine.
78
+ #
79
+ # This method returns *self*.local_address, except following condition.
80
+ #
81
+ # * IPv4 unspecified address (0.0.0.0) is replaced by IPv4 loopback address
82
+ # (127.0.0.1).
83
+ # * IPv6 unspecified address (::) is replaced by IPv6 loopback address (::1).
84
+ #
85
+ # If the local address is not suitable for connect, SocketError is raised. IPv4
86
+ # and IPv6 address which port is 0 is not suitable for connect. Unix domain
87
+ # socket which has no path is not suitable for connect.
88
+ #
89
+ # Addrinfo.tcp("0.0.0.0", 0).listen {|serv|
90
+ # p serv.connect_address #=> #<Addrinfo: 127.0.0.1:53660 TCP>
91
+ # serv.connect_address.connect {|c|
92
+ # s, _ = serv.accept
93
+ # p [c, s] #=> [#<Socket:fd 4>, #<Socket:fd 6>]
94
+ # }
95
+ # }
96
+ #
97
+ def connect_address: () -> Addrinfo
98
+
99
+ # <!--
100
+ # rdoc-file=ext/socket/basicsocket.c
101
+ # - basicsocket.do_not_reverse_lookup => true or false
102
+ # -->
103
+ # Gets the do_not_reverse_lookup flag of *basicsocket*.
104
+ #
105
+ # require 'socket'
106
+ #
107
+ # BasicSocket.do_not_reverse_lookup = false
108
+ # TCPSocket.open("www.ruby-lang.org", 80) {|sock|
109
+ # p sock.do_not_reverse_lookup #=> false
110
+ # }
111
+ # BasicSocket.do_not_reverse_lookup = true
112
+ # TCPSocket.open("www.ruby-lang.org", 80) {|sock|
113
+ # p sock.do_not_reverse_lookup #=> true
114
+ # }
115
+ #
116
+ def do_not_reverse_lookup: () -> bool
117
+
118
+ # <!--
119
+ # rdoc-file=ext/socket/basicsocket.c
120
+ # - basicsocket.do_not_reverse_lookup = bool
121
+ # -->
122
+ # Sets the do_not_reverse_lookup flag of *basicsocket*.
123
+ #
124
+ # TCPSocket.open("www.ruby-lang.org", 80) {|sock|
125
+ # p sock.do_not_reverse_lookup #=> true
126
+ # p sock.peeraddr #=> ["AF_INET", 80, "221.186.184.68", "221.186.184.68"]
127
+ # sock.do_not_reverse_lookup = false
128
+ # p sock.peeraddr #=> ["AF_INET", 80, "carbon.ruby-lang.org", "54.163.249.195"]
129
+ # }
130
+ #
131
+ def do_not_reverse_lookup=: (boolish) -> void
132
+
133
+ # <!--
134
+ # rdoc-file=ext/socket/basicsocket.c
135
+ # - basicsocket.getpeereid => [euid, egid]
136
+ # -->
137
+ # Returns the user and group on the peer of the UNIX socket. The result is a two
138
+ # element array which contains the effective uid and the effective gid.
139
+ #
140
+ # Socket.unix_server_loop("/tmp/sock") {|s|
141
+ # begin
142
+ # euid, egid = s.getpeereid
143
+ #
144
+ # # Check the connected client is myself or not.
145
+ # next if euid != Process.uid
146
+ #
147
+ # # do something about my resource.
148
+ #
149
+ # ensure
150
+ # s.close
151
+ # end
152
+ # }
153
+ #
154
+ def getpeereid: () -> [ Integer, Integer ]
155
+
156
+ # <!--
157
+ # rdoc-file=ext/socket/basicsocket.c
158
+ # - basicsocket.getpeername => sockaddr
159
+ # -->
160
+ # Returns the remote address of the socket as a sockaddr string.
161
+ #
162
+ # TCPServer.open("127.0.0.1", 1440) {|serv|
163
+ # c = TCPSocket.new("127.0.0.1", 1440)
164
+ # s = serv.accept
165
+ # p s.getpeername #=> "\x02\x00\x82u\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00"
166
+ # }
167
+ #
168
+ # If Addrinfo object is preferred over the binary string, use
169
+ # BasicSocket#remote_address.
170
+ #
171
+ def getpeername: () -> String
172
+
173
+ # <!--
174
+ # rdoc-file=ext/socket/basicsocket.c
175
+ # - basicsocket.getsockname => sockaddr
176
+ # -->
177
+ # Returns the local address of the socket as a sockaddr string.
178
+ #
179
+ # TCPServer.open("127.0.0.1", 15120) {|serv|
180
+ # p serv.getsockname #=> "\x02\x00;\x10\x7F\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00"
181
+ # }
182
+ #
183
+ # If Addrinfo object is preferred over the binary string, use
184
+ # BasicSocket#local_address.
185
+ #
186
+ def getsockname: () -> String
187
+
188
+ # <!--
189
+ # rdoc-file=ext/socket/basicsocket.c
190
+ # - getsockopt(level, optname) => socketoption
191
+ # -->
192
+ # Gets a socket option. These are protocol and system specific, see your local
193
+ # system documentation for details. The option is returned as a Socket::Option
194
+ # object.
195
+ #
196
+ # ### Parameters
197
+ # * `level` is an integer, usually one of the SOL_ constants such as
198
+ # Socket::SOL_SOCKET, or a protocol level. A string or symbol of the name,
199
+ # possibly without prefix, is also accepted.
200
+ # * `optname` is an integer, usually one of the SO_ constants, such as
201
+ # Socket::SO_REUSEADDR. A string or symbol of the name, possibly without
202
+ # prefix, is also accepted.
203
+ #
204
+ # ### Examples
205
+ #
206
+ # Some socket options are integers with boolean values, in this case #getsockopt
207
+ # could be called like this:
208
+ #
209
+ # reuseaddr = sock.getsockopt(:SOCKET, :REUSEADDR).bool
210
+ #
211
+ # optval = sock.getsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR)
212
+ # optval = optval.unpack "i"
213
+ # reuseaddr = optval[0] == 0 ? false : true
214
+ #
215
+ # Some socket options are integers with numeric values, in this case #getsockopt
216
+ # could be called like this:
217
+ #
218
+ # ipttl = sock.getsockopt(:IP, :TTL).int
219
+ #
220
+ # optval = sock.getsockopt(Socket::IPPROTO_IP, Socket::IP_TTL)
221
+ # ipttl = optval.unpack1("i")
222
+ #
223
+ # Option values may be structs. Decoding them can be complex as it involves
224
+ # examining your system headers to determine the correct definition. An example
225
+ # is a +struct linger+, which may be defined in your system headers as:
226
+ # struct linger {
227
+ # int l_onoff;
228
+ # int l_linger;
229
+ # };
230
+ #
231
+ # In this case #getsockopt could be called like this:
232
+ #
233
+ # # Socket::Option knows linger structure.
234
+ # onoff, linger = sock.getsockopt(:SOCKET, :LINGER).linger
235
+ #
236
+ # optval = sock.getsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER)
237
+ # onoff, linger = optval.unpack "ii"
238
+ # onoff = onoff == 0 ? false : true
239
+ #
240
+ def getsockopt: (Symbol | Integer, Symbol | Integer) -> (Integer | boolish | String)
241
+
242
+ # <!--
243
+ # rdoc-file=ext/socket/basicsocket.c
244
+ # - bsock.local_address => addrinfo
245
+ # -->
246
+ # Returns an Addrinfo object for local address obtained by getsockname.
247
+ #
248
+ # Note that addrinfo.protocol is filled by 0.
249
+ #
250
+ # TCPSocket.open("www.ruby-lang.org", 80) {|s|
251
+ # p s.local_address #=> #<Addrinfo: 192.168.0.129:36873 TCP>
252
+ # }
253
+ #
254
+ # TCPServer.open("127.0.0.1", 1512) {|serv|
255
+ # p serv.local_address #=> #<Addrinfo: 127.0.0.1:1512 TCP>
256
+ # }
257
+ #
258
+ def local_address: () -> Addrinfo
259
+
260
+ # <!--
261
+ # rdoc-file=ext/socket/basicsocket.c
262
+ # - basicsocket.recv(maxlen[, flags[, outbuf]]) => mesg
263
+ # -->
264
+ # Receives a message.
265
+ #
266
+ # *maxlen* is the maximum number of bytes to receive.
267
+ #
268
+ # *flags* should be a bitwise OR of Socket::MSG_* constants.
269
+ #
270
+ # *outbuf* will contain only the received data after the method call even if it
271
+ # is not empty at the beginning.
272
+ #
273
+ # UNIXSocket.pair {|s1, s2|
274
+ # s1.puts "Hello World"
275
+ # p s2.recv(4) #=> "Hell"
276
+ # p s2.recv(4, Socket::MSG_PEEK) #=> "o Wo"
277
+ # p s2.recv(4) #=> "o Wo"
278
+ # p s2.recv(10) #=> "rld\n"
279
+ # }
280
+ #
281
+ def recv: (Integer maxlen, ?Integer flags, ?String outbuf) -> String
282
+ | (Integer maxlen, ?String outbuf) -> String
283
+
284
+ # <!--
285
+ # rdoc-file=ext/socket/lib/socket.rb
286
+ # - basicsocket.recv_nonblock(maxlen [, flags [, buf [, options ]]]) => mesg
287
+ # -->
288
+ # Receives up to *maxlen* bytes from `socket` using recvfrom(2) after O_NONBLOCK
289
+ # is set for the underlying file descriptor. *flags* is zero or more of the
290
+ # `MSG_` options. The result, *mesg*, is the data received.
291
+ #
292
+ # When recvfrom(2) returns 0, Socket#recv_nonblock returns nil. In most cases it
293
+ # means the connection was closed, but for UDP connections it may mean an empty
294
+ # packet was received, as the underlying API makes it impossible to distinguish
295
+ # these two cases.
296
+ #
297
+ # ### Parameters
298
+ # * `maxlen` - the number of bytes to receive from the socket
299
+ # * `flags` - zero or more of the `MSG_` options
300
+ # * `buf` - destination String buffer
301
+ # * `options` - keyword hash, supporting `exception: false`
302
+ #
303
+ # ### Example
304
+ # serv = TCPServer.new("127.0.0.1", 0)
305
+ # af, port, host, addr = serv.addr
306
+ # c = TCPSocket.new(addr, port)
307
+ # s = serv.accept
308
+ # c.send "aaa", 0
309
+ # begin # emulate blocking recv.
310
+ # p s.recv_nonblock(10) #=> "aaa"
311
+ # rescue IO::WaitReadable
312
+ # IO.select([s])
313
+ # retry
314
+ # end
315
+ #
316
+ # Refer to Socket#recvfrom for the exceptions that may be thrown if the call to
317
+ # *recv_nonblock* fails.
318
+ #
319
+ # BasicSocket#recv_nonblock may raise any error corresponding to recvfrom(2)
320
+ # failure, including Errno::EWOULDBLOCK.
321
+ #
322
+ # If the exception is Errno::EWOULDBLOCK or Errno::EAGAIN, it is extended by
323
+ # IO::WaitReadable. So IO::WaitReadable can be used to rescue the exceptions for
324
+ # retrying recv_nonblock.
325
+ #
326
+ # By specifying a keyword argument *exception* to `false`, you can indicate that
327
+ # recv_nonblock should not raise an IO::WaitReadable exception, but return the
328
+ # symbol `:wait_readable` instead.
329
+ #
330
+ # ### See
331
+ # * Socket#recvfrom
332
+ #
333
+ def recv_nonblock: (Integer maxlen, ?Integer flags, ?String buf, ?exception: boolish) -> (String | :wait_readable)
334
+
335
+ # <!--
336
+ # rdoc-file=ext/socket/lib/socket.rb
337
+ # - basicsocket.recvmsg(maxmesglen=nil, flags=0, maxcontrollen=nil, opts={}) => [mesg, sender_addrinfo, rflags, *controls]
338
+ # -->
339
+ # recvmsg receives a message using recvmsg(2) system call in blocking manner.
340
+ #
341
+ # *maxmesglen* is the maximum length of mesg to receive.
342
+ #
343
+ # *flags* is bitwise OR of MSG_* constants such as Socket::MSG_PEEK.
344
+ #
345
+ # *maxcontrollen* is the maximum length of controls (ancillary data) to receive.
346
+ #
347
+ # *opts* is option hash. Currently :scm_rights=>bool is the only option.
348
+ #
349
+ # :scm_rights option specifies that application expects SCM_RIGHTS control
350
+ # message. If the value is nil or false, application don't expects SCM_RIGHTS
351
+ # control message. In this case, recvmsg closes the passed file descriptors
352
+ # immediately. This is the default behavior.
353
+ #
354
+ # If :scm_rights value is neither nil nor false, application expects SCM_RIGHTS
355
+ # control message. In this case, recvmsg creates IO objects for each file
356
+ # descriptors for Socket::AncillaryData#unix_rights method.
357
+ #
358
+ # The return value is 4-elements array.
359
+ #
360
+ # *mesg* is a string of the received message.
361
+ #
362
+ # *sender_addrinfo* is a sender socket address for connection-less socket. It is
363
+ # an Addrinfo object. For connection-oriented socket such as TCP,
364
+ # sender_addrinfo is platform dependent.
365
+ #
366
+ # *rflags* is a flags on the received message which is bitwise OR of MSG_*
367
+ # constants such as Socket::MSG_TRUNC. It will be nil if the system uses 4.3BSD
368
+ # style old recvmsg system call.
369
+ #
370
+ # *controls* is ancillary data which is an array of Socket::AncillaryData
371
+ # objects such as:
372
+ #
373
+ # #<Socket::AncillaryData: AF_UNIX SOCKET RIGHTS 7>
374
+ #
375
+ # *maxmesglen* and *maxcontrollen* can be nil. In that case, the buffer will be
376
+ # grown until the message is not truncated. Internally, MSG_PEEK is used. Buffer
377
+ # full and MSG_CTRUNC are checked for truncation.
378
+ #
379
+ # recvmsg can be used to implement recv_io as follows:
380
+ #
381
+ # mesg, sender_sockaddr, rflags, *controls = sock.recvmsg(:scm_rights=>true)
382
+ # controls.each {|ancdata|
383
+ # if ancdata.cmsg_is?(:SOCKET, :RIGHTS)
384
+ # return ancdata.unix_rights[0]
385
+ # end
386
+ # }
387
+ #
388
+ def recvmsg: (?Integer dlen, ?Integer flags, ?Integer clen, ?scm_rights: boolish) -> [ String, Addrinfo, Integer?, Array[Socket::AncillaryData] ]
389
+
390
+ # <!--
391
+ # rdoc-file=ext/socket/lib/socket.rb
392
+ # - basicsocket.recvmsg_nonblock(maxdatalen=nil, flags=0, maxcontrollen=nil, opts={}) => [data, sender_addrinfo, rflags, *controls]
393
+ # -->
394
+ # recvmsg receives a message using recvmsg(2) system call in non-blocking
395
+ # manner.
396
+ #
397
+ # It is similar to BasicSocket#recvmsg but non-blocking flag is set before the
398
+ # system call and it doesn't retry the system call.
399
+ #
400
+ # By specifying a keyword argument *exception* to `false`, you can indicate that
401
+ # recvmsg_nonblock should not raise an IO::WaitReadable exception, but return
402
+ # the symbol `:wait_readable` instead.
403
+ #
404
+ def recvmsg_nonblock: (?Integer dlen, ?Integer flags, ?Integer clen, ?exception: boolish, ?scm_rights: boolish) -> ([ String, Addrinfo, Integer?, Array[Socket::AncillaryData] ] | :wait_readable)
405
+
406
+ # <!--
407
+ # rdoc-file=ext/socket/basicsocket.c
408
+ # - bsock.remote_address => addrinfo
409
+ # -->
410
+ # Returns an Addrinfo object for remote address obtained by getpeername.
411
+ #
412
+ # Note that addrinfo.protocol is filled by 0.
413
+ #
414
+ # TCPSocket.open("www.ruby-lang.org", 80) {|s|
415
+ # p s.remote_address #=> #<Addrinfo: 221.186.184.68:80 TCP>
416
+ # }
417
+ #
418
+ # TCPServer.open("127.0.0.1", 1728) {|serv|
419
+ # c = TCPSocket.new("127.0.0.1", 1728)
420
+ # s = serv.accept
421
+ # p s.remote_address #=> #<Addrinfo: 127.0.0.1:36504 TCP>
422
+ # }
423
+ #
424
+ def remote_address: () -> Addrinfo
425
+
426
+ # <!--
427
+ # rdoc-file=ext/socket/basicsocket.c
428
+ # - basicsocket.send(mesg, flags [, dest_sockaddr]) => numbytes_sent
429
+ # -->
430
+ # send *mesg* via *basicsocket*.
431
+ #
432
+ # *mesg* should be a string.
433
+ #
434
+ # *flags* should be a bitwise OR of Socket::MSG_* constants.
435
+ #
436
+ # *dest_sockaddr* should be a packed sockaddr string or an addrinfo.
437
+ #
438
+ # TCPSocket.open("localhost", 80) {|s|
439
+ # s.send "GET / HTTP/1.0\r\n\r\n", 0
440
+ # p s.read
441
+ # }
442
+ #
443
+ def send: (String msg, ?Integer flags, ?Addrinfo | String dest_sockaddr) -> void
444
+
445
+ # <!--
446
+ # rdoc-file=ext/socket/lib/socket.rb
447
+ # - basicsocket.sendmsg(mesg, flags=0, dest_sockaddr=nil, *controls) => numbytes_sent
448
+ # -->
449
+ # sendmsg sends a message using sendmsg(2) system call in blocking manner.
450
+ #
451
+ # *mesg* is a string to send.
452
+ #
453
+ # *flags* is bitwise OR of MSG_* constants such as Socket::MSG_OOB.
454
+ #
455
+ # *dest_sockaddr* is a destination socket address for connection-less socket. It
456
+ # should be a sockaddr such as a result of Socket.sockaddr_in. An Addrinfo
457
+ # object can be used too.
458
+ #
459
+ # *controls* is a list of ancillary data. The element of *controls* should be
460
+ # Socket::AncillaryData or 3-elements array. The 3-element array should contains
461
+ # cmsg_level, cmsg_type and data.
462
+ #
463
+ # The return value, *numbytes_sent* is an integer which is the number of bytes
464
+ # sent.
465
+ #
466
+ # sendmsg can be used to implement send_io as follows:
467
+ #
468
+ # # use Socket::AncillaryData.
469
+ # ancdata = Socket::AncillaryData.int(:UNIX, :SOCKET, :RIGHTS, io.fileno)
470
+ # sock.sendmsg("a", 0, nil, ancdata)
471
+ #
472
+ # # use 3-element array.
473
+ # ancdata = [:SOCKET, :RIGHTS, [io.fileno].pack("i!")]
474
+ # sock.sendmsg("\0", 0, nil, ancdata)
475
+ #
476
+ def sendmsg: (String mesg, ?Integer flags, ?Addrinfo | String dest_sockaddr, *Socket::AncillaryData controls) -> Integer
477
+
478
+ # <!--
479
+ # rdoc-file=ext/socket/lib/socket.rb
480
+ # - basicsocket.sendmsg_nonblock(mesg, flags=0, dest_sockaddr=nil, *controls, opts={}) => numbytes_sent
481
+ # -->
482
+ # sendmsg_nonblock sends a message using sendmsg(2) system call in non-blocking
483
+ # manner.
484
+ #
485
+ # It is similar to BasicSocket#sendmsg but the non-blocking flag is set before
486
+ # the system call and it doesn't retry the system call.
487
+ #
488
+ # By specifying a keyword argument *exception* to `false`, you can indicate that
489
+ # sendmsg_nonblock should not raise an IO::WaitWritable exception, but return
490
+ # the symbol `:wait_writable` instead.
491
+ #
492
+ def sendmsg_nonblock: (String mesg, ?Integer flags, ?Addrinfo | String dest_sockaddr, *Socket::AncillaryData controls, ?exception: boolish) -> (Integer | :wait_writable)
493
+
494
+ # <!--
495
+ # rdoc-file=ext/socket/basicsocket.c
496
+ # - setsockopt(level, optname, optval)
497
+ # - setsockopt(socketoption)
498
+ # -->
499
+ # Sets a socket option. These are protocol and system specific, see your local
500
+ # system documentation for details.
501
+ #
502
+ # ### Parameters
503
+ # * `level` is an integer, usually one of the SOL_ constants such as
504
+ # Socket::SOL_SOCKET, or a protocol level. A string or symbol of the name,
505
+ # possibly without prefix, is also accepted.
506
+ # * `optname` is an integer, usually one of the SO_ constants, such as
507
+ # Socket::SO_REUSEADDR. A string or symbol of the name, possibly without
508
+ # prefix, is also accepted.
509
+ # * `optval` is the value of the option, it is passed to the underlying
510
+ # setsockopt() as a pointer to a certain number of bytes. How this is done
511
+ # depends on the type:
512
+ # * Integer: value is assigned to an int, and a pointer to the int is
513
+ # passed, with length of sizeof(int).
514
+ # * true or false: 1 or 0 (respectively) is assigned to an int, and the
515
+ # int is passed as for an Integer. Note that `false` must be passed, not
516
+ # `nil`.
517
+ # * String: the string's data and length is passed to the socket.
518
+ # * `socketoption` is an instance of Socket::Option
519
+ #
520
+ # ### Examples
521
+ #
522
+ # Some socket options are integers with boolean values, in this case #setsockopt
523
+ # could be called like this:
524
+ # sock.setsockopt(:SOCKET, :REUSEADDR, true)
525
+ # sock.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR, true)
526
+ # sock.setsockopt(Socket::Option.bool(:INET, :SOCKET, :REUSEADDR, true))
527
+ #
528
+ # Some socket options are integers with numeric values, in this case #setsockopt
529
+ # could be called like this:
530
+ # sock.setsockopt(:IP, :TTL, 255)
531
+ # sock.setsockopt(Socket::IPPROTO_IP, Socket::IP_TTL, 255)
532
+ # sock.setsockopt(Socket::Option.int(:INET, :IP, :TTL, 255))
533
+ #
534
+ # Option values may be structs. Passing them can be complex as it involves
535
+ # examining your system headers to determine the correct definition. An example
536
+ # is an `ip_mreq`, which may be defined in your system headers as:
537
+ # struct ip_mreq {
538
+ # struct in_addr imr_multiaddr;
539
+ # struct in_addr imr_interface;
540
+ # };
541
+ #
542
+ # In this case #setsockopt could be called like this:
543
+ # optval = IPAddr.new("224.0.0.251").hton +
544
+ # IPAddr.new(Socket::INADDR_ANY, Socket::AF_INET).hton
545
+ # sock.setsockopt(Socket::IPPROTO_IP, Socket::IP_ADD_MEMBERSHIP, optval)
546
+ #
547
+ def setsockopt: (*Symbol | Integer, boolish | Integer | String) -> void
548
+
549
+ # <!--
550
+ # rdoc-file=ext/socket/basicsocket.c
551
+ # - basicsocket.shutdown([how]) => 0
552
+ # -->
553
+ # Calls shutdown(2) system call.
554
+ #
555
+ # s.shutdown(Socket::SHUT_RD) disallows further read.
556
+ #
557
+ # s.shutdown(Socket::SHUT_WR) disallows further write.
558
+ #
559
+ # s.shutdown(Socket::SHUT_RDWR) disallows further read and write.
560
+ #
561
+ # *how* can be symbol or string:
562
+ # * :RD, :SHUT_RD, "RD" and "SHUT_RD" are accepted as Socket::SHUT_RD.
563
+ # * :WR, :SHUT_WR, "WR" and "SHUT_WR" are accepted as Socket::SHUT_WR.
564
+ # * :RDWR, :SHUT_RDWR, "RDWR" and "SHUT_RDWR" are accepted as
565
+ # Socket::SHUT_RDWR.
566
+ #
567
+ # UNIXSocket.pair {|s1, s2|
568
+ # s1.puts "ping"
569
+ # s1.shutdown(:WR)
570
+ # p s2.read #=> "ping\n"
571
+ # s2.puts "pong"
572
+ # s2.close
573
+ # p s1.read #=> "pong\n"
574
+ #
575
+ # }
576
+ #
577
+ def shutdown: (interned | Integer flags) -> void
578
+
579
+ private
580
+
581
+ def __recv_nonblock: (untyped, untyped, untyped, untyped) -> untyped
582
+
583
+ def __recvmsg: (untyped, untyped, untyped, untyped) -> untyped
584
+
585
+ def __recvmsg_nonblock: (untyped, untyped, untyped, untyped, untyped) -> untyped
586
+
587
+ def __sendmsg: (untyped, untyped, untyped, untyped) -> untyped
588
+
589
+ def __sendmsg_nonblock: (untyped, untyped, untyped, untyped, untyped) -> untyped
590
+ end