rbs 3.9.5 → 4.0.0

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 (330) hide show
  1. checksums.yaml +4 -4
  2. data/.clang-format +74 -0
  3. data/.clangd +2 -0
  4. data/.github/dependabot.yml +14 -14
  5. data/.github/workflows/bundle-update.yml +60 -0
  6. data/.github/workflows/c-check.yml +58 -0
  7. data/.github/workflows/comments.yml +5 -3
  8. data/.github/workflows/dependabot.yml +2 -2
  9. data/.github/workflows/ruby.yml +40 -32
  10. data/.github/workflows/rust.yml +95 -0
  11. data/.github/workflows/typecheck.yml +2 -2
  12. data/.github/workflows/windows.yml +3 -3
  13. data/.gitignore +4 -0
  14. data/.rubocop.yml +2 -2
  15. data/.vscode/extensions.json +5 -0
  16. data/.vscode/settings.json +19 -0
  17. data/CHANGELOG.md +284 -0
  18. data/README.md +38 -1
  19. data/Rakefile +144 -29
  20. data/Steepfile +2 -0
  21. data/config.yml +634 -62
  22. data/core/array.rbs +307 -227
  23. data/core/basic_object.rbs +9 -8
  24. data/core/binding.rbs +0 -2
  25. data/core/builtin.rbs +2 -2
  26. data/core/class.rbs +6 -5
  27. data/core/comparable.rbs +55 -34
  28. data/core/complex.rbs +104 -78
  29. data/core/dir.rbs +61 -49
  30. data/core/encoding.rbs +12 -15
  31. data/core/enumerable.rbs +188 -87
  32. data/core/enumerator/arithmetic_sequence.rbs +70 -0
  33. data/core/enumerator.rbs +65 -2
  34. data/core/errno.rbs +11 -2
  35. data/core/errors.rbs +58 -29
  36. data/core/exception.rbs +13 -13
  37. data/core/fiber.rbs +74 -54
  38. data/core/file.rbs +280 -177
  39. data/core/file_test.rbs +3 -3
  40. data/core/float.rbs +257 -92
  41. data/core/gc.rbs +425 -281
  42. data/core/hash.rbs +1045 -739
  43. data/core/integer.rbs +135 -137
  44. data/core/io/buffer.rbs +53 -42
  45. data/core/io/wait.rbs +13 -35
  46. data/core/io.rbs +196 -148
  47. data/core/kernel.rbs +216 -155
  48. data/core/marshal.rbs +4 -4
  49. data/core/match_data.rbs +15 -13
  50. data/core/math.rbs +107 -66
  51. data/core/method.rbs +69 -33
  52. data/core/module.rbs +244 -106
  53. data/core/nil_class.rbs +7 -6
  54. data/core/numeric.rbs +74 -63
  55. data/core/object.rbs +9 -11
  56. data/core/object_space.rbs +30 -23
  57. data/core/pathname.rbs +1322 -0
  58. data/core/proc.rbs +95 -58
  59. data/core/process.rbs +222 -202
  60. data/core/ractor.rbs +371 -515
  61. data/core/random.rbs +21 -3
  62. data/core/range.rbs +159 -57
  63. data/core/rational.rbs +60 -89
  64. data/core/rbs/unnamed/argf.rbs +60 -53
  65. data/core/rbs/unnamed/env_class.rbs +19 -14
  66. data/core/rbs/unnamed/main_class.rbs +123 -0
  67. data/core/rbs/unnamed/random.rbs +11 -118
  68. data/core/regexp.rbs +258 -214
  69. data/core/ruby.rbs +53 -0
  70. data/core/ruby_vm.rbs +38 -34
  71. data/core/rubygems/config_file.rbs +5 -5
  72. data/core/rubygems/errors.rbs +4 -71
  73. data/core/rubygems/requirement.rbs +5 -5
  74. data/core/rubygems/rubygems.rbs +16 -82
  75. data/core/rubygems/version.rbs +2 -3
  76. data/core/set.rbs +490 -360
  77. data/core/signal.rbs +26 -16
  78. data/core/string.rbs +3303 -1365
  79. data/core/struct.rbs +27 -26
  80. data/core/symbol.rbs +41 -34
  81. data/core/thread.rbs +135 -74
  82. data/core/time.rbs +81 -50
  83. data/core/trace_point.rbs +41 -35
  84. data/core/true_class.rbs +2 -2
  85. data/core/unbound_method.rbs +24 -16
  86. data/core/warning.rbs +7 -7
  87. data/docs/aliases.md +79 -0
  88. data/docs/collection.md +3 -3
  89. data/docs/config.md +171 -0
  90. data/docs/encoding.md +56 -0
  91. data/docs/gem.md +0 -1
  92. data/docs/inline.md +576 -0
  93. data/docs/sigs.md +3 -3
  94. data/docs/syntax.md +46 -16
  95. data/docs/type_fingerprint.md +21 -0
  96. data/exe/rbs +1 -1
  97. data/ext/rbs_extension/ast_translation.c +1513 -0
  98. data/ext/rbs_extension/ast_translation.h +37 -0
  99. data/ext/rbs_extension/class_constants.c +185 -0
  100. data/{include/rbs/constants.h → ext/rbs_extension/class_constants.h} +22 -1
  101. data/ext/rbs_extension/compat.h +10 -0
  102. data/ext/rbs_extension/extconf.rb +25 -1
  103. data/ext/rbs_extension/legacy_location.c +294 -0
  104. data/ext/rbs_extension/legacy_location.h +82 -0
  105. data/ext/rbs_extension/main.c +468 -24
  106. data/ext/rbs_extension/rbs_extension.h +6 -21
  107. data/ext/rbs_extension/rbs_string_bridging.c +9 -0
  108. data/ext/rbs_extension/rbs_string_bridging.h +24 -0
  109. data/include/rbs/ast.h +1022 -0
  110. data/include/rbs/defines.h +86 -0
  111. data/include/rbs/lexer.h +206 -0
  112. data/include/rbs/location.h +40 -0
  113. data/include/rbs/parser.h +153 -0
  114. data/include/rbs/string.h +47 -0
  115. data/include/rbs/util/rbs_allocator.h +59 -0
  116. data/include/rbs/util/rbs_assert.h +20 -0
  117. data/include/rbs/util/rbs_buffer.h +83 -0
  118. data/include/rbs/util/rbs_constant_pool.h +6 -70
  119. data/include/rbs/util/rbs_encoding.h +282 -0
  120. data/include/rbs/util/rbs_unescape.h +24 -0
  121. data/include/rbs.h +9 -2
  122. data/lib/rbs/annotate/formatter.rb +3 -13
  123. data/lib/rbs/annotate/rdoc_annotator.rb +3 -1
  124. data/lib/rbs/annotate/rdoc_source.rb +1 -1
  125. data/lib/rbs/ast/annotation.rb +1 -1
  126. data/lib/rbs/ast/comment.rb +1 -1
  127. data/lib/rbs/ast/declarations.rb +10 -10
  128. data/lib/rbs/ast/members.rb +14 -14
  129. data/lib/rbs/ast/ruby/annotations.rb +409 -0
  130. data/lib/rbs/ast/ruby/comment_block.rb +245 -0
  131. data/lib/rbs/ast/ruby/declarations.rb +281 -0
  132. data/lib/rbs/ast/ruby/helpers/constant_helper.rb +28 -0
  133. data/lib/rbs/ast/ruby/helpers/location_helper.rb +15 -0
  134. data/lib/rbs/ast/ruby/members.rb +723 -0
  135. data/lib/rbs/ast/type_param.rb +24 -4
  136. data/lib/rbs/buffer.rb +105 -20
  137. data/lib/rbs/cli/diff.rb +16 -15
  138. data/lib/rbs/cli/validate.rb +63 -126
  139. data/lib/rbs/cli.rb +56 -24
  140. data/lib/rbs/collection/config/lockfile_generator.rb +14 -2
  141. data/lib/rbs/collection/sources/git.rb +1 -0
  142. data/lib/rbs/collection.rb +0 -1
  143. data/lib/rbs/definition.rb +6 -1
  144. data/lib/rbs/definition_builder/ancestor_builder.rb +121 -65
  145. data/lib/rbs/definition_builder/method_builder.rb +65 -30
  146. data/lib/rbs/definition_builder.rb +177 -20
  147. data/lib/rbs/diff.rb +7 -1
  148. data/lib/rbs/environment/class_entry.rb +69 -0
  149. data/lib/rbs/environment/module_entry.rb +66 -0
  150. data/lib/rbs/environment.rb +402 -214
  151. data/lib/rbs/environment_loader.rb +2 -8
  152. data/lib/rbs/errors.rb +31 -21
  153. data/lib/rbs/inline_parser/comment_association.rb +117 -0
  154. data/lib/rbs/inline_parser.rb +542 -0
  155. data/lib/rbs/location_aux.rb +36 -4
  156. data/lib/rbs/locator.rb +5 -1
  157. data/lib/rbs/method_type.rb +5 -3
  158. data/lib/rbs/namespace.rb +0 -7
  159. data/lib/rbs/parser_aux.rb +35 -7
  160. data/lib/rbs/prototype/helpers.rb +57 -0
  161. data/lib/rbs/prototype/rb.rb +3 -28
  162. data/lib/rbs/prototype/rbi.rb +3 -20
  163. data/lib/rbs/prototype/runtime.rb +10 -2
  164. data/lib/rbs/resolver/constant_resolver.rb +2 -2
  165. data/lib/rbs/resolver/type_name_resolver.rb +116 -38
  166. data/lib/rbs/source.rb +99 -0
  167. data/lib/rbs/subtractor.rb +7 -4
  168. data/lib/rbs/test/type_check.rb +19 -2
  169. data/lib/rbs/type_name.rb +1 -8
  170. data/lib/rbs/types.rb +91 -79
  171. data/lib/rbs/unit_test/convertibles.rb +1 -0
  172. data/lib/rbs/unit_test/type_assertions.rb +35 -8
  173. data/lib/rbs/validator.rb +2 -2
  174. data/lib/rbs/version.rb +1 -1
  175. data/lib/rbs.rb +13 -2
  176. data/lib/rdoc/discover.rb +1 -1
  177. data/lib/rdoc_plugin/parser.rb +3 -3
  178. data/rbs.gemspec +4 -2
  179. data/rust/.gitignore +1 -0
  180. data/rust/Cargo.lock +378 -0
  181. data/rust/Cargo.toml +7 -0
  182. data/rust/ruby-rbs/Cargo.toml +22 -0
  183. data/rust/ruby-rbs/build.rs +764 -0
  184. data/rust/ruby-rbs/examples/locations.rs +60 -0
  185. data/rust/ruby-rbs/src/lib.rs +1 -0
  186. data/rust/ruby-rbs/src/node/mod.rs +742 -0
  187. data/rust/ruby-rbs/tests/sanity.rs +47 -0
  188. data/rust/ruby-rbs/vendor/rbs/config.yml +1 -0
  189. data/rust/ruby-rbs-sys/Cargo.toml +23 -0
  190. data/rust/ruby-rbs-sys/build.rs +204 -0
  191. data/rust/ruby-rbs-sys/src/lib.rs +50 -0
  192. data/rust/ruby-rbs-sys/vendor/rbs/include +1 -0
  193. data/rust/ruby-rbs-sys/vendor/rbs/src +1 -0
  194. data/rust/ruby-rbs-sys/wrapper.h +1 -0
  195. data/schema/typeParam.json +17 -1
  196. data/sig/ancestor_builder.rbs +1 -1
  197. data/sig/annotate/formatter.rbs +2 -2
  198. data/sig/annotate/rdoc_annotater.rbs +1 -1
  199. data/sig/ast/ruby/annotations.rbs +421 -0
  200. data/sig/ast/ruby/comment_block.rbs +127 -0
  201. data/sig/ast/ruby/declarations.rbs +158 -0
  202. data/sig/ast/ruby/helpers/constant_helper.rbs +11 -0
  203. data/sig/ast/ruby/helpers/location_helper.rbs +15 -0
  204. data/sig/ast/ruby/members.rbs +178 -0
  205. data/sig/buffer.rbs +63 -5
  206. data/sig/cli/diff.rbs +5 -11
  207. data/sig/cli/validate.rbs +12 -8
  208. data/sig/cli.rbs +18 -18
  209. data/sig/definition.rbs +6 -0
  210. data/sig/definition_builder.rbs +3 -1
  211. data/sig/environment/class_entry.rbs +50 -0
  212. data/sig/environment/module_entry.rbs +50 -0
  213. data/sig/environment.rbs +94 -87
  214. data/sig/errors.rbs +26 -20
  215. data/sig/inline_parser/comment_association.rbs +71 -0
  216. data/sig/inline_parser.rbs +124 -0
  217. data/sig/location.rbs +32 -7
  218. data/sig/locator.rbs +0 -2
  219. data/sig/manifest.yaml +0 -1
  220. data/sig/method_builder.rbs +9 -4
  221. data/sig/namespace.rbs +0 -5
  222. data/sig/parser.rbs +67 -13
  223. data/sig/prototype/helpers.rbs +2 -0
  224. data/sig/resolver/type_name_resolver.rbs +35 -7
  225. data/sig/source.rbs +48 -0
  226. data/sig/type_param.rbs +13 -8
  227. data/sig/typename.rbs +0 -5
  228. data/sig/types.rbs +10 -8
  229. data/sig/unit_test/spy.rbs +0 -8
  230. data/sig/unit_test/type_assertions.rbs +11 -0
  231. data/src/ast.c +1604 -0
  232. data/src/lexer.c +3194 -0
  233. data/src/lexer.re +154 -0
  234. data/src/lexstate.c +212 -0
  235. data/src/location.c +31 -0
  236. data/src/parser.c +4205 -0
  237. data/src/string.c +41 -0
  238. data/src/util/rbs_allocator.c +165 -0
  239. data/src/util/rbs_assert.c +19 -0
  240. data/src/util/rbs_buffer.c +54 -0
  241. data/src/util/rbs_constant_pool.c +18 -92
  242. data/src/util/rbs_encoding.c +21308 -0
  243. data/src/util/rbs_unescape.c +167 -0
  244. data/stdlib/bigdecimal/0/big_decimal.rbs +116 -98
  245. data/stdlib/bigdecimal-math/0/big_math.rbs +169 -8
  246. data/stdlib/cgi/0/core.rbs +9 -393
  247. data/stdlib/cgi/0/manifest.yaml +1 -0
  248. data/stdlib/cgi-escape/0/escape.rbs +171 -0
  249. data/stdlib/coverage/0/coverage.rbs +7 -4
  250. data/stdlib/date/0/date.rbs +92 -79
  251. data/stdlib/date/0/date_time.rbs +25 -24
  252. data/stdlib/delegate/0/delegator.rbs +10 -7
  253. data/stdlib/did_you_mean/0/did_you_mean.rbs +17 -16
  254. data/stdlib/digest/0/digest.rbs +110 -0
  255. data/stdlib/erb/0/erb.rbs +748 -347
  256. data/stdlib/etc/0/etc.rbs +55 -50
  257. data/stdlib/fileutils/0/fileutils.rbs +158 -139
  258. data/stdlib/forwardable/0/forwardable.rbs +13 -10
  259. data/stdlib/io-console/0/io-console.rbs +2 -2
  260. data/stdlib/json/0/json.rbs +226 -179
  261. data/stdlib/monitor/0/monitor.rbs +3 -3
  262. data/stdlib/net-http/0/net-http.rbs +162 -134
  263. data/stdlib/objspace/0/objspace.rbs +17 -34
  264. data/stdlib/open-uri/0/open-uri.rbs +48 -8
  265. data/stdlib/open3/0/open3.rbs +469 -10
  266. data/stdlib/openssl/0/openssl.rbs +475 -357
  267. data/stdlib/optparse/0/optparse.rbs +26 -17
  268. data/stdlib/pathname/0/pathname.rbs +11 -1381
  269. data/stdlib/pp/0/pp.rbs +9 -8
  270. data/stdlib/prettyprint/0/prettyprint.rbs +7 -7
  271. data/stdlib/pstore/0/pstore.rbs +35 -30
  272. data/stdlib/psych/0/psych.rbs +65 -12
  273. data/stdlib/psych/0/store.rbs +2 -4
  274. data/stdlib/pty/0/pty.rbs +9 -6
  275. data/stdlib/random-formatter/0/random-formatter.rbs +277 -0
  276. data/stdlib/rdoc/0/code_object.rbs +4 -3
  277. data/stdlib/rdoc/0/comment.rbs +2 -0
  278. data/stdlib/rdoc/0/options.rbs +76 -0
  279. data/stdlib/rdoc/0/parser.rbs +1 -1
  280. data/stdlib/rdoc/0/rdoc.rbs +7 -5
  281. data/stdlib/rdoc/0/store.rbs +2 -2
  282. data/stdlib/resolv/0/resolv.rbs +25 -68
  283. data/stdlib/ripper/0/ripper.rbs +25 -19
  284. data/stdlib/securerandom/0/manifest.yaml +2 -0
  285. data/stdlib/securerandom/0/securerandom.rbs +7 -20
  286. data/stdlib/shellwords/0/shellwords.rbs +2 -2
  287. data/stdlib/singleton/0/singleton.rbs +3 -0
  288. data/stdlib/socket/0/addrinfo.rbs +9 -9
  289. data/stdlib/socket/0/basic_socket.rbs +3 -3
  290. data/stdlib/socket/0/ip_socket.rbs +10 -8
  291. data/stdlib/socket/0/socket.rbs +23 -10
  292. data/stdlib/socket/0/tcp_server.rbs +1 -1
  293. data/stdlib/socket/0/tcp_socket.rbs +11 -3
  294. data/stdlib/socket/0/udp_socket.rbs +1 -1
  295. data/stdlib/socket/0/unix_server.rbs +1 -1
  296. data/stdlib/stringio/0/stringio.rbs +1177 -85
  297. data/stdlib/strscan/0/string_scanner.rbs +27 -25
  298. data/stdlib/tempfile/0/tempfile.rbs +25 -21
  299. data/stdlib/time/0/time.rbs +8 -6
  300. data/stdlib/timeout/0/timeout.rbs +63 -7
  301. data/stdlib/tsort/0/cyclic.rbs +3 -0
  302. data/stdlib/tsort/0/tsort.rbs +7 -6
  303. data/stdlib/uri/0/common.rbs +42 -20
  304. data/stdlib/uri/0/file.rbs +3 -3
  305. data/stdlib/uri/0/generic.rbs +26 -18
  306. data/stdlib/uri/0/http.rbs +2 -2
  307. data/stdlib/uri/0/ldap.rbs +2 -2
  308. data/stdlib/uri/0/mailto.rbs +3 -3
  309. data/stdlib/uri/0/rfc2396_parser.rbs +12 -12
  310. data/stdlib/zlib/0/deflate.rbs +4 -3
  311. data/stdlib/zlib/0/gzip_reader.rbs +6 -6
  312. data/stdlib/zlib/0/gzip_writer.rbs +14 -12
  313. data/stdlib/zlib/0/inflate.rbs +1 -1
  314. data/stdlib/zlib/0/need_dict.rbs +1 -1
  315. data/stdlib/zlib/0/zstream.rbs +1 -0
  316. metadata +121 -18
  317. data/ext/rbs_extension/lexer.c +0 -2728
  318. data/ext/rbs_extension/lexer.h +0 -179
  319. data/ext/rbs_extension/lexer.re +0 -147
  320. data/ext/rbs_extension/lexstate.c +0 -175
  321. data/ext/rbs_extension/location.c +0 -325
  322. data/ext/rbs_extension/location.h +0 -85
  323. data/ext/rbs_extension/parser.c +0 -2982
  324. data/ext/rbs_extension/parser.h +0 -18
  325. data/ext/rbs_extension/parserstate.c +0 -411
  326. data/ext/rbs_extension/parserstate.h +0 -163
  327. data/ext/rbs_extension/unescape.c +0 -32
  328. data/include/rbs/ruby_objs.h +0 -72
  329. data/src/constants.c +0 -153
  330. data/src/ruby_objs.c +0 -799
@@ -27,8 +27,8 @@ module URI
27
27
  # The components should be provided either as an Array, or as a Hash with keys
28
28
  # formed by preceding the component names with a colon.
29
29
  #
30
- # If an Array is used, the components must be passed in the order `[host,
31
- # path]`.
30
+ # If an Array is used, the components must be passed in the order <code>[host,
31
+ # path]</code>.
32
32
  #
33
33
  # A path from e.g. the File class should be escaped before being passed.
34
34
  #
@@ -43,7 +43,7 @@ module URI
43
43
  # :path => '/ruby/src'})
44
44
  # uri2.to_s # => "file://host.example.com/ruby/src"
45
45
  #
46
- # uri3 = URI::File.build({:path => URI::escape('/path/my file.txt')})
46
+ # uri3 = URI::File.build({:path => URI::RFC2396_PARSER.escape('/path/my file.txt')})
47
47
  # uri3.to_s # => "file:///path/my%20file.txt"
48
48
  #
49
49
  def self.build: (Array[String] args) -> URI::File
@@ -145,7 +145,7 @@ module URI
145
145
  #
146
146
  # At first, tries to create a new URI::Generic instance using
147
147
  # URI::Generic::build. But, if exception URI::InvalidComponentError is raised,
148
- # then it does URI::Escape.escape all URI components and tries again.
148
+ # then it does URI::RFC2396_PARSER.escape all URI components and tries again.
149
149
  #
150
150
  def self.build2: (Array[nil | String | Integer]) -> URI::Generic
151
151
  | ({ scheme: String?, userinfo: String?, host: String?, port: Integer?, registry: String?, path: String?, opaque: String?, query: String?, fragment: String? }) -> instance
@@ -293,7 +293,7 @@ module URI
293
293
  # -->
294
294
  # Returns the parser to be used.
295
295
  #
296
- # Unless a URI::Parser is defined, DEFAULT_PARSER is used.
296
+ # Unless the `parser` is defined, DEFAULT_PARSER is used.
297
297
  #
298
298
  def parser: () -> untyped
299
299
 
@@ -317,7 +317,7 @@ module URI
317
317
  # rdoc-file=lib/uri/generic.rb
318
318
  # - check_scheme(v)
319
319
  # -->
320
- # Checks the scheme `v` component against the URI::Parser Regexp for :SCHEME.
320
+ # Checks the scheme `v` component against the `parser` Regexp for :SCHEME.
321
321
  #
322
322
  def check_scheme: (String? v) -> true
323
323
 
@@ -374,8 +374,8 @@ module URI
374
374
  # rdoc-file=lib/uri/generic.rb
375
375
  # - check_user(v)
376
376
  # -->
377
- # Checks the user `v` component for RFC2396 compliance and against the
378
- # URI::Parser Regexp for :USERINFO.
377
+ # Checks the user `v` component for RFC2396 compliance and against the `parser`
378
+ # Regexp for :USERINFO.
379
379
  #
380
380
  # Can not have a registry or opaque component defined, with a user component
381
381
  # defined.
@@ -387,7 +387,7 @@ module URI
387
387
  # - check_password(v, user = @user)
388
388
  # -->
389
389
  # Checks the password `v` component for RFC2396 compliance and against the
390
- # URI::Parser Regexp for :USERINFO.
390
+ # `parser` Regexp for :USERINFO.
391
391
  #
392
392
  # Can not have a registry or opaque component defined, with a user component
393
393
  # defined.
@@ -424,7 +424,7 @@ module URI
424
424
  #
425
425
  # uri = URI.parse("http://john:S3nsit1ve@my.example.com")
426
426
  # uri.user = "sam"
427
- # uri.to_s #=> "http://sam:V3ry_S3nsit1ve@my.example.com"
427
+ # uri.to_s #=> "http://sam@my.example.com"
428
428
  #
429
429
  def user=: (String? user) -> String?
430
430
 
@@ -489,8 +489,8 @@ module URI
489
489
  # rdoc-file=lib/uri/generic.rb
490
490
  # - split_userinfo(ui)
491
491
  # -->
492
- # Returns the userinfo `ui` as `[user, password]` if properly formatted as
493
- # 'user:password'.
492
+ # Returns the userinfo `ui` as <code>[user, password]</code> if properly
493
+ # formatted as 'user:password'.
494
494
  #
495
495
  def split_userinfo: (String ui) -> Array[String | nil]
496
496
 
@@ -530,8 +530,8 @@ module URI
530
530
  # rdoc-file=lib/uri/generic.rb
531
531
  # - check_host(v)
532
532
  # -->
533
- # Checks the host `v` component for RFC2396 compliance and against the
534
- # URI::Parser Regexp for :HOST.
533
+ # Checks the host `v` component for RFC2396 compliance and against the `parser`
534
+ # Regexp for :HOST.
535
535
  #
536
536
  # Can not have a registry or opaque component defined, with a host component
537
537
  # defined.
@@ -611,8 +611,8 @@ module URI
611
611
  # rdoc-file=lib/uri/generic.rb
612
612
  # - check_port(v)
613
613
  # -->
614
- # Checks the port `v` component for RFC2396 compliance and against the
615
- # URI::Parser Regexp for :PORT.
614
+ # Checks the port `v` component for RFC2396 compliance and against the `parser`
615
+ # Regexp for :PORT.
616
616
  #
617
617
  # Can not have a registry or opaque component defined, with a port component
618
618
  # defined.
@@ -670,8 +670,8 @@ module URI
670
670
  # rdoc-file=lib/uri/generic.rb
671
671
  # - check_path(v)
672
672
  # -->
673
- # Checks the path `v` component for RFC2396 compliance and against the
674
- # URI::Parser Regexp for :ABS_PATH and :REL_PATH.
673
+ # Checks the path `v` component for RFC2396 compliance and against the `parser`
674
+ # Regexp for :ABS_PATH and :REL_PATH.
675
675
  #
676
676
  # Can not have a opaque component defined, with a path component defined.
677
677
  #
@@ -742,7 +742,7 @@ module URI
742
742
  # - check_opaque(v)
743
743
  # -->
744
744
  # Checks the opaque `v` component for RFC2396 compliance and against the
745
- # URI::Parser Regexp for :OPAQUE.
745
+ # `parser` Regexp for :OPAQUE.
746
746
  #
747
747
  # Can not have a host, port, user, or path component defined, with an opaque
748
748
  # component defined.
@@ -781,8 +781,7 @@ module URI
781
781
  # rdoc-file=lib/uri/generic.rb
782
782
  # - fragment=(v)
783
783
  # -->
784
- # Checks the fragment `v` component against the URI::Parser Regexp for
785
- # :FRAGMENT.
784
+ # Checks the fragment `v` component against the `parser` Regexp for :FRAGMENT.
786
785
  #
787
786
  # ## Args
788
787
  #
@@ -910,6 +909,13 @@ module URI
910
909
  #
911
910
  def merge: (URI::Generic | string oth) -> URI::Generic
912
911
 
912
+ # <!--
913
+ # rdoc-file=lib/uri/generic.rb
914
+ # - +(oth)
915
+ # -->
916
+ #
917
+ alias + merge
918
+
913
919
  # :stopdoc:
914
920
  def route_from_path: (String src, String dst) -> String
915
921
 
@@ -1010,6 +1016,7 @@ module URI
1010
1016
  # rdoc-file=lib/uri/generic.rb
1011
1017
  # - hash()
1012
1018
  # -->
1019
+ # Returns the hash value.
1013
1020
  #
1014
1021
  def hash: () -> Integer
1015
1022
 
@@ -1017,6 +1024,7 @@ module URI
1017
1024
  # rdoc-file=lib/uri/generic.rb
1018
1025
  # - eql?(oth)
1019
1026
  # -->
1027
+ # Compares with *oth* for Hash.
1020
1028
  #
1021
1029
  def eql?: (URI::Generic oth) -> bool
1022
1030
 
@@ -32,8 +32,8 @@ module URI
32
32
  # The components should be provided either as an Array, or as a Hash with keys
33
33
  # formed by preceding the component names with a colon.
34
34
  #
35
- # If an Array is used, the components must be passed in the order `[userinfo,
36
- # host, port, path, query, fragment]`.
35
+ # If an Array is used, the components must be passed in the order
36
+ # <code>[userinfo, host, port, path, query, fragment]</code>.
37
37
  #
38
38
  # Example:
39
39
  #
@@ -38,8 +38,8 @@ module URI
38
38
  # The components should be provided either as an Array, or as a Hash with keys
39
39
  # formed by preceding the component names with a colon.
40
40
  #
41
- # If an Array is used, the components must be passed in the order `[host, port,
42
- # dn, attributes, scope, filter, extensions]`.
41
+ # If an Array is used, the components must be passed in the order <code>[host,
42
+ # port, dn, attributes, scope, filter, extensions]</code>.
43
43
  #
44
44
  # Example:
45
45
  #
@@ -15,13 +15,13 @@ module URI
15
15
  # Creates a new URI::MailTo object from components, with syntax checking.
16
16
  #
17
17
  # Components can be provided as an Array or Hash. If an Array is used, the
18
- # components must be supplied as `[to, headers]`.
18
+ # components must be supplied as <code>[to, headers]</code>.
19
19
  #
20
20
  # If a Hash is used, the keys are the component names preceded by colons.
21
21
  #
22
22
  # The headers can be supplied as a pre-encoded string, such as
23
- # `"subject=subscribe&cc=address"`, or as an Array of Arrays like `[['subject',
24
- # 'subscribe'], ['cc', 'address']]`.
23
+ # <code>"subject=subscribe&cc=address"</code>, or as an Array of Arrays like
24
+ # <code>[['subject', 'subscribe'], ['cc', 'address']]</code>.
25
25
  #
26
26
  # Examples:
27
27
  #
@@ -17,14 +17,14 @@ module URI
17
17
  # <!-- rdoc-file=lib/uri/rfc2396_parser.rb -->
18
18
  # The Hash of patterns.
19
19
  #
20
- # See also URI::Parser.initialize_pattern.
20
+ # See also #initialize_pattern.
21
21
  #
22
22
  attr_reader pattern: Hash[Symbol, String]
23
23
 
24
24
  # <!-- rdoc-file=lib/uri/rfc2396_parser.rb -->
25
25
  # The Hash of Regexp.
26
26
  #
27
- # See also URI::Parser.initialize_regexp.
27
+ # See also #initialize_regexp.
28
28
  #
29
29
  attr_reader regexp: Hash[Symbol, Regexp]
30
30
 
@@ -34,7 +34,7 @@ module URI
34
34
  # -->
35
35
  # ## Synopsis
36
36
  #
37
- # URI::Parser.new([opts])
37
+ # URI::RFC2396_Parser.new([opts])
38
38
  #
39
39
  # ## Args
40
40
  #
@@ -52,7 +52,7 @@ module URI
52
52
  #
53
53
  # ## Examples
54
54
  #
55
- # p = URI::Parser.new(:ESCAPED => "(?:%[a-fA-F0-9]{2}|%u[a-fA-F0-9]{4})")
55
+ # p = URI::RFC2396_Parser.new(:ESCAPED => "(?:%[a-fA-F0-9]{2}|%u[a-fA-F0-9]{4})")
56
56
  # u = p.parse("http://example.jp/%uABCD") #=> #<URI::HTTP http://example.jp/%uABCD>
57
57
  # URI.parse(u.to_s) #=> raises URI::InvalidURIError
58
58
  #
@@ -75,7 +75,7 @@ module URI
75
75
  # : String to make safe
76
76
  #
77
77
  # `unsafe`
78
- # : Regexp to apply. Defaults to `self.regexp[:UNSAFE]`
78
+ # : Regexp to apply. Defaults to <code>self.regexp[:UNSAFE]</code>
79
79
  #
80
80
  #
81
81
  # ## Description
@@ -105,7 +105,7 @@ module URI
105
105
  # Attempts to parse and merge a set of URIs. If no `block` given, then returns
106
106
  # the result, else it calls `block` for each element in result.
107
107
  #
108
- # See also URI::Parser.make_regexp.
108
+ # See also #make_regexp.
109
109
  #
110
110
  def extract: (String str, ?Array[String] schemes) -> Array[String]
111
111
  | (String str, ?Array[String] schemes) { (String) -> untyped } -> nil
@@ -130,8 +130,9 @@ module URI
130
130
  # rdoc-file=lib/uri/rfc2396_parser.rb
131
131
  # - make_regexp(schemes = nil)
132
132
  # -->
133
- # Returns Regexp that is default `self.regexp[:ABS_URI_REF]`, unless `schemes`
134
- # is provided. Then it is a Regexp.union with `self.pattern[:X_ABS_URI]`.
133
+ # Returns Regexp that is default <code>self.regexp[:ABS_URI_REF]</code>, unless
134
+ # `schemes` is provided. Then it is a Regexp.union with
135
+ # <code>self.pattern[:X_ABS_URI]</code>.
135
136
  #
136
137
  def make_regexp: (?Array[String] schemes) -> Regexp
137
138
 
@@ -152,8 +153,7 @@ module URI
152
153
  #
153
154
  # ## Usage
154
155
  #
155
- # p = URI::Parser.new
156
- # p.parse("ldap://ldap.example.com/dc=example?user=john")
156
+ # URI::RFC2396_PARSER.parse("ldap://ldap.example.com/dc=example?user=john")
157
157
  # #=> #<URI::LDAP ldap://ldap.example.com/dc=example?user=john>
158
158
  #
159
159
  def parse: (String uri) -> URI::Generic
@@ -162,7 +162,7 @@ module URI
162
162
  # rdoc-file=lib/uri/rfc2396_parser.rb
163
163
  # - split(uri)
164
164
  # -->
165
- # Returns a split URI against `regexp[:ABS_URI]`.
165
+ # Returns a split URI against <code>regexp[:ABS_URI]</code>.
166
166
  #
167
167
  def split: (String uri) -> [ String?, String?, String?, String?, String?, String?, String?, String?, String? ]
168
168
 
@@ -177,7 +177,7 @@ module URI
177
177
  # : String to remove escapes from
178
178
  #
179
179
  # `escaped`
180
- # : Regexp to apply. Defaults to `self.regexp[:ESCAPED]`
180
+ # : Regexp to apply. Defaults to <code>self.regexp[:ESCAPED]</code>
181
181
  #
182
182
  #
183
183
  # ## Description
@@ -78,9 +78,10 @@ module Zlib
78
78
  # - flush(flush = Zlib::SYNC_FLUSH) -> String
79
79
  # - flush(flush = Zlib::SYNC_FLUSH) { |chunk| ... } -> nil
80
80
  # -->
81
- # This method is equivalent to `deflate('', flush)`. This method is just
82
- # provided to improve the readability of your Ruby program. If a block is given
83
- # chunks of deflate output are yielded to the block until the buffer is flushed.
81
+ # This method is equivalent to <code>deflate('', flush)</code>. This method is
82
+ # just provided to improve the readability of your Ruby program. If a block is
83
+ # given chunks of deflate output are yielded to the block until the buffer is
84
+ # flushed.
84
85
  #
85
86
  # See Zlib::Deflate#deflate for detail on the `flush` constants NO_FLUSH,
86
87
  # SYNC_FLUSH, FULL_FLUSH and FINISH.
@@ -35,8 +35,8 @@ module Zlib
35
35
  # Be careful of the footer of the gzip file. A gzip file has the checksum of
36
36
  # pre-compressed data in its footer. GzipReader checks all uncompressed data
37
37
  # against that checksum at the following cases, and if it fails, raises
38
- # `Zlib::GzipFile::NoFooter`, `Zlib::GzipFile::CRCError`, or
39
- # `Zlib::GzipFile::LengthError` exception.
38
+ # <code>Zlib::GzipFile::NoFooter</code>, <code>Zlib::GzipFile::CRCError</code>,
39
+ # or <code>Zlib::GzipFile::LengthError</code> exception.
40
40
  #
41
41
  # * When an reading request is received beyond the end of file (the end of
42
42
  # compressed data). That is, when Zlib::GzipReader#read,
@@ -62,8 +62,8 @@ module Zlib
62
62
  # GzipReader object associated with that file. Further details of this method
63
63
  # are in Zlib::GzipReader.new and ZLib::GzipFile.wrap.
64
64
  #
65
- def self.open: (String | _ToPath filename) -> instance
66
- | (String | _ToPath filename) { (instance gz) -> void } -> void
65
+ def self.open: (path filename) -> instance
66
+ | (path filename) { (instance gz) -> void } -> void
67
67
 
68
68
  # <!--
69
69
  # rdoc-file=ext/zlib/zlib.c
@@ -282,8 +282,8 @@ module Zlib
282
282
  # `read` method that behaves same as the IO#read.
283
283
  #
284
284
  # The `options` hash may be used to set the encoding of the data.
285
- # `:external_encoding`, `:internal_encoding` and `:encoding` may be set as in
286
- # IO::new.
285
+ # <code>:external_encoding</code>, <code>:internal_encoding</code> and
286
+ # <code>:encoding</code> may be set as in IO::new.
287
287
  #
288
288
  # If the gzip file header is incorrect, raises an Zlib::GzipFile::Error
289
289
  # exception.
@@ -38,7 +38,8 @@ module Zlib
38
38
  # returns a GzipWriter object associated with that file. Further details of
39
39
  # this method are found in Zlib::GzipWriter.new and Zlib::GzipFile.wrap.
40
40
  #
41
- def self.open: (String filename) { (instance gz) -> void } -> instance
41
+ def self.open: (String filename, ?Integer level, ?Integer strategy, **untyped opts) -> instance
42
+ | (String filename, ?Integer level, ?Integer strategy, **untyped opts) { (instance gz) -> void } -> nil
42
43
 
43
44
  # <!--
44
45
  # rdoc-file=ext/zlib/zlib.c
@@ -61,10 +62,11 @@ module Zlib
61
62
  # - flush(flush=nil)
62
63
  # -->
63
64
  # Flushes all the internal buffers of the GzipWriter object. The meaning of
64
- # `flush` is same as in Zlib::Deflate#deflate. `Zlib::SYNC_FLUSH` is used if
65
- # `flush` is omitted. It is no use giving flush `Zlib::NO_FLUSH`.
65
+ # `flush` is same as in Zlib::Deflate#deflate. <code>Zlib::SYNC_FLUSH</code> is
66
+ # used if `flush` is omitted. It is no use giving flush
67
+ # <code>Zlib::NO_FLUSH</code>.
66
68
  #
67
- def flush: (?Integer flush) -> String
69
+ def flush: (?Integer flush) -> self
68
70
 
69
71
  # <!--
70
72
  # rdoc-file=ext/zlib/zlib.c
@@ -74,16 +76,16 @@ module Zlib
74
76
  #
75
77
  # Setting the mtime in the gzip header does not effect the mtime of the file
76
78
  # generated. Different utilities that expand the gzipped files may use the mtime
77
- # header. For example the gunzip utility can use the `-N` flag which will set
78
- # the resultant file's mtime to the value in the header. By default many tools
79
- # will set the mtime of the expanded file to the mtime of the gzipped file, not
80
- # the mtime in the header.
79
+ # header. For example the gunzip utility can use the <code>-N</code> flag which
80
+ # will set the resultant file's mtime to the value in the header. By default
81
+ # many tools will set the mtime of the expanded file to the mtime of the gzipped
82
+ # file, not the mtime in the header.
81
83
  #
82
84
  # If you do not set an mtime, the default value will be the time when
83
85
  # compression started. Setting a value of 0 indicates no time stamp is
84
86
  # available.
85
87
  #
86
- def mtime=: (string | _ToPath | IO file_name) -> Time
88
+ def mtime=: (Time | Integer) -> void
87
89
 
88
90
  # <!--
89
91
  # rdoc-file=ext/zlib/zlib.c
@@ -158,9 +160,9 @@ module Zlib
158
160
  # that behaves the same as IO#write.
159
161
  #
160
162
  # The `options` hash may be used to set the encoding of the data.
161
- # `:external_encoding`, `:internal_encoding` and `:encoding` may be set as in
162
- # IO::new.
163
+ # <code>:external_encoding</code>, <code>:internal_encoding</code> and
164
+ # <code>:encoding</code> may be set as in IO::new.
163
165
  #
164
- def initialize: (_Writer io, Integer level, Integer strategy, **untyped opts) -> void
166
+ def initialize: (_Writer io, ?Integer? level, ?Integer? strategy, **untyped opts) -> void
165
167
  end
166
168
  end
@@ -123,7 +123,7 @@ module Zlib
123
123
  #
124
124
  # What is this?
125
125
  #
126
- # `:)`
126
+ # <code>:)</code>
127
127
  #
128
128
  def sync_point?: () -> bool
129
129
 
@@ -6,7 +6,7 @@ module Zlib
6
6
  # When zlib returns a Z_NEED_DICT if a preset dictionary is needed at this
7
7
  # point.
8
8
  #
9
- # Used by Zlib::Inflate.inflate and `Zlib.inflate`
9
+ # Used by Zlib::Inflate.inflate and <code>Zlib.inflate</code>
10
10
  #
11
11
  class NeedDict < Zlib::Error
12
12
  end
@@ -153,6 +153,7 @@ module Zlib
153
153
  # rdoc-file=ext/zlib/zlib.c
154
154
  # - flush_next_in -> input
155
155
  # -->
156
+ # Flushes input buffer and returns all data in that buffer.
156
157
  #
157
158
  def flush_next_in: () -> String
158
159