rbs 2.0.0 → 2.1.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 (179) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +5 -0
  3. data/CHANGELOG.md +23 -0
  4. data/README.md +6 -1
  5. data/core/array.rbs +2866 -1086
  6. data/core/basic_object.rbs +150 -30
  7. data/core/binding.rbs +33 -0
  8. data/core/builtin.rbs +4 -4
  9. data/core/class.rbs +43 -5
  10. data/core/comparable.rbs +57 -0
  11. data/core/complex.rbs +170 -4
  12. data/core/constants.rbs +51 -0
  13. data/core/deprecated.rbs +7 -0
  14. data/core/dir.rbs +305 -20
  15. data/core/encoding.rbs +472 -77
  16. data/core/enumerable.rbs +2173 -234
  17. data/core/enumerator.rbs +448 -182
  18. data/core/env.rbs +448 -1
  19. data/core/errno.rbs +1 -10
  20. data/core/errors.rbs +152 -2
  21. data/core/exception.rbs +201 -127
  22. data/core/false_class.rbs +27 -0
  23. data/core/fiber.rbs +118 -37
  24. data/core/fiber_error.rbs +8 -9
  25. data/core/file.rbs +1059 -139
  26. data/core/file_test.rbs +287 -32
  27. data/core/float.rbs +776 -300
  28. data/core/gc.rbs +185 -34
  29. data/core/global_variables.rbs +5 -1
  30. data/core/hash.rbs +1582 -649
  31. data/core/integer.rbs +974 -204
  32. data/core/io/buffer.rbs +710 -0
  33. data/core/io/wait.rbs +29 -8
  34. data/core/io.rbs +2438 -417
  35. data/core/kernel.rbs +2315 -316
  36. data/core/marshal.rbs +37 -2
  37. data/core/match_data.rbs +123 -6
  38. data/core/math.rbs +126 -6
  39. data/core/method.rbs +226 -102
  40. data/core/module.rbs +421 -45
  41. data/core/nil_class.rbs +64 -0
  42. data/core/numeric.rbs +620 -142
  43. data/core/object.rbs +453 -81
  44. data/core/object_space.rbs +92 -2
  45. data/core/proc.rbs +482 -285
  46. data/core/process.rbs +443 -34
  47. data/core/ractor.rbs +232 -9
  48. data/core/random.rbs +151 -52
  49. data/core/range.rbs +885 -160
  50. data/core/rational.rbs +122 -6
  51. data/core/rb_config.rbs +14 -4
  52. data/core/refinement.rbs +44 -0
  53. data/core/regexp.rbs +156 -14
  54. data/core/ruby_vm.rbs +42 -3
  55. data/core/signal.rbs +78 -39
  56. data/core/string.rbs +2123 -567
  57. data/core/string_io.rbs +204 -0
  58. data/core/struct.rbs +283 -28
  59. data/core/symbol.rbs +304 -30
  60. data/core/thread.rbs +1288 -688
  61. data/core/thread_group.rbs +66 -10
  62. data/core/time.rbs +643 -217
  63. data/core/trace_point.rbs +100 -12
  64. data/core/true_class.rbs +24 -0
  65. data/core/unbound_method.rbs +73 -7
  66. data/core/warning.rbs +37 -12
  67. data/docs/CONTRIBUTING.md +40 -34
  68. data/docs/stdlib.md +3 -102
  69. data/lib/rbs/annotate/annotations.rb +197 -0
  70. data/lib/rbs/annotate/formatter.rb +80 -0
  71. data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
  72. data/lib/rbs/annotate/rdoc_source.rb +120 -0
  73. data/lib/rbs/annotate.rb +6 -0
  74. data/lib/rbs/cli.rb +45 -1
  75. data/lib/rbs/definition_builder.rb +5 -1
  76. data/lib/rbs/location_aux.rb +12 -0
  77. data/lib/rbs/prototype/rb.rb +12 -0
  78. data/lib/rbs/version.rb +1 -1
  79. data/sig/annotate/annotations.rbs +102 -0
  80. data/sig/annotate/formatter.rbs +24 -0
  81. data/sig/annotate/rdoc_annotater.rbs +82 -0
  82. data/sig/annotate/rdoc_source.rbs +30 -0
  83. data/sig/cli.rbs +2 -0
  84. data/sig/collection/{collections.rbs → sources.rbs} +0 -0
  85. data/sig/location.rbs +6 -0
  86. data/sig/method_types.rbs +5 -1
  87. data/sig/polyfill.rbs +78 -0
  88. data/stdlib/abbrev/0/abbrev.rbs +6 -0
  89. data/stdlib/abbrev/0/array.rbs +26 -0
  90. data/stdlib/base64/0/base64.rbs +31 -0
  91. data/stdlib/benchmark/0/benchmark.rbs +74 -3
  92. data/stdlib/bigdecimal/0/big_decimal.rbs +614 -165
  93. data/stdlib/bigdecimal-math/0/big_math.rbs +41 -64
  94. data/stdlib/cgi/0/core.rbs +59 -0
  95. data/stdlib/coverage/0/coverage.rbs +164 -2
  96. data/stdlib/csv/0/csv.rbs +2862 -398
  97. data/stdlib/date/0/date.rbs +483 -25
  98. data/stdlib/date/0/date_time.rbs +187 -12
  99. data/stdlib/dbm/0/dbm.rbs +152 -17
  100. data/stdlib/digest/0/digest.rbs +146 -0
  101. data/stdlib/erb/0/erb.rbs +65 -245
  102. data/stdlib/fiber/0/fiber.rbs +73 -91
  103. data/stdlib/fileutils/0/fileutils.rbs +301 -1
  104. data/stdlib/find/0/find.rbs +9 -0
  105. data/stdlib/forwardable/0/forwardable.rbs +65 -1
  106. data/stdlib/io-console/0/io-console.rbs +227 -15
  107. data/stdlib/ipaddr/0/ipaddr.rbs +161 -0
  108. data/stdlib/json/0/json.rbs +1146 -144
  109. data/stdlib/logger/0/formatter.rbs +24 -0
  110. data/stdlib/logger/0/log_device.rbs +64 -0
  111. data/stdlib/logger/0/logger.rbs +165 -13
  112. data/stdlib/logger/0/period.rbs +10 -0
  113. data/stdlib/logger/0/severity.rbs +26 -0
  114. data/stdlib/monitor/0/monitor.rbs +163 -0
  115. data/stdlib/mutex_m/0/mutex_m.rbs +35 -6
  116. data/stdlib/net-http/0/net-http.rbs +1492 -683
  117. data/stdlib/nkf/0/nkf.rbs +372 -0
  118. data/stdlib/objspace/0/objspace.rbs +149 -90
  119. data/stdlib/openssl/0/openssl.rbs +8108 -71
  120. data/stdlib/optparse/0/optparse.rbs +487 -19
  121. data/stdlib/pathname/0/pathname.rbs +425 -124
  122. data/stdlib/prettyprint/0/prettyprint.rbs +120 -99
  123. data/stdlib/prime/0/integer-extension.rbs +20 -2
  124. data/stdlib/prime/0/prime.rbs +88 -21
  125. data/stdlib/pstore/0/pstore.rbs +102 -0
  126. data/stdlib/pty/0/pty.rbs +64 -14
  127. data/stdlib/resolv/0/resolv.rbs +420 -31
  128. data/stdlib/rubygems/0/basic_specification.rbs +4 -1
  129. data/stdlib/rubygems/0/config_file.rbs +33 -1
  130. data/stdlib/rubygems/0/dependency_installer.rbs +4 -3
  131. data/stdlib/rubygems/0/installer.rbs +13 -1
  132. data/stdlib/rubygems/0/path_support.rbs +4 -1
  133. data/stdlib/rubygems/0/platform.rbs +5 -1
  134. data/stdlib/rubygems/0/request_set.rbs +44 -2
  135. data/stdlib/rubygems/0/requirement.rbs +65 -2
  136. data/stdlib/rubygems/0/rubygems.rbs +407 -0
  137. data/stdlib/rubygems/0/source_list.rbs +13 -0
  138. data/stdlib/rubygems/0/specification.rbs +21 -1
  139. data/stdlib/rubygems/0/stream_ui.rbs +3 -1
  140. data/stdlib/rubygems/0/uninstaller.rbs +8 -1
  141. data/stdlib/rubygems/0/version.rbs +60 -157
  142. data/stdlib/securerandom/0/securerandom.rbs +44 -0
  143. data/stdlib/set/0/set.rbs +420 -106
  144. data/stdlib/shellwords/0/shellwords.rbs +55 -77
  145. data/stdlib/singleton/0/singleton.rbs +20 -0
  146. data/stdlib/socket/0/addrinfo.rbs +210 -9
  147. data/stdlib/socket/0/basic_socket.rbs +103 -11
  148. data/stdlib/socket/0/ip_socket.rbs +31 -9
  149. data/stdlib/socket/0/socket.rbs +586 -38
  150. data/stdlib/socket/0/tcp_server.rbs +22 -2
  151. data/stdlib/socket/0/tcp_socket.rbs +12 -1
  152. data/stdlib/socket/0/udp_socket.rbs +25 -2
  153. data/stdlib/socket/0/unix_server.rbs +22 -2
  154. data/stdlib/socket/0/unix_socket.rbs +45 -5
  155. data/stdlib/strscan/0/string_scanner.rbs +210 -9
  156. data/stdlib/tempfile/0/tempfile.rbs +58 -10
  157. data/stdlib/time/0/time.rbs +208 -116
  158. data/stdlib/timeout/0/timeout.rbs +10 -0
  159. data/stdlib/tmpdir/0/tmpdir.rbs +13 -4
  160. data/stdlib/tsort/0/cyclic.rbs +1 -0
  161. data/stdlib/tsort/0/interfaces.rbs +1 -0
  162. data/stdlib/tsort/0/tsort.rbs +42 -0
  163. data/stdlib/uri/0/common.rbs +57 -8
  164. data/stdlib/uri/0/file.rbs +55 -109
  165. data/stdlib/uri/0/ftp.rbs +6 -3
  166. data/stdlib/uri/0/generic.rbs +556 -327
  167. data/stdlib/uri/0/http.rbs +26 -115
  168. data/stdlib/uri/0/https.rbs +8 -102
  169. data/stdlib/uri/0/ldap.rbs +143 -137
  170. data/stdlib/uri/0/ldaps.rbs +8 -102
  171. data/stdlib/uri/0/mailto.rbs +3 -0
  172. data/stdlib/uri/0/rfc2396_parser.rbs +66 -26
  173. data/stdlib/uri/0/ws.rbs +6 -3
  174. data/stdlib/uri/0/wss.rbs +5 -3
  175. data/stdlib/yaml/0/dbm.rbs +151 -87
  176. data/stdlib/yaml/0/store.rbs +6 -0
  177. data/stdlib/zlib/0/zlib.rbs +90 -31
  178. metadata +17 -5
  179. data/lib/rbs/location.rb +0 -221
@@ -1,3 +1,6 @@
1
+ # <!-- rdoc-file=lib/rubygems/basic_specification.rb -->
2
+ # BasicSpecification is an abstract class which implements some common code used
3
+ # by both Specification and StubSpecification.
4
+ #
1
5
  class Gem::BasicSpecification
2
- # TODO: Add sinatures...
3
6
  end
@@ -1,3 +1,35 @@
1
+ # <!-- rdoc-file=lib/rubygems/config_file.rb -->
2
+ # Gem::ConfigFile RubyGems options and gem command options from gemrc.
3
+ #
4
+ # gemrc is a YAML file that uses strings to match gem command arguments and
5
+ # symbols to match RubyGems options.
6
+ #
7
+ # Gem command arguments use a String key that matches the command name and allow
8
+ # you to specify default arguments:
9
+ #
10
+ # install: --no-rdoc --no-ri
11
+ # update: --no-rdoc --no-ri
12
+ #
13
+ # You can use `gem:` to set default arguments for all commands.
14
+ #
15
+ # RubyGems options use symbol keys. Valid options are:
16
+ #
17
+ # `:backtrace`
18
+ # : See #backtrace
19
+ # `:sources`
20
+ # : Sets Gem::sources
21
+ # `:verbose`
22
+ # : See #verbose
23
+ # `:concurrent_downloads`
24
+ # : See #concurrent_downloads
25
+ #
26
+ #
27
+ # gemrc files may exist in various locations and are read and merged in the
28
+ # following order:
29
+ #
30
+ # * system wide (/etc/gemrc)
31
+ # * per user (~/.gemrc)
32
+ # * per environment (gemrc files listed in the GEMRC environment variable)
33
+ #
1
34
  class Gem::ConfigFile
2
- # TODO: Add sinatures...
3
35
  end
@@ -1,5 +1,6 @@
1
+ # <!-- rdoc-file=lib/rubygems/dependency_installer.rb -->
2
+ # Installs a gem along with all its dependencies from local and remote gems.
3
+ #
1
4
  class Gem::DependencyInstaller
2
- type options = Hash[Symbol, untyped] # TODO: Add options...
3
-
4
- # TODO: Add sinatures...
5
+ type options = Hash[Symbol, untyped]
5
6
  end
@@ -1,3 +1,15 @@
1
+ # <!-- rdoc-file=lib/rubygems/installer.rb -->
2
+ # The installer installs the files contained in the .gem into the Gem.home.
3
+ #
4
+ # Gem::Installer does the work of putting files in all the right places on the
5
+ # filesystem including unpacking the gem into its gem dir, installing the
6
+ # gemspec in the specifications dir, storing the cached gem in the cache dir,
7
+ # and installing either wrappers or symlinks for executables.
8
+ #
9
+ # The installer invokes pre and post install hooks. Hooks can be added either
10
+ # through a rubygems_plugin.rb file in an installed gem or via a
11
+ # rubygems/defaults/#{RUBY_ENGINE}.rb or rubygems/defaults/operating_system.rb
12
+ # file. See Gem.pre_install and Gem.post_install for details.
13
+ #
1
14
  class Gem::Installer
2
- # TODO: Add sinatures...
3
15
  end
@@ -1,3 +1,6 @@
1
+ # <!-- rdoc-file=lib/rubygems/path_support.rb -->
2
+ # Gem::PathSupport facilitates the GEM_HOME and GEM_PATH environment settings to
3
+ # the rest of RubyGems.
4
+ #
1
5
  class Gem::PathSupport
2
- # TODO: Add sinatures...
3
6
  end
@@ -1,3 +1,7 @@
1
+ # <!-- rdoc-file=lib/rubygems/platform.rb -->
2
+ # Available list of platforms for targeting Gem installations.
3
+ #
4
+ # See `gem help platform` for information on platform matching.
5
+ #
1
6
  class Gem::Platform
2
- # TODO: Add sinatures...
3
7
  end
@@ -1,7 +1,49 @@
1
+ # <!-- rdoc-file=lib/rubygems/request_set.rb -->
2
+ # A RequestSet groups a request to activate a set of dependencies.
3
+ #
4
+ # nokogiri = Gem::Dependency.new 'nokogiri', '~> 1.6'
5
+ # pg = Gem::Dependency.new 'pg', '~> 0.14'
6
+ #
7
+ # set = Gem::RequestSet.new nokogiri, pg
8
+ #
9
+ # requests = set.resolve
10
+ #
11
+ # p requests.map { |r| r.full_name }
12
+ # #=> ["nokogiri-1.6.0", "mini_portile-0.5.1", "pg-0.17.0"]
13
+ #
1
14
  class Gem::RequestSet
2
- # TODO: Add sinatures...
3
15
  end
4
16
 
17
+ # <!-- rdoc-file=lib/rubygems/request_set/gem_dependency_api.rb -->
18
+ # A semi-compatible DSL for the Bundler Gemfile and Isolate gem dependencies
19
+ # files.
20
+ #
21
+ # To work with both the Bundler Gemfile and Isolate formats this implementation
22
+ # takes some liberties to allow compatibility with each, most notably in
23
+ # #source.
24
+ #
25
+ # A basic gem dependencies file will look like the following:
26
+ #
27
+ # source 'https://rubygems.org'
28
+ #
29
+ # gem 'rails', '3.2.14a
30
+ # gem 'devise', '~> 2.1', '>= 2.1.3'
31
+ # gem 'cancan'
32
+ # gem 'airbrake'
33
+ # gem 'pg'
34
+ #
35
+ # RubyGems recommends saving this as gem.deps.rb over Gemfile or Isolate.
36
+ #
37
+ # To install the gems in this Gemfile use `gem install -g` to install it and
38
+ # create a lockfile. The lockfile will ensure that when you make changes to
39
+ # your gem dependencies file a minimum amount of change is made to the
40
+ # dependencies of your gems.
41
+ #
42
+ # RubyGems can activate all the gems in your dependencies file at startup using
43
+ # the RUBYGEMS_GEMDEPS environment variable or through Gem.use_gemdeps. See
44
+ # Gem.use_gemdeps for details and warnings.
45
+ #
46
+ # See `gem help install` and `gem help gem_dependencies` for further details.
47
+ #
5
48
  class Gem::RequestSet::GemDependencyAPI
6
- # TODO: Add sinatures...
7
49
  end
@@ -1,4 +1,6 @@
1
+ %a{annotate:rdoc:skip}
1
2
  module Gem
3
+ # <!-- rdoc-file=lib/rubygems/requirement.rb -->
2
4
  # A Requirement is a set of one or more version restrictions. It supports a few
3
5
  # (`=, !=, >, <, >=, <=, ~>`) different restriction operators.
4
6
  #
@@ -8,34 +10,56 @@ module Gem
8
10
  class Requirement
9
11
  type operator = "=" | "!=" | ">" | "<" | ">=" | "<=" | "~>"
10
12
 
13
+ # <!-- rdoc-file=lib/rubygems/requirement.rb -->
11
14
  # Raised when a bad requirement is encountered
12
15
  #
13
16
  class BadRequirementError < ArgumentError
14
17
  end
15
18
 
19
+ # <!-- rdoc-file=lib/rubygems/requirement.rb -->
16
20
  # The default requirement matches any version
17
21
  #
18
22
  DefaultPrereleaseRequirement: [ operator, Gem::Version ]
19
23
 
24
+ # <!-- rdoc-file=lib/rubygems/requirement.rb -->
20
25
  # The default requirement matches any non-prerelease version
21
26
  #
22
27
  DefaultRequirement: [ operator, Gem::Version ]
23
28
 
29
+ # <!-- rdoc-file=lib/rubygems/requirement.rb -->
24
30
  # A regular expression that matches a requirement
25
31
  #
26
32
  PATTERN: Regexp
27
33
 
34
+ # <!--
35
+ # rdoc-file=lib/rubygems/requirement.rb
36
+ # - create(*inputs)
37
+ # -->
28
38
  # Factory method to create a Gem::Requirement object. Input may be a Version, a
29
39
  # String, or nil. Intended to simplify client code.
30
40
  #
31
41
  # If the input is "weird", the default version requirement is returned.
32
42
  #
33
- def self.create: (*(String | Gem::Version | Gem::Requirement | nil) inputs) -> instance
43
+ def self.create: (*String | Gem::Version | Gem::Requirement | nil inputs) -> instance
34
44
 
45
+ # <!--
46
+ # rdoc-file=lib/rubygems/requirement.rb
47
+ # - default()
48
+ # -->
49
+ #
35
50
  def self.default: () -> instance
36
51
 
52
+ # <!--
53
+ # rdoc-file=lib/rubygems/requirement.rb
54
+ # - default_prerelease()
55
+ # -->
56
+ #
37
57
  def self.default_prerelease: () -> instance
38
58
 
59
+ # <!--
60
+ # rdoc-file=lib/rubygems/requirement.rb
61
+ # - parse(obj)
62
+ # -->
39
63
  # Parse `obj`, returning an `[op, version]` pair. `obj` can be a String or a
40
64
  # Gem::Version.
41
65
  #
@@ -48,36 +72,75 @@ module Gem
48
72
  #
49
73
  def self.parse: (String | Gem::Version obj) -> [ operator, Gem::Version ]
50
74
 
75
+ # <!--
76
+ # rdoc-file=lib/rubygems/requirement.rb
77
+ # - new(*requirements)
78
+ # -->
51
79
  # Constructs a requirement from `requirements`. Requirements can be Strings,
52
80
  # Gem::Versions, or Arrays of those. `nil` and duplicate requirements are
53
81
  # ignored. An empty set of `requirements` is the same as `">= 0"`.
54
82
  #
55
- def initialize: (*(String | Gem::Version) requirements) -> void
83
+ def initialize: (*String | Gem::Version requirements) -> void
56
84
 
85
+ # <!--
86
+ # rdoc-file=lib/rubygems/requirement.rb
87
+ # - concat(new)
88
+ # -->
57
89
  # Concatenates the `new` requirements onto this requirement.
58
90
  #
59
91
  def concat: (Array[String | Gem::Version] new) -> void
60
92
 
93
+ # <!--
94
+ # rdoc-file=lib/rubygems/requirement.rb
95
+ # - exact?()
96
+ # -->
61
97
  # true if the requirement is for only an exact version
62
98
  #
63
99
  def exact?: () -> bool
64
100
 
101
+ # <!--
102
+ # rdoc-file=lib/rubygems/requirement.rb
103
+ # - none?()
104
+ # -->
65
105
  # true if this gem has no requirements.
66
106
  #
67
107
  def none?: () -> bool
68
108
 
109
+ # <!--
110
+ # rdoc-file=lib/rubygems/requirement.rb
111
+ # - prerelease?()
112
+ # -->
69
113
  # A requirement is a prerelease if any of the versions inside of it are
70
114
  # prereleases
71
115
  #
72
116
  def prerelease?: () -> bool
73
117
 
118
+ # <!--
119
+ # rdoc-file=lib/rubygems/requirement.rb
120
+ # - satisfied_by?(version)
121
+ # -->
74
122
  # True if `version` satisfies this Requirement.
75
123
  #
76
124
  def satisfied_by?: (Gem::Version version) -> bool
77
125
 
126
+ # <!--
127
+ # rdoc-file=lib/rubygems/requirement.rb
128
+ # - ===(version)
129
+ # -->
130
+ #
78
131
  alias === satisfied_by?
132
+
133
+ # <!--
134
+ # rdoc-file=lib/rubygems/requirement.rb
135
+ # - =~(version)
136
+ # -->
137
+ #
79
138
  alias =~ satisfied_by?
80
139
 
140
+ # <!--
141
+ # rdoc-file=lib/rubygems/requirement.rb
142
+ # - specific?()
143
+ # -->
81
144
  # True if the requirement will not always match the latest version.
82
145
  #
83
146
  def specific?: () -> bool