rbs 3.6.1 → 3.9.5

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 (268) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +2 -2
  3. data/.github/workflows/dependabot.yml +1 -1
  4. data/.github/workflows/ruby.yml +34 -10
  5. data/.github/workflows/windows.yml +20 -3
  6. data/.gitignore +1 -0
  7. data/.rubocop.yml +26 -1
  8. data/CHANGELOG.md +241 -0
  9. data/Rakefile +54 -4
  10. data/config.yml +317 -0
  11. data/core/array.rbs +1756 -1591
  12. data/core/basic_object.rbs +38 -35
  13. data/core/comparable.rbs +1 -1
  14. data/core/complex.rbs +166 -94
  15. data/core/data.rbs +2 -2
  16. data/core/dir.rbs +2 -18
  17. data/core/encoding.rbs +12 -32
  18. data/core/enumerable.rbs +270 -266
  19. data/core/enumerator.rbs +14 -4
  20. data/core/env.rbs +1 -1
  21. data/core/errno.rbs +33 -16
  22. data/core/errors.rbs +6 -2
  23. data/core/exception.rbs +342 -167
  24. data/core/fiber.rbs +3 -2
  25. data/core/file.rbs +26 -75
  26. data/core/float.rbs +125 -72
  27. data/core/gc.rbs +158 -42
  28. data/core/hash.rbs +122 -143
  29. data/core/integer.rbs +79 -50
  30. data/core/io/buffer.rbs +49 -43
  31. data/core/io.rbs +108 -151
  32. data/core/kernel.rbs +341 -209
  33. data/core/match_data.rbs +76 -2
  34. data/core/math.rbs +0 -36
  35. data/core/method.rbs +2 -2
  36. data/core/module.rbs +32 -27
  37. data/core/nil_class.rbs +2 -2
  38. data/core/numeric.rbs +101 -104
  39. data/core/object.rbs +1 -5
  40. data/core/object_space/weak_key_map.rbs +3 -4
  41. data/core/object_space.rbs +3 -3
  42. data/core/proc.rbs +82 -14
  43. data/core/process.rbs +110 -58
  44. data/core/ractor.rbs +57 -4
  45. data/core/range.rbs +114 -87
  46. data/core/rational.rbs +0 -2
  47. data/core/rbs/unnamed/argf.rbs +237 -36
  48. data/core/rbs/unnamed/env_class.rbs +35 -53
  49. data/core/rbs/unnamed/random.rbs +1 -2
  50. data/core/regexp.rbs +10 -56
  51. data/core/ruby_vm.rbs +88 -9
  52. data/core/rubygems/config_file.rbs +3 -0
  53. data/core/rubygems/errors.rbs +3 -6
  54. data/core/rubygems/platform.rbs +0 -9
  55. data/core/rubygems/rubygems.rbs +3 -6
  56. data/core/rubygems/version.rbs +8 -8
  57. data/core/set.rbs +4 -16
  58. data/core/string.rbs +271 -264
  59. data/core/struct.rbs +6 -18
  60. data/core/symbol.rbs +14 -21
  61. data/core/thread.rbs +32 -35
  62. data/core/time.rbs +131 -50
  63. data/core/trace_point.rbs +124 -113
  64. data/core/true_class.rbs +0 -1
  65. data/core/unbound_method.rbs +1 -1
  66. data/core/warning.rbs +9 -2
  67. data/docs/architecture.md +1 -1
  68. data/docs/syntax.md +17 -10
  69. data/ext/rbs_extension/extconf.rb +11 -0
  70. data/ext/rbs_extension/location.c +61 -29
  71. data/ext/rbs_extension/location.h +4 -3
  72. data/ext/rbs_extension/main.c +23 -1
  73. data/ext/rbs_extension/parser.c +506 -517
  74. data/ext/rbs_extension/parserstate.c +109 -30
  75. data/ext/rbs_extension/parserstate.h +6 -4
  76. data/ext/rbs_extension/rbs_extension.h +1 -10
  77. data/{ext/rbs_extension → include/rbs}/constants.h +21 -19
  78. data/include/rbs/ruby_objs.h +72 -0
  79. data/include/rbs/util/rbs_constant_pool.h +219 -0
  80. data/include/rbs.h +7 -0
  81. data/lib/rbs/annotate/annotations.rb +3 -3
  82. data/lib/rbs/annotate/rdoc_source.rb +2 -2
  83. data/lib/rbs/ast/declarations.rb +9 -4
  84. data/lib/rbs/ast/directives.rb +10 -0
  85. data/lib/rbs/ast/members.rb +2 -0
  86. data/lib/rbs/ast/type_param.rb +2 -12
  87. data/lib/rbs/cli/diff.rb +3 -3
  88. data/lib/rbs/cli/validate.rb +2 -1
  89. data/lib/rbs/cli.rb +16 -16
  90. data/lib/rbs/collection/config/lockfile_generator.rb +58 -8
  91. data/lib/rbs/collection/config.rb +5 -3
  92. data/lib/rbs/collection/sources/rubygems.rb +1 -1
  93. data/lib/rbs/collection.rb +1 -0
  94. data/lib/rbs/definition.rb +51 -34
  95. data/lib/rbs/definition_builder/ancestor_builder.rb +5 -3
  96. data/lib/rbs/definition_builder.rb +83 -24
  97. data/lib/rbs/environment.rb +33 -18
  98. data/lib/rbs/environment_loader.rb +6 -1
  99. data/lib/rbs/errors.rb +24 -0
  100. data/lib/rbs/locator.rb +2 -0
  101. data/lib/rbs/method_type.rb +2 -0
  102. data/lib/rbs/namespace.rb +1 -0
  103. data/lib/rbs/parser_aux.rb +40 -3
  104. data/lib/rbs/prototype/rb.rb +20 -12
  105. data/lib/rbs/prototype/rbi.rb +11 -6
  106. data/lib/rbs/prototype/runtime/value_object_generator.rb +7 -5
  107. data/lib/rbs/prototype/runtime.rb +7 -5
  108. data/lib/rbs/subtractor.rb +3 -3
  109. data/lib/rbs/test/hook.rb +47 -42
  110. data/lib/rbs/test/type_check.rb +7 -5
  111. data/lib/rbs/type_name.rb +14 -9
  112. data/lib/rbs/types.rb +63 -14
  113. data/lib/rbs/unit_test/spy.rb +4 -2
  114. data/lib/rbs/unit_test/type_assertions.rb +19 -13
  115. data/lib/rbs/unit_test/with_aliases.rb +3 -1
  116. data/lib/rbs/validator.rb +7 -1
  117. data/lib/rbs/version.rb +1 -1
  118. data/lib/rbs/writer.rb +10 -5
  119. data/lib/rbs.rb +1 -0
  120. data/lib/rdoc_plugin/parser.rb +2 -2
  121. data/rbs.gemspec +6 -2
  122. data/sig/ancestor_graph.rbs +5 -5
  123. data/sig/annotate/rdoc_source.rbs +2 -0
  124. data/sig/cli.rbs +2 -0
  125. data/sig/collection/config/lockfile_generator.rbs +9 -1
  126. data/sig/declarations.rbs +10 -3
  127. data/sig/definition.rbs +80 -12
  128. data/sig/definition_builder.rbs +18 -4
  129. data/sig/directives.rbs +17 -1
  130. data/sig/environment.rbs +3 -1
  131. data/sig/errors.rbs +19 -0
  132. data/sig/namespace.rbs +2 -3
  133. data/sig/parser.rbs +5 -1
  134. data/sig/prototype/rb.rbs +1 -1
  135. data/sig/resolver/constant_resolver.rbs +2 -2
  136. data/sig/resolver/context.rbs +1 -1
  137. data/sig/subtractor.rbs +1 -1
  138. data/sig/test/type_check.rbs +2 -2
  139. data/sig/type_alias_dependency.rbs +2 -2
  140. data/sig/type_alias_regularity.rbs +6 -6
  141. data/sig/type_param.rbs +4 -4
  142. data/sig/typename.rbs +8 -5
  143. data/sig/types.rbs +1 -1
  144. data/sig/unit_test/spy.rbs +2 -0
  145. data/sig/unit_test/type_assertions.rbs +2 -0
  146. data/sig/use_map.rbs +1 -1
  147. data/sig/validator.rbs +6 -2
  148. data/sig/vendorer.rbs +1 -1
  149. data/sig/writer.rbs +1 -1
  150. data/{ext/rbs_extension → src}/constants.c +35 -36
  151. data/src/ruby_objs.c +799 -0
  152. data/src/util/rbs_constant_pool.c +342 -0
  153. data/stdlib/base64/0/base64.rbs +0 -9
  154. data/stdlib/benchmark/0/benchmark.rbs +11 -2
  155. data/stdlib/bigdecimal/0/big_decimal.rbs +26 -182
  156. data/stdlib/cgi/0/core.rbs +60 -3
  157. data/stdlib/cgi/0/manifest.yaml +1 -0
  158. data/stdlib/coverage/0/coverage.rbs +0 -3
  159. data/stdlib/csv/0/csv.rbs +18 -58
  160. data/stdlib/csv/0/manifest.yaml +1 -0
  161. data/stdlib/date/0/date.rbs +27 -42
  162. data/stdlib/did_you_mean/0/did_you_mean.rbs +1 -6
  163. data/stdlib/digest/0/digest.rbs +25 -2
  164. data/stdlib/erb/0/erb.rbs +0 -1
  165. data/stdlib/etc/0/etc.rbs +51 -34
  166. data/stdlib/fileutils/0/fileutils.rbs +3 -44
  167. data/stdlib/io-console/0/io-console.rbs +69 -15
  168. data/stdlib/ipaddr/0/ipaddr.rbs +16 -4
  169. data/stdlib/json/0/json.rbs +107 -120
  170. data/stdlib/logger/0/log_device.rbs +1 -1
  171. data/stdlib/logger/0/logger.rbs +3 -18
  172. data/stdlib/minitest/0/kernel.rbs +2 -2
  173. data/stdlib/minitest/0/minitest/abstract_reporter.rbs +4 -1
  174. data/stdlib/minitest/0/minitest/assertion.rbs +1 -0
  175. data/stdlib/minitest/0/minitest/assertions.rbs +58 -13
  176. data/stdlib/minitest/0/minitest/backtrace_filter.rbs +7 -0
  177. data/stdlib/minitest/0/minitest/bench_spec.rbs +8 -8
  178. data/stdlib/minitest/0/minitest/benchmark.rbs +17 -16
  179. data/stdlib/minitest/0/minitest/compress.rbs +13 -0
  180. data/stdlib/minitest/0/minitest/error_on_warning.rbs +3 -0
  181. data/stdlib/minitest/0/minitest/mock.rbs +9 -5
  182. data/stdlib/minitest/0/minitest/parallel/executor.rbs +4 -0
  183. data/stdlib/minitest/0/minitest/parallel/test/class_methods.rbs +0 -1
  184. data/stdlib/minitest/0/minitest/pride_io.rbs +8 -0
  185. data/stdlib/minitest/0/minitest/pride_lol.rbs +2 -0
  186. data/stdlib/minitest/0/minitest/progress_reporter.rbs +1 -1
  187. data/stdlib/minitest/0/minitest/reportable.rbs +2 -0
  188. data/stdlib/minitest/0/minitest/runnable.rbs +33 -1
  189. data/stdlib/minitest/0/minitest/spec/dsl/instance_methods.rbs +1 -1
  190. data/stdlib/minitest/0/minitest/spec/dsl.rbs +10 -6
  191. data/stdlib/minitest/0/minitest/spec.rbs +1 -1
  192. data/stdlib/minitest/0/minitest/statistics_reporter.rbs +5 -0
  193. data/stdlib/minitest/0/minitest/summary_reporter.rbs +0 -7
  194. data/stdlib/minitest/0/minitest/test/lifecycle_hooks.rbs +1 -1
  195. data/stdlib/minitest/0/minitest/test.rbs +7 -14
  196. data/stdlib/minitest/0/minitest/unexpected_error.rbs +2 -0
  197. data/stdlib/minitest/0/minitest/unexpected_warning.rbs +6 -0
  198. data/stdlib/minitest/0/minitest/unit.rbs +1 -2
  199. data/stdlib/minitest/0/minitest.rbs +41 -892
  200. data/stdlib/monitor/0/monitor.rbs +13 -4
  201. data/stdlib/net-http/0/net-http.rbs +42 -109
  202. data/stdlib/nkf/0/nkf.rbs +30 -0
  203. data/stdlib/objspace/0/objspace.rbs +1 -2
  204. data/stdlib/observable/0/observable.rbs +1 -1
  205. data/stdlib/open-uri/0/manifest.yaml +1 -0
  206. data/stdlib/open-uri/0/open-uri.rbs +52 -0
  207. data/stdlib/open3/0/open3.rbs +0 -8
  208. data/stdlib/openssl/0/manifest.yaml +1 -0
  209. data/stdlib/openssl/0/openssl.rbs +235 -143
  210. data/stdlib/optparse/0/optparse.rbs +58 -18
  211. data/stdlib/pathname/0/pathname.rbs +2 -8
  212. data/stdlib/pp/0/pp.rbs +3 -1
  213. data/stdlib/prettyprint/0/prettyprint.rbs +0 -4
  214. data/stdlib/pstore/0/pstore.rbs +0 -6
  215. data/stdlib/psych/0/core_ext.rbs +12 -0
  216. data/stdlib/psych/0/psych.rbs +15 -4
  217. data/stdlib/pty/0/pty.rbs +46 -4
  218. data/stdlib/rdoc/0/code_object.rbs +0 -4
  219. data/stdlib/rdoc/0/markup.rbs +10 -12
  220. data/stdlib/rdoc/0/rdoc.rbs +13 -8
  221. data/stdlib/resolv/0/resolv.rbs +21 -12
  222. data/stdlib/ripper/0/ripper.rbs +0 -2
  223. data/stdlib/securerandom/0/securerandom.rbs +7 -2
  224. data/stdlib/shellwords/0/shellwords.rbs +11 -12
  225. data/stdlib/singleton/0/singleton.rbs +0 -1
  226. data/stdlib/socket/0/addrinfo.rbs +1 -2
  227. data/stdlib/socket/0/basic_socket.rbs +0 -5
  228. data/stdlib/socket/0/socket.rbs +32 -27
  229. data/stdlib/socket/0/tcp_server.rbs +0 -3
  230. data/stdlib/socket/0/tcp_socket.rbs +36 -3
  231. data/stdlib/socket/0/udp_socket.rbs +0 -1
  232. data/stdlib/socket/0/unix_server.rbs +0 -3
  233. data/stdlib/socket/0/unix_socket.rbs +4 -2
  234. data/{core/string_io.rbs → stdlib/stringio/0/stringio.rbs} +1 -1
  235. data/stdlib/strscan/0/string_scanner.rbs +1265 -422
  236. data/stdlib/tempfile/0/tempfile.rbs +135 -28
  237. data/stdlib/time/0/time.rbs +48 -35
  238. data/stdlib/timeout/0/timeout.rbs +11 -8
  239. data/stdlib/tmpdir/0/tmpdir.rbs +10 -3
  240. data/stdlib/tsort/0/tsort.rbs +0 -4
  241. data/stdlib/uri/0/common.rbs +28 -30
  242. data/stdlib/uri/0/ftp.rbs +1 -1
  243. data/stdlib/uri/0/generic.rbs +22 -18
  244. data/stdlib/uri/0/http.rbs +2 -2
  245. data/stdlib/uri/0/rfc2396_parser.rbs +3 -0
  246. data/stdlib/zlib/0/buf_error.rbs +1 -70
  247. data/stdlib/zlib/0/data_error.rbs +1 -70
  248. data/stdlib/zlib/0/deflate.rbs +8 -72
  249. data/stdlib/zlib/0/error.rbs +1 -70
  250. data/stdlib/zlib/0/gzip_file/crc_error.rbs +2 -105
  251. data/stdlib/zlib/0/gzip_file/error.rbs +2 -105
  252. data/stdlib/zlib/0/gzip_file/length_error.rbs +2 -105
  253. data/stdlib/zlib/0/gzip_file/no_footer.rbs +2 -105
  254. data/stdlib/zlib/0/gzip_file.rbs +1 -71
  255. data/stdlib/zlib/0/gzip_reader.rbs +3 -74
  256. data/stdlib/zlib/0/gzip_writer.rbs +1 -70
  257. data/stdlib/zlib/0/inflate.rbs +4 -71
  258. data/stdlib/zlib/0/mem_error.rbs +1 -70
  259. data/stdlib/zlib/0/need_dict.rbs +1 -70
  260. data/stdlib/zlib/0/stream_end.rbs +1 -70
  261. data/stdlib/zlib/0/stream_error.rbs +1 -70
  262. data/stdlib/zlib/0/version_error.rbs +1 -70
  263. data/stdlib/zlib/0/zlib.rbs +0 -2
  264. data/stdlib/zlib/0/zstream.rbs +4 -72
  265. metadata +17 -13
  266. data/ext/rbs_extension/ruby_objs.c +0 -602
  267. data/ext/rbs_extension/ruby_objs.h +0 -51
  268. data/stdlib/minitest/0/manifest.yaml +0 -2
data/stdlib/nkf/0/nkf.rbs CHANGED
@@ -71,9 +71,11 @@
71
71
  # -h1 --hiragana
72
72
  # : Katakana to Hiragana conversion.
73
73
  #
74
+ #
74
75
  # -h2 --katakana
75
76
  # : Hiragana to Katakana conversion.
76
77
  #
78
+ #
77
79
  # -h3 --katakana-hiragana
78
80
  # : Katakana to Hiragana and Hiragana to Katakana conversion.
79
81
  #
@@ -102,12 +104,15 @@
102
104
  # -Z -Z0
103
105
  # : Convert X0208 alphabet to ASCII.
104
106
  #
107
+ #
105
108
  # -Z1
106
109
  # : Converts X0208 kankaku to single ASCII space.
107
110
  #
111
+ #
108
112
  # -Z2
109
113
  # : Converts X0208 kankaku to double ASCII spaces.
110
114
  #
115
+ #
111
116
  # -Z3
112
117
  # : Replacing Fullwidth >, <, ", & into '&gt;', '&lt;', '&quot;', '&amp;' as
113
118
  # in HTML.
@@ -128,6 +133,7 @@
128
133
  # -B1
129
134
  # : allows any char after ESC-( or ESC-$.
130
135
  #
136
+ #
131
137
  # -B2
132
138
  # : forces ASCII after NL.
133
139
  #
@@ -154,6 +160,7 @@
154
160
  # -mQ
155
161
  # : Decode MIME quoted stream. '_' in quoted stream is converted to space.
156
162
  #
163
+ #
157
164
  # -mN
158
165
  # : Non-strict decoding.
159
166
  #
@@ -172,6 +179,7 @@
172
179
  # -MB
173
180
  # : MIME encode Base64 stream.
174
181
  #
182
+ #
175
183
  # -MQ
176
184
  # : Perform quoted encoding.
177
185
  #
@@ -188,9 +196,11 @@
188
196
  # -Lu
189
197
  # : unix (LF)
190
198
  #
199
+ #
191
200
  # -Lw
192
201
  # : windows (CRLF)
193
202
  #
203
+ #
194
204
  # -Lm
195
205
  # : mac (CR)
196
206
  #
@@ -215,63 +225,83 @@
215
225
  # ISO-2022-JP
216
226
  # : a.k.a. RFC1468, 7bit JIS, JUNET
217
227
  #
228
+ #
218
229
  # EUC-JP (eucJP-nkf)
219
230
  # : a.k.a. AT&T JIS, Japanese EUC, UJIS
220
231
  #
232
+ #
221
233
  # eucJP-ascii
222
234
  # : a.k.a. x-eucjp-open-19970715-ascii
223
235
  #
236
+ #
224
237
  # eucJP-ms
225
238
  # : a.k.a. x-eucjp-open-19970715-ms
226
239
  #
240
+ #
227
241
  # CP51932
228
242
  # : Microsoft Version of EUC-JP.
229
243
  #
244
+ #
230
245
  # Shift_JIS
231
246
  # : SJIS, MS-Kanji
232
247
  #
248
+ #
233
249
  # Windows-31J
234
250
  # : a.k.a. CP932
235
251
  #
252
+ #
236
253
  # UTF-8
237
254
  # : same as UTF-8N
238
255
  #
256
+ #
239
257
  # UTF-8N
240
258
  # : UTF-8 without BOM
241
259
  #
260
+ #
242
261
  # UTF-8-BOM
243
262
  # : UTF-8 with BOM
244
263
  #
264
+ #
245
265
  # UTF-16
246
266
  # : same as UTF-16BE
247
267
  #
268
+ #
248
269
  # UTF-16BE
249
270
  # : UTF-16 Big Endian without BOM
250
271
  #
272
+ #
251
273
  # UTF-16BE-BOM
252
274
  # : UTF-16 Big Endian with BOM
253
275
  #
276
+ #
254
277
  # UTF-16LE
255
278
  # : UTF-16 Little Endian without BOM
256
279
  #
280
+ #
257
281
  # UTF-16LE-BOM
258
282
  # : UTF-16 Little Endian with BOM
259
283
  #
284
+ #
260
285
  # UTF-32
261
286
  # : same as UTF-32BE
262
287
  #
288
+ #
263
289
  # UTF-32BE
264
290
  # : UTF-32 Big Endian without BOM
265
291
  #
292
+ #
266
293
  # UTF-32BE-BOM
267
294
  # : UTF-32 Big Endian with BOM
268
295
  #
296
+ #
269
297
  # UTF-32LE
270
298
  # : UTF-32 Little Endian without BOM
271
299
  #
300
+ #
272
301
  # UTF-32LE-BOM
273
302
  # : UTF-32 Little Endian with BOM
274
303
  #
304
+ #
275
305
  # UTF8-MAC
276
306
  # : NKDed UTF-8, a.k.a. UTF8-NFD (input only)
277
307
  #
@@ -246,7 +246,6 @@ module ObjectSpace
246
246
  # * if an instance of IO object is provided, the output goes there, and the
247
247
  # object is returned.
248
248
  #
249
- #
250
249
  # This method is only expected to work with C Ruby. This is an experimental
251
250
  # method and is subject to change. In particular, the function signature and
252
251
  # output format are not guaranteed to be compatible in future versions of ruby.
@@ -395,7 +394,7 @@ module ObjectSpace
395
394
  #
396
395
  # With this method, you can find memory leaks.
397
396
  #
398
- # This method is only expected to work except with C Ruby.
397
+ # This method is only expected to work with C Ruby.
399
398
  #
400
399
  # Example:
401
400
  # ObjectSpace.reachable_objects_from(['a', 'b', 'c'])
@@ -12,7 +12,6 @@
12
12
  # * assert that it has `#changed`
13
13
  # * call `#notify_observers`
14
14
  #
15
- #
16
15
  # An observer subscribes to updates using Observable#add_observer, which also
17
16
  # specifies the method called via #notify_observers. The default method for
18
17
  # #notify_observers is #update.
@@ -139,6 +138,7 @@ module Observable
139
138
  #
140
139
  # `observer`
141
140
  # : the object that will be notified of changes.
141
+ #
142
142
  # `func`
143
143
  # : Symbol naming the method that will be called when this Observable has
144
144
  # changes.
@@ -1,3 +1,4 @@
1
1
  dependencies:
2
2
  - name: tempfile
3
3
  - name: uri
4
+ - name: stringio
@@ -186,6 +186,7 @@ module OpenURI
186
186
  # When false or nil is given, the environment variables are ignored and
187
187
  # connection will be made to a server directly.
188
188
  #
189
+ #
189
190
  # :proxy_http_basic_authentication
190
191
  # : Synopsis:
191
192
  # :proxy_http_basic_authentication =>
@@ -204,6 +205,7 @@ module OpenURI
204
205
  # If :proxy and :proxy_http_basic_authentication is specified, ArgumentError
205
206
  # is raised.
206
207
  #
208
+ #
207
209
  # :http_basic_authentication
208
210
  # : Synopsis:
209
211
  # :http_basic_authentication=>[user, password]
@@ -212,6 +214,7 @@ module OpenURI
212
214
  # which contains 2 strings: username and password. It is used for HTTP Basic
213
215
  # authentication defined by RFC 2617.
214
216
  #
217
+ #
215
218
  # :content_length_proc
216
219
  # : Synopsis:
217
220
  # :content_length_proc => lambda {|content_length| ... }
@@ -226,6 +229,7 @@ module OpenURI
226
229
  # When expected content length is unknown, the procedure is called with nil.
227
230
  # This happens when the HTTP response has no Content-Length header.
228
231
  #
232
+ #
229
233
  # :progress_proc
230
234
  # : Synopsis:
231
235
  # :progress_proc => lambda {|size| ...}
@@ -253,6 +257,7 @@ module OpenURI
253
257
  # pbar.set s if pbar
254
258
  # }) {|f| ... }
255
259
  #
260
+ #
256
261
  # :read_timeout
257
262
  # : Synopsis:
258
263
  # :read_timeout=>nil (no timeout)
@@ -260,6 +265,7 @@ module OpenURI
260
265
  #
261
266
  # :read_timeout option specifies a timeout of read for http connections.
262
267
  #
268
+ #
263
269
  # :open_timeout
264
270
  # : Synopsis:
265
271
  # :open_timeout=>nil (no timeout)
@@ -267,6 +273,7 @@ module OpenURI
267
273
  #
268
274
  # :open_timeout option specifies a timeout of open for http connections.
269
275
  #
276
+ #
270
277
  # :ssl_ca_cert
271
278
  # : Synopsis:
272
279
  # :ssl_ca_cert=>filename or an Array of filenames
@@ -274,12 +281,14 @@ module OpenURI
274
281
  # :ssl_ca_cert is used to specify CA certificate for SSL. If it is given,
275
282
  # default certificates are not used.
276
283
  #
284
+ #
277
285
  # :ssl_verify_mode
278
286
  # : Synopsis:
279
287
  # :ssl_verify_mode=>mode
280
288
  #
281
289
  # :ssl_verify_mode is used to specify openssl verify mode.
282
290
  #
291
+ #
283
292
  # :ssl_min_version
284
293
  # : Synopsis:
285
294
  # :ssl_min_version=>:TLS1_2
@@ -287,6 +296,7 @@ module OpenURI
287
296
  # :ssl_min_version option specifies the minimum allowed SSL/TLS protocol
288
297
  # version. See also OpenSSL::SSL::SSLContext#min_version=.
289
298
  #
299
+ #
290
300
  # :ssl_max_version
291
301
  # : Synopsis:
292
302
  # :ssl_max_version=>:TLS1_2
@@ -294,6 +304,7 @@ module OpenURI
294
304
  # :ssl_max_version option specifies the maximum allowed SSL/TLS protocol
295
305
  # version. See also OpenSSL::SSL::SSLContext#max_version=.
296
306
  #
307
+ #
297
308
  # :ftp_active_mode
298
309
  # : Synopsis:
299
310
  # :ftp_active_mode=>bool
@@ -302,6 +313,7 @@ module OpenURI
302
313
  # passive mode by default. Note that the active mode is default in Ruby 1.8
303
314
  # or prior.
304
315
  #
316
+ #
305
317
  # :redirect
306
318
  # : Synopsis:
307
319
  # :redirect=>bool
@@ -312,6 +324,46 @@ module OpenURI
312
324
  # OpenURI::HTTPRedirect exception raised on redirection. Using `true` also
313
325
  # means that redirections between http and ftp are permitted.
314
326
  #
327
+ #
328
+ # :max_redirects
329
+ # : Synopsis:
330
+ # :max_redirects=>int
331
+ #
332
+ # Number of HTTP redirects allowed before OpenURI::TooManyRedirects is
333
+ # raised. The default is 64.
334
+ #
335
+ #
336
+ # :request_specific_fields
337
+ # : Synopsis:
338
+ # :request_specific_fields => {}
339
+ # :request_specific_fields => lambda {|url| ...}
340
+ #
341
+ # :request_specific_fields option allows specifying custom header fields
342
+ # that are sent with the HTTP request. It can be passed as a Hash or a Proc
343
+ # that gets evaluated on each request and returns a Hash of header fields.
344
+ #
345
+ # If a Hash is provided, it specifies the headers only for the initial
346
+ # request and these headers will not be sent on redirects.
347
+ #
348
+ # If a Proc is provided, it will be executed for each request including
349
+ # redirects, allowing dynamic header customization based on the request URL.
350
+ # It is important that the Proc returns a Hash. And this Hash specifies the
351
+ # headers to be sent with the request.
352
+ #
353
+ # For Example with Hash
354
+ # URI.open("http://...",
355
+ # request_specific_fields: {"Authorization" => "token dummy"}) {|f| ... }
356
+ #
357
+ # For Example with Proc:
358
+ # URI.open("http://...",
359
+ # request_specific_fields: lambda { |uri|
360
+ # if uri.host == "example.com"
361
+ # {"Authorization" => "token dummy"}
362
+ # else
363
+ # {}
364
+ # end
365
+ # }) {|f| ... }
366
+ #
315
367
  def open: (*untyped) -> IO
316
368
  | [T] (*untyped) { (IO) -> T } -> T
317
369
 
@@ -17,7 +17,6 @@
17
17
  # * Open3.capture3: Executes the command; returns strings from $stdout and
18
18
  # $stderr.
19
19
  #
20
- #
21
20
  # * Each of these methods executes a single command in a process or subshell,
22
21
  # and returns pipes for $stdin, $stdout, and/or $stderr:
23
22
  #
@@ -28,7 +27,6 @@
28
27
  # * Open3.popen3: Executes the command; returns pipes for $stdin, $stdout,
29
28
  # and $stderr.
30
29
  #
31
- #
32
30
  # * Each of these methods executes one or more commands in processes and/or
33
31
  # subshells, returns pipes for the first $stdin, the last $stdout, or both:
34
32
  #
@@ -39,8 +37,6 @@
39
37
  # * Open3.pipeline_start: Does not wait for processes to complete.
40
38
  # * Open3.pipeline: Waits for processes to complete.
41
39
  #
42
- #
43
- #
44
40
  # Each of the methods above accepts:
45
41
  #
46
42
  # * An optional hash of environment variable names and values; see [Execution
@@ -66,7 +62,6 @@ module Open3
66
62
  # * Returns as `status` a `Process::Status` object that represents the exit
67
63
  # status of the child process.
68
64
  #
69
- #
70
65
  # Returns the array `[stdout_and_stderr_s, status]`:
71
66
  #
72
67
  # stdout_and_stderr_s, status = Open3.capture2e('echo "Foo"')
@@ -99,14 +94,12 @@ module Open3
99
94
  # * If entry `options[:binmode]` exists, the entry is removed and the internal
100
95
  # streams are set to binary mode.
101
96
  #
102
- #
103
97
  # The single required argument is one of the following:
104
98
  #
105
99
  # * `command_line` if it is a string, and if it begins with a shell reserved
106
100
  # word or special built-in, or if it contains one or more metacharacters.
107
101
  # * `exe_path` otherwise.
108
102
  #
109
- #
110
103
  # **Argument `command_line`**
111
104
  #
112
105
  # String argument `command_line` is a command line to be passed to a shell; it
@@ -133,7 +126,6 @@ module Open3
133
126
  # * A 2-element array containing the path to an executable and the string to
134
127
  # be used as the name of the executing process.
135
128
  #
136
- #
137
129
  # Example:
138
130
  #
139
131
  # Open3.capture2e('/usr/bin/date')
@@ -1,2 +1,3 @@
1
1
  dependencies:
2
2
  - name: socket
3
+ - name: digest