rbs 3.2.0 → 3.3.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 (136) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/comments.yml +1 -1
  3. data/.github/workflows/ruby.yml +7 -2
  4. data/.rubocop.yml +1 -1
  5. data/CHANGELOG.md +134 -0
  6. data/Gemfile +3 -0
  7. data/Gemfile.lock +21 -15
  8. data/README.md +11 -2
  9. data/Rakefile +10 -7
  10. data/Steepfile +7 -7
  11. data/core/basic_object.rbs +7 -7
  12. data/core/binding.rbs +3 -3
  13. data/core/builtin.rbs +171 -5
  14. data/core/constants.rbs +17 -17
  15. data/core/dir.rbs +3 -3
  16. data/core/encoding.rbs +434 -628
  17. data/core/enumerator.rbs +37 -0
  18. data/core/exception.rbs +11 -11
  19. data/core/false_class.rbs +5 -11
  20. data/core/fiber.rbs +5 -5
  21. data/core/file_test.rbs +28 -26
  22. data/core/kernel.rbs +900 -21
  23. data/core/marshal.rbs +24 -14
  24. data/core/match_data.rbs +8 -8
  25. data/core/math.rbs +57 -53
  26. data/core/method.rbs +3 -1
  27. data/core/module.rbs +38 -36
  28. data/core/nil_class.rbs +7 -13
  29. data/core/object.rbs +3 -966
  30. data/core/process.rbs +3 -3
  31. data/core/ractor.rbs +2 -2
  32. data/core/rb_config.rbs +64 -43
  33. data/core/regexp.rbs +3 -3
  34. data/core/set.rbs +3 -2
  35. data/core/signal.rbs +10 -4
  36. data/core/struct.rbs +1 -1
  37. data/core/thread.rbs +7 -7
  38. data/core/thread_group.rbs +9 -9
  39. data/core/true_class.rbs +5 -11
  40. data/core/unbound_method.rbs +56 -7
  41. data/core/warning.rbs +33 -0
  42. data/docs/collection.md +56 -6
  43. data/docs/data_and_struct.md +57 -0
  44. data/docs/stdlib.md +61 -2
  45. data/docs/syntax.md +123 -2
  46. data/ext/rbs_extension/constants.c +73 -72
  47. data/ext/rbs_extension/lexer.c +624 -569
  48. data/ext/rbs_extension/lexer.h +1 -0
  49. data/ext/rbs_extension/lexer.re +1 -0
  50. data/ext/rbs_extension/lexstate.c +1 -0
  51. data/ext/rbs_extension/parser.c +6 -0
  52. data/goodcheck.yml +2 -2
  53. data/lib/rbs/annotate/formatter.rb +13 -3
  54. data/lib/rbs/annotate/rdoc_source.rb +10 -1
  55. data/lib/rbs/cli/colored_io.rb +48 -0
  56. data/lib/rbs/cli/diff.rb +80 -0
  57. data/lib/rbs/cli.rb +169 -17
  58. data/lib/rbs/collection/config/lockfile.rb +0 -25
  59. data/lib/rbs/collection/config/lockfile_generator.rb +0 -6
  60. data/lib/rbs/collection/installer.rb +1 -1
  61. data/lib/rbs/collection/sources/git.rb +6 -4
  62. data/lib/rbs/collection/sources/local.rb +7 -5
  63. data/lib/rbs/diff.rb +121 -0
  64. data/lib/rbs/environment.rb +7 -4
  65. data/lib/rbs/method_type.rb +23 -0
  66. data/lib/rbs/prototype/rb.rb +2 -9
  67. data/lib/rbs/prototype/rbi.rb +1 -1
  68. data/lib/rbs/prototype/runtime/helpers.rb +59 -0
  69. data/lib/rbs/prototype/runtime/reflection.rb +19 -0
  70. data/lib/rbs/prototype/runtime/value_object_generator.rb +275 -0
  71. data/lib/rbs/prototype/runtime.rb +233 -153
  72. data/lib/rbs/resolver/constant_resolver.rb +1 -1
  73. data/lib/rbs/sorter.rb +144 -117
  74. data/lib/rbs/test/guaranteed.rb +31 -0
  75. data/lib/rbs/test/type_check.rb +4 -4
  76. data/lib/rbs/test.rb +3 -0
  77. data/lib/rbs/types.rb +184 -3
  78. data/lib/rbs/version.rb +1 -1
  79. data/lib/rbs/writer.rb +4 -4
  80. data/lib/rbs.rb +1 -0
  81. data/rbs.gemspec +1 -0
  82. data/sig/annotate/formatter.rbs +2 -2
  83. data/sig/annotate/rdoc_annotater.rbs +1 -1
  84. data/sig/cli/colored_io.rbs +15 -0
  85. data/sig/cli/diff.rbs +21 -0
  86. data/sig/cli.rbs +2 -0
  87. data/sig/collection/config/lockfile.rbs +0 -6
  88. data/sig/diff.rbs +23 -0
  89. data/sig/errors.rbs +1 -5
  90. data/sig/method_types.rbs +6 -0
  91. data/sig/prototype/runtime.rbs +166 -0
  92. data/sig/rdoc/rbs.rbs +4 -0
  93. data/sig/shims/bundler.rbs +5 -0
  94. data/sig/sorter.rbs +23 -5
  95. data/sig/types.rbs +29 -0
  96. data/stdlib/benchmark/0/benchmark.rbs +1 -1
  97. data/stdlib/cgi/0/core.rbs +2 -2
  98. data/stdlib/did_you_mean/0/did_you_mean.rbs +2 -2
  99. data/stdlib/digest/0/digest.rbs +1 -1
  100. data/stdlib/fileutils/0/fileutils.rbs +1 -1
  101. data/stdlib/forwardable/0/forwardable.rbs +4 -4
  102. data/stdlib/io-console/0/io-console.rbs +1 -1
  103. data/stdlib/json/0/json.rbs +37 -0
  104. data/stdlib/logger/0/logger.rbs +2 -2
  105. data/stdlib/net-http/0/manifest.yaml +1 -1
  106. data/stdlib/net-http/0/net-http.rbs +16 -63
  107. data/stdlib/net-protocol/0/manifest.yaml +2 -0
  108. data/stdlib/net-protocol/0/net-protocol.rbs +56 -0
  109. data/stdlib/net-smtp/0/manifest.yaml +2 -0
  110. data/stdlib/net-smtp/0/net-smtp.rbs +55 -0
  111. data/stdlib/open-uri/0/manifest.yaml +3 -0
  112. data/stdlib/open-uri/0/open-uri.rbs +341 -0
  113. data/stdlib/openssl/0/openssl.rbs +1 -1
  114. data/stdlib/pp/0/manifest.yaml +2 -0
  115. data/stdlib/pp/0/pp.rbs +301 -0
  116. data/stdlib/{yaml → psych}/0/dbm.rbs +3 -3
  117. data/stdlib/psych/0/manifest.yaml +3 -0
  118. data/stdlib/psych/0/psych.rbs +391 -0
  119. data/stdlib/{yaml → psych}/0/store.rbs +2 -2
  120. data/stdlib/rdoc/0/code_object.rbs +55 -0
  121. data/stdlib/rdoc/0/comment.rbs +60 -0
  122. data/stdlib/rdoc/0/context.rbs +153 -0
  123. data/stdlib/rdoc/0/markup.rbs +119 -0
  124. data/stdlib/rdoc/0/parser.rbs +56 -0
  125. data/stdlib/rdoc/0/rdoc.rbs +0 -372
  126. data/stdlib/rdoc/0/ri.rbs +17 -0
  127. data/stdlib/rdoc/0/store.rbs +48 -0
  128. data/stdlib/rdoc/0/top_level.rbs +97 -0
  129. data/stdlib/socket/0/basic_socket.rbs +1 -1
  130. data/stdlib/socket/0/socket.rbs +1 -1
  131. data/stdlib/uri/0/common.rbs +1 -1
  132. data/stdlib/yaml/0/manifest.yaml +1 -2
  133. data/stdlib/yaml/0/yaml.rbs +1 -199
  134. metadata +49 -7
  135. data/sig/shims/pp.rbs +0 -3
  136. data/sig/shims.rbs +0 -47
@@ -1,59 +1,10 @@
1
1
  module Net
2
- class Protocol
3
- VERSION: String
4
- end
5
-
6
- class ProtocolError < StandardError
7
- end
8
-
9
- class ProtoSyntaxError < ProtocolError
10
- end
11
-
12
- class ProtoFatalError < ProtocolError
13
- end
14
-
15
- class ProtoUnknownError < ProtocolError
16
- end
17
-
18
- class ProtoServerError < ProtocolError
19
- end
20
-
21
- class ProtoAuthError < ProtocolError
22
- end
23
-
24
- class ProtoCommandError < ProtocolError
25
- end
26
-
27
- class ProtoRetriableError < ProtocolError
28
- end
29
-
30
2
  class HTTPBadResponse < StandardError
31
3
  end
32
4
 
33
5
  class HTTPHeaderSyntaxError < StandardError
34
6
  end
35
7
 
36
- # <!-- rdoc-file=lib/net/protocol.rb -->
37
- # OpenTimeout, a subclass of Timeout::Error, is raised if a connection cannot be
38
- # created within the open_timeout.
39
- #
40
- class OpenTimeout < Timeout::Error
41
- end
42
-
43
- # <!-- rdoc-file=lib/net/protocol.rb -->
44
- # ReadTimeout, a subclass of Timeout::Error, is raised if a chunk of the
45
- # response cannot be read within the read_timeout.
46
- #
47
- class ReadTimeout < Timeout::Error
48
- end
49
-
50
- # <!-- rdoc-file=lib/net/protocol.rb -->
51
- # WriteTimeout, a subclass of Timeout::Error, is raised if a chunk of the
52
- # response cannot be written within the write_timeout. Not raised on Windows.
53
- #
54
- class WriteTimeout < Timeout::Error
55
- end
56
-
57
8
  # <!-- rdoc-file=lib/net/http.rb -->
58
9
  # Class Net::HTTP provides a rich library that implements the client in a
59
10
  # client-server model that uses the HTTP request-response protocol. For
@@ -1128,7 +1079,7 @@ module Net
1128
1079
  # This class is obsolete. You may pass these same parameters directly to
1129
1080
  # Net::HTTP.new. See Net::HTTP.new for details of the arguments.
1130
1081
  #
1131
- def self.Proxy: (?Symbol | String p_addr, ?Integer? p_port, ?String? p_user, ?String? p_pass) -> untyped
1082
+ def self.Proxy: (?interned p_addr, ?Integer? p_port, ?String? p_user, ?String? p_pass) -> untyped
1132
1083
 
1133
1084
  # <!--
1134
1085
  # rdoc-file=lib/net/http.rb
@@ -1836,7 +1787,9 @@ module Net
1836
1787
 
1837
1788
  alias length size
1838
1789
 
1839
- type key = String | Symbol
1790
+ # A previous incarnation of `interned` for backward-compatibility (see #1499)
1791
+ %a{steep:deprecated}
1792
+ type key = interned
1840
1793
 
1841
1794
  # <!--
1842
1795
  # rdoc-file=lib/net/http/header.rb
@@ -1852,7 +1805,7 @@ module Net
1852
1805
  # Note that some field values may be retrieved via convenience methods; see
1853
1806
  # [Getters](rdoc-ref:Net::HTTPHeader@Getters).
1854
1807
  #
1855
- def []: (key key) -> (nil | String)
1808
+ def []: (interned key) -> (nil | String)
1856
1809
 
1857
1810
  # <!--
1858
1811
  # rdoc-file=lib/net/http/header.rb
@@ -1870,7 +1823,7 @@ module Net
1870
1823
  # Note that some field values may be set via convenience methods; see
1871
1824
  # [Setters](rdoc-ref:Net::HTTPHeader@Setters).
1872
1825
  #
1873
- def []=: (key key, untyped val) -> void
1826
+ def []=: (interned key, untyped val) -> void
1874
1827
 
1875
1828
  # <!--
1876
1829
  # rdoc-file=lib/net/http/header.rb
@@ -1889,7 +1842,7 @@ module Net
1889
1842
  # req['Foo'] # => "bar, baz, baz, bam"
1890
1843
  # req.get_fields('Foo') # => ["bar", "baz", "baz", "bam"]
1891
1844
  #
1892
- def add_field: (key key, untyped val) -> void
1845
+ def add_field: (interned key, untyped val) -> void
1893
1846
 
1894
1847
  private
1895
1848
 
@@ -1898,7 +1851,7 @@ module Net
1898
1851
  # - set_field(key, val)
1899
1852
  # -->
1900
1853
  #
1901
- def set_field: (key key, untyped val) -> void
1854
+ def set_field: (interned key, untyped val) -> void
1902
1855
 
1903
1856
  # <!--
1904
1857
  # rdoc-file=lib/net/http/header.rb
@@ -1920,7 +1873,7 @@ module Net
1920
1873
  # res.get_fields('Connection') # => ["keep-alive"]
1921
1874
  # res.get_fields('Nosuch') # => nil
1922
1875
  #
1923
- def get_fields: (key key) -> (nil | Array[String])
1876
+ def get_fields: (interned key) -> (nil | Array[String])
1924
1877
 
1925
1878
  # <!--
1926
1879
  # rdoc-file=lib/net/http/header.rb
@@ -1950,9 +1903,9 @@ module Net
1950
1903
  # res.fetch('Nosuch', 'Foo') # => "Foo"
1951
1904
  # res.fetch('Nosuch') # Raises KeyError.
1952
1905
  #
1953
- def fetch: (key key) -> String
1954
- | (key key, untyped) -> untyped
1955
- | (key key) { (String) -> untyped } -> untyped
1906
+ def fetch: (interned key) -> String
1907
+ | (interned key, untyped) -> untyped
1908
+ | (interned key) { (String) -> untyped } -> untyped
1956
1909
 
1957
1910
  # <!--
1958
1911
  # rdoc-file=lib/net/http/header.rb
@@ -2081,7 +2034,7 @@ module Net
2081
2034
  # req.delete('Accept') # => ["*/*"]
2082
2035
  # req.delete('Nosuch') # => nil
2083
2036
  #
2084
- def delete: (key key) -> (Array[String] | nil)
2037
+ def delete: (interned key) -> (Array[String] | nil)
2085
2038
 
2086
2039
  # <!--
2087
2040
  # rdoc-file=lib/net/http/header.rb
@@ -2094,7 +2047,7 @@ module Net
2094
2047
  # req.key?('Accept') # => true
2095
2048
  # req.key?('Nosuch') # => false
2096
2049
  #
2097
- def key?: (key key) -> bool
2050
+ def key?: (interned key) -> bool
2098
2051
 
2099
2052
  # <!--
2100
2053
  # rdoc-file=lib/net/http/header.rb
@@ -2138,7 +2091,7 @@ module Net
2138
2091
  # - capitalize(name)
2139
2092
  # -->
2140
2093
  #
2141
- def capitalize: (key name) -> String
2094
+ def capitalize: (interned name) -> String
2142
2095
 
2143
2096
  public
2144
2097
 
@@ -2361,7 +2314,7 @@ module Net
2361
2314
  # Net::HTTPHeader#content_type= is an alias for
2362
2315
  # Net::HTTPHeader#set_content_type.
2363
2316
  #
2364
- def set_content_type: (key `type`, ?Hash[untyped, untyped] params) -> void
2317
+ def set_content_type: (interned `type`, ?Hash[untyped, untyped] params) -> void
2365
2318
 
2366
2319
  # <!--
2367
2320
  # rdoc-file=lib/net/http/header.rb
@@ -0,0 +1,2 @@
1
+ dependencies:
2
+ - name: timeout
@@ -0,0 +1,56 @@
1
+ module Net
2
+ class Protocol
3
+ VERSION: String
4
+ end
5
+
6
+ class ProtocolError < StandardError
7
+ end
8
+
9
+ class ProtoSyntaxError < ProtocolError
10
+ end
11
+
12
+ class ProtoFatalError < ProtocolError
13
+ end
14
+
15
+ class ProtoUnknownError < ProtocolError
16
+ end
17
+
18
+ class ProtoServerError < ProtocolError
19
+ end
20
+
21
+ class ProtoAuthError < ProtocolError
22
+ end
23
+
24
+ class ProtoCommandError < ProtocolError
25
+ end
26
+
27
+ class ProtoRetriableError < ProtocolError
28
+ end
29
+
30
+ class HTTPBadResponse < StandardError
31
+ end
32
+
33
+ class HTTPHeaderSyntaxError < StandardError
34
+ end
35
+
36
+ # <!-- rdoc-file=lib/net/protocol.rb -->
37
+ # OpenTimeout, a subclass of Timeout::Error, is raised if a connection cannot be
38
+ # created within the open_timeout.
39
+ #
40
+ class OpenTimeout < Timeout::Error
41
+ end
42
+
43
+ # <!-- rdoc-file=lib/net/protocol.rb -->
44
+ # ReadTimeout, a subclass of Timeout::Error, is raised if a chunk of the
45
+ # response cannot be read within the read_timeout.
46
+ #
47
+ class ReadTimeout < Timeout::Error
48
+ end
49
+
50
+ # <!-- rdoc-file=lib/net/protocol.rb -->
51
+ # WriteTimeout, a subclass of Timeout::Error, is raised if a chunk of the
52
+ # response cannot be written within the write_timeout. Not raised on Windows.
53
+ #
54
+ class WriteTimeout < Timeout::Error
55
+ end
56
+ end
@@ -0,0 +1,2 @@
1
+ dependencies:
2
+ - name: net-protocol
@@ -0,0 +1,55 @@
1
+ module Net
2
+ # Module mixed in to all SMTP error classes
3
+ module SMTPError
4
+ attr_reader response: Response
5
+
6
+ def initialize: (Response response, ?message: String) -> void
7
+
8
+ def message: () -> String?
9
+ end
10
+
11
+ # Represents an SMTP authentication error.
12
+ class SMTPAuthenticationError < ProtoAuthError
13
+ include SMTPError
14
+ end
15
+
16
+ # Represents SMTP error code 4xx, a temporary error.
17
+ class SMTPServerBusy < ProtoServerError
18
+ include SMTPError
19
+ end
20
+
21
+ # Represents an SMTP command syntax error (error code 500)
22
+ class SMTPSyntaxError < ProtoSyntaxError
23
+ include SMTPError
24
+ end
25
+
26
+ # Represents a fatal SMTP error (error code 5xx, except for 500)
27
+ class SMTPFatalError < ProtoFatalError
28
+ include SMTPError
29
+ end
30
+
31
+ # Unexpected reply code returned from server.
32
+ class SMTPUnknownError < ProtoUnknownError
33
+ include SMTPError
34
+ end
35
+
36
+ # Command is not supported on server.
37
+ class SMTPUnsupportedCommand < ProtocolError
38
+ include SMTPError
39
+ end
40
+
41
+ class SMTP < Protocol
42
+ def self.start: (String address, ?Integer port, ?tls_verify: bool, ?tls_hostname: String?, ?helo: String, ?user: String?, ?password: String?, ?auth_type: Symbol) -> instance
43
+ | [T] (String address, ?Integer port, ?tls_verify: bool, ?tls_hostname: String?, ?helo: String, ?user: String?, ?password: String?, ?auth_type: Symbol) { (instance) -> T } -> T
44
+ | (String address, ?Integer port, ?String helo, ?String? user, ?String? password, ?Symbol auth_type) -> instance
45
+ | [T] (String address, ?Integer port, ?String helo, ?String? user, ?String? password, ?Symbol auth_type) { (instance) -> T } -> T
46
+
47
+ def initialize: (String address, ?Integer port) -> void
48
+ def send_message: (_Each[String] mail_src, String from_addr, *String to_addrs) -> void
49
+ end
50
+
51
+ class Response
52
+ end
53
+
54
+ class SMTPSession = SMTP
55
+ end
@@ -0,0 +1,3 @@
1
+ dependencies:
2
+ - name: tempfile
3
+ - name: uri
@@ -0,0 +1,341 @@
1
+ %a{annotate:rdoc:skip}
2
+ module URI
3
+ # <!--
4
+ # rdoc-file=lib/open-uri.rb
5
+ # - open(name, *rest, &block)
6
+ # -->
7
+ # Allows the opening of various resources including URIs.
8
+ #
9
+ # If the first argument responds to the 'open' method, 'open' is called on it
10
+ # with the rest of the arguments.
11
+ #
12
+ # If the first argument is a string that begins with `(protocol)://`, it is
13
+ # parsed by URI.parse. If the parsed object responds to the 'open' method,
14
+ # 'open' is called on it with the rest of the arguments.
15
+ #
16
+ # Otherwise, Kernel#open is called.
17
+ #
18
+ # OpenURI::OpenRead#open provides URI::HTTP#open, URI::HTTPS#open and
19
+ # URI::FTP#open, Kernel#open.
20
+ #
21
+ # We can accept URIs and strings that begin with http://, https:// and ftp://.
22
+ # In these cases, the opened file object is extended by OpenURI::Meta.
23
+ #
24
+ def self.open: (String name, ?String mode, ?Integer perm, ?untyped options) -> (StringIO & OpenURI::Meta | Tempfile & OpenURI::Meta)
25
+ | [T] (String name, ?String mode, ?Integer perm, ?untyped options) { (StringIO | Tempfile) -> T } -> T
26
+ end
27
+
28
+ # <!-- rdoc-file=lib/open-uri.rb -->
29
+ # OpenURI is an easy-to-use wrapper for Net::HTTP, Net::HTTPS and Net::FTP.
30
+ #
31
+ # ## Example
32
+ #
33
+ # It is possible to open an http, https or ftp URL as though it were a file:
34
+ #
35
+ # URI.open("http://www.ruby-lang.org/") {|f|
36
+ # f.each_line {|line| p line}
37
+ # }
38
+ #
39
+ # The opened file has several getter methods for its meta-information, as
40
+ # follows, since it is extended by OpenURI::Meta.
41
+ #
42
+ # URI.open("http://www.ruby-lang.org/en") {|f|
43
+ # f.each_line {|line| p line}
44
+ # p f.base_uri # <URI::HTTP:0x40e6ef2 URL:http://www.ruby-lang.org/en/>
45
+ # p f.content_type # "text/html"
46
+ # p f.charset # "iso-8859-1"
47
+ # p f.content_encoding # []
48
+ # p f.last_modified # Thu Dec 05 02:45:02 UTC 2002
49
+ # }
50
+ #
51
+ # Additional header fields can be specified by an optional hash argument.
52
+ #
53
+ # URI.open("http://www.ruby-lang.org/en/",
54
+ # "User-Agent" => "Ruby/#{RUBY_VERSION}",
55
+ # "From" => "foo@bar.invalid",
56
+ # "Referer" => "http://www.ruby-lang.org/") {|f|
57
+ # # ...
58
+ # }
59
+ #
60
+ # The environment variables such as http_proxy, https_proxy and ftp_proxy are in
61
+ # effect by default. Here we disable proxy:
62
+ #
63
+ # URI.open("http://www.ruby-lang.org/en/", :proxy => nil) {|f|
64
+ # # ...
65
+ # }
66
+ #
67
+ # See OpenURI::OpenRead.open and URI.open for more on available options.
68
+ #
69
+ # URI objects can be opened in a similar way.
70
+ #
71
+ # uri = URI.parse("http://www.ruby-lang.org/en/")
72
+ # uri.open {|f|
73
+ # # ...
74
+ # }
75
+ #
76
+ # URI objects can be read directly. The returned string is also extended by
77
+ # OpenURI::Meta.
78
+ #
79
+ # str = uri.read
80
+ # p str.base_uri
81
+ #
82
+ # Author
83
+ # : Tanaka Akira <akr@m17n.org>
84
+ #
85
+ module OpenURI
86
+ # <!-- rdoc-file=lib/open-uri.rb -->
87
+ # Mixin for holding meta-information.
88
+ #
89
+ module Meta
90
+ # <!-- rdoc-file=lib/open-uri.rb -->
91
+ # returns an Array that consists of status code and message.
92
+ #
93
+ attr_accessor status: [ String, String ]
94
+
95
+ # <!-- rdoc-file=lib/open-uri.rb -->
96
+ # returns a URI that is the base of relative URIs in the data. It may differ
97
+ # from the URI supplied by a user due to redirection.
98
+ #
99
+ attr_accessor base_uri: URI::Generic
100
+
101
+ # <!-- rdoc-file=lib/open-uri.rb -->
102
+ # returns a Hash that represents header fields. The Hash keys are downcased for
103
+ # canonicalization. The Hash values are a field body. If there are multiple
104
+ # field with same field name, the field values are concatenated with a comma.
105
+ #
106
+ attr_reader meta: Hash[String, String]
107
+
108
+ # <!--
109
+ # rdoc-file=lib/open-uri.rb
110
+ # - last_modified()
111
+ # -->
112
+ # returns a Time that represents the Last-Modified field.
113
+ #
114
+ def last_modified: () -> Time?
115
+
116
+ # <!--
117
+ # rdoc-file=lib/open-uri.rb
118
+ # - content_type()
119
+ # -->
120
+ # returns "type/subtype" which is MIME Content-Type. It is downcased for
121
+ # canonicalization. Content-Type parameters are stripped.
122
+ #
123
+ def content_type: () -> String
124
+
125
+ def charet: () -> String?
126
+
127
+ # <!--
128
+ # rdoc-file=lib/open-uri.rb
129
+ # - content_encoding()
130
+ # -->
131
+ # Returns a list of encodings in Content-Encoding field as an array of strings.
132
+ #
133
+ # The encodings are downcased for canonicalization.
134
+ #
135
+ def content_encoding: () -> Array[String]
136
+ end
137
+
138
+ # <!-- rdoc-file=lib/open-uri.rb -->
139
+ # Mixin for HTTP and FTP URIs.
140
+ #
141
+ module OpenRead
142
+ # <!--
143
+ # rdoc-file=lib/open-uri.rb
144
+ # - open(*rest, &block)
145
+ # -->
146
+ # OpenURI::OpenRead#open provides `open' for URI::HTTP and URI::FTP.
147
+ #
148
+ # OpenURI::OpenRead#open takes optional 3 arguments as:
149
+ #
150
+ # OpenURI::OpenRead#open([mode [, perm]] [, options]) [{|io| ... }]
151
+ #
152
+ # OpenURI::OpenRead#open returns an IO-like object if block is not given.
153
+ # Otherwise it yields the IO object and return the value of the block. The IO
154
+ # object is extended with OpenURI::Meta.
155
+ #
156
+ # `mode` and `perm` are the same as Kernel#open.
157
+ #
158
+ # However, `mode` must be read mode because OpenURI::OpenRead#open doesn't
159
+ # support write mode (yet). Also `perm` is ignored because it is meaningful only
160
+ # for file creation.
161
+ #
162
+ # `options` must be a hash.
163
+ #
164
+ # Each option with a string key specifies an extra header field for HTTP. I.e.,
165
+ # it is ignored for FTP without HTTP proxy.
166
+ #
167
+ # The hash may include other options, where keys are symbols:
168
+ #
169
+ # :proxy
170
+ # : Synopsis:
171
+ # :proxy => "http://proxy.foo.com:8000/"
172
+ # :proxy => URI.parse("http://proxy.foo.com:8000/")
173
+ # :proxy => true
174
+ # :proxy => false
175
+ # :proxy => nil
176
+ #
177
+ # If :proxy option is specified, the value should be String, URI, boolean or
178
+ # nil.
179
+ #
180
+ # When String or URI is given, it is treated as proxy URI.
181
+ #
182
+ # When true is given or the option itself is not specified, environment
183
+ # variable `scheme_proxy' is examined. `scheme' is replaced by `http',
184
+ # `https' or `ftp'.
185
+ #
186
+ # When false or nil is given, the environment variables are ignored and
187
+ # connection will be made to a server directly.
188
+ #
189
+ # :proxy_http_basic_authentication
190
+ # : Synopsis:
191
+ # :proxy_http_basic_authentication =>
192
+ # ["http://proxy.foo.com:8000/", "proxy-user", "proxy-password"]
193
+ # :proxy_http_basic_authentication =>
194
+ # [URI.parse("http://proxy.foo.com:8000/"),
195
+ # "proxy-user", "proxy-password"]
196
+ #
197
+ # If :proxy option is specified, the value should be an Array with 3
198
+ # elements. It should contain a proxy URI, a proxy user name and a proxy
199
+ # password. The proxy URI should be a String, an URI or nil. The proxy
200
+ # user name and password should be a String.
201
+ #
202
+ # If nil is given for the proxy URI, this option is just ignored.
203
+ #
204
+ # If :proxy and :proxy_http_basic_authentication is specified, ArgumentError
205
+ # is raised.
206
+ #
207
+ # :http_basic_authentication
208
+ # : Synopsis:
209
+ # :http_basic_authentication=>[user, password]
210
+ #
211
+ # If :http_basic_authentication is specified, the value should be an array
212
+ # which contains 2 strings: username and password. It is used for HTTP Basic
213
+ # authentication defined by RFC 2617.
214
+ #
215
+ # :content_length_proc
216
+ # : Synopsis:
217
+ # :content_length_proc => lambda {|content_length| ... }
218
+ #
219
+ # If :content_length_proc option is specified, the option value procedure is
220
+ # called before actual transfer is started. It takes one argument, which is
221
+ # expected content length in bytes.
222
+ #
223
+ # If two or more transfers are performed by HTTP redirection, the procedure
224
+ # is called only once for the last transfer.
225
+ #
226
+ # When expected content length is unknown, the procedure is called with nil.
227
+ # This happens when the HTTP response has no Content-Length header.
228
+ #
229
+ # :progress_proc
230
+ # : Synopsis:
231
+ # :progress_proc => lambda {|size| ...}
232
+ #
233
+ # If :progress_proc option is specified, the proc is called with one
234
+ # argument each time when `open' gets content fragment from network. The
235
+ # argument `size` is the accumulated transferred size in bytes.
236
+ #
237
+ # If two or more transfer is done by HTTP redirection, the procedure is
238
+ # called only one for a last transfer.
239
+ #
240
+ # :progress_proc and :content_length_proc are intended to be used for
241
+ # progress bar. For example, it can be implemented as follows using
242
+ # Ruby/ProgressBar.
243
+ #
244
+ # pbar = nil
245
+ # open("http://...",
246
+ # :content_length_proc => lambda {|t|
247
+ # if t && 0 < t
248
+ # pbar = ProgressBar.new("...", t)
249
+ # pbar.file_transfer_mode
250
+ # end
251
+ # },
252
+ # :progress_proc => lambda {|s|
253
+ # pbar.set s if pbar
254
+ # }) {|f| ... }
255
+ #
256
+ # :read_timeout
257
+ # : Synopsis:
258
+ # :read_timeout=>nil (no timeout)
259
+ # :read_timeout=>10 (10 second)
260
+ #
261
+ # :read_timeout option specifies a timeout of read for http connections.
262
+ #
263
+ # :open_timeout
264
+ # : Synopsis:
265
+ # :open_timeout=>nil (no timeout)
266
+ # :open_timeout=>10 (10 second)
267
+ #
268
+ # :open_timeout option specifies a timeout of open for http connections.
269
+ #
270
+ # :ssl_ca_cert
271
+ # : Synopsis:
272
+ # :ssl_ca_cert=>filename or an Array of filenames
273
+ #
274
+ # :ssl_ca_cert is used to specify CA certificate for SSL. If it is given,
275
+ # default certificates are not used.
276
+ #
277
+ # :ssl_verify_mode
278
+ # : Synopsis:
279
+ # :ssl_verify_mode=>mode
280
+ #
281
+ # :ssl_verify_mode is used to specify openssl verify mode.
282
+ #
283
+ # :ssl_min_version
284
+ # : Synopsis:
285
+ # :ssl_min_version=>:TLS1_2
286
+ #
287
+ # :ssl_min_version option specifies the minimum allowed SSL/TLS protocol
288
+ # version. See also OpenSSL::SSL::SSLContext#min_version=.
289
+ #
290
+ # :ssl_max_version
291
+ # : Synopsis:
292
+ # :ssl_max_version=>:TLS1_2
293
+ #
294
+ # :ssl_max_version option specifies the maximum allowed SSL/TLS protocol
295
+ # version. See also OpenSSL::SSL::SSLContext#max_version=.
296
+ #
297
+ # :ftp_active_mode
298
+ # : Synopsis:
299
+ # :ftp_active_mode=>bool
300
+ #
301
+ # `:ftp_active_mode => true` is used to make ftp active mode. Ruby 1.9 uses
302
+ # passive mode by default. Note that the active mode is default in Ruby 1.8
303
+ # or prior.
304
+ #
305
+ # :redirect
306
+ # : Synopsis:
307
+ # :redirect=>bool
308
+ #
309
+ # `:redirect` is true by default. `:redirect => false` is used to disable
310
+ # all HTTP redirects.
311
+ #
312
+ # OpenURI::HTTPRedirect exception raised on redirection. Using `true` also
313
+ # means that redirections between http and ftp are permitted.
314
+ #
315
+ def open: (*untyped) -> IO
316
+ | [T] (*untyped) { (IO) -> T } -> T
317
+
318
+ # <!--
319
+ # rdoc-file=lib/open-uri.rb
320
+ # - read(options={})
321
+ # -->
322
+ # OpenURI::OpenRead#read([ options ]) reads a content referenced by self and
323
+ # returns the content as string. The string is extended with OpenURI::Meta. The
324
+ # argument `options` is same as OpenURI::OpenRead#open.
325
+ #
326
+ def read: (untyped options) -> String
327
+ end
328
+ end
329
+
330
+ %a{annotate:rdoc:skip}
331
+ module URI
332
+ %a{annotate:rdoc:skip}
333
+ class HTTP
334
+ include OpenURI::OpenRead
335
+ end
336
+
337
+ %a{annotate:rdoc:skip}
338
+ class FTP
339
+ include OpenURI::OpenRead
340
+ end
341
+ end
@@ -8418,7 +8418,7 @@ module OpenSSL
8418
8418
  # -->
8419
8419
  # See BasicSocket#shutdown for details.
8420
8420
  #
8421
- def shutdown: (Symbol | String | Integer how) -> void
8421
+ def shutdown: (interned | Integer how) -> void
8422
8422
 
8423
8423
  # <!-- rdoc-file=ext/openssl/lib/openssl/ssl.rb -->
8424
8424
  # When true then #accept works exactly the same as TCPServer#accept
@@ -0,0 +1,2 @@
1
+ dependencies:
2
+ - name: prettyprint