rbs 0.14.0 → 0.18.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +8 -4
  3. data/CHANGELOG.md +35 -0
  4. data/Gemfile +1 -0
  5. data/README.md +1 -1
  6. data/Rakefile +19 -1
  7. data/Steepfile +0 -1
  8. data/bin/test_runner.rb +15 -1
  9. data/{stdlib/builtin → core}/array.rbs +124 -120
  10. data/{stdlib/builtin → core}/basic_object.rbs +0 -0
  11. data/{stdlib/builtin → core}/binding.rbs +0 -0
  12. data/core/builtin.rbs +70 -0
  13. data/{stdlib/builtin → core}/class.rbs +0 -0
  14. data/{stdlib/builtin → core}/comparable.rbs +0 -0
  15. data/{stdlib/builtin → core}/complex.rbs +0 -0
  16. data/{stdlib/builtin → core}/constants.rbs +0 -0
  17. data/{stdlib/builtin → core}/data.rbs +0 -0
  18. data/{stdlib/builtin → core}/deprecated.rbs +0 -0
  19. data/{stdlib/builtin → core}/dir.rbs +1 -1
  20. data/{stdlib/builtin → core}/encoding.rbs +0 -0
  21. data/{stdlib/builtin → core}/enumerable.rbs +67 -60
  22. data/{stdlib/builtin → core}/enumerator.rbs +5 -5
  23. data/{stdlib/builtin → core}/errno.rbs +0 -0
  24. data/{stdlib/builtin → core}/errors.rbs +1 -1
  25. data/{stdlib/builtin → core}/exception.rbs +0 -0
  26. data/{stdlib/builtin → core}/false_class.rbs +0 -0
  27. data/{stdlib/builtin → core}/fiber.rbs +0 -0
  28. data/{stdlib/builtin → core}/fiber_error.rbs +0 -0
  29. data/{stdlib/builtin → core}/file.rbs +0 -0
  30. data/{stdlib/builtin → core}/file_test.rbs +0 -0
  31. data/{stdlib/builtin → core}/float.rbs +0 -0
  32. data/{stdlib/builtin → core}/gc.rbs +2 -2
  33. data/{stdlib/builtin → core}/hash.rbs +15 -15
  34. data/{stdlib/builtin → core}/integer.rbs +0 -0
  35. data/{stdlib/builtin → core}/io.rbs +6 -6
  36. data/{stdlib/builtin → core}/kernel.rbs +1 -85
  37. data/{stdlib/builtin → core}/marshal.rbs +0 -0
  38. data/{stdlib/builtin → core}/match_data.rbs +0 -0
  39. data/{stdlib/builtin → core}/math.rbs +0 -0
  40. data/{stdlib/builtin → core}/method.rbs +0 -0
  41. data/{stdlib/builtin → core}/module.rbs +13 -13
  42. data/{stdlib/builtin → core}/nil_class.rbs +0 -0
  43. data/{stdlib/builtin → core}/numeric.rbs +0 -0
  44. data/{stdlib/builtin → core}/object.rbs +1 -1
  45. data/core/object_space.rbs +98 -0
  46. data/{stdlib/builtin → core}/proc.rbs +0 -0
  47. data/{stdlib/builtin → core}/process.rbs +0 -0
  48. data/{stdlib/builtin → core}/random.rbs +1 -1
  49. data/{stdlib/builtin → core}/range.rbs +3 -3
  50. data/{stdlib/builtin → core}/rational.rbs +0 -0
  51. data/{stdlib/builtin → core}/rb_config.rbs +0 -0
  52. data/{stdlib/builtin → core}/regexp.rbs +0 -0
  53. data/{stdlib/builtin → core}/ruby_vm.rbs +0 -0
  54. data/{stdlib/builtin → core}/signal.rbs +0 -0
  55. data/{stdlib/builtin → core}/string.rbs +6 -6
  56. data/{stdlib/builtin → core}/string_io.rbs +7 -7
  57. data/{stdlib/builtin → core}/struct.rbs +2 -2
  58. data/{stdlib/builtin → core}/symbol.rbs +1 -1
  59. data/{stdlib/builtin → core}/thread.rbs +4 -4
  60. data/{stdlib/builtin → core}/thread_group.rbs +0 -0
  61. data/{stdlib/builtin → core}/time.rbs +0 -0
  62. data/{stdlib/builtin → core}/trace_point.rbs +0 -0
  63. data/{stdlib/builtin → core}/true_class.rbs +1 -1
  64. data/{stdlib/builtin → core}/unbound_method.rbs +0 -0
  65. data/{stdlib/builtin → core}/warning.rbs +0 -0
  66. data/docs/repo.md +125 -0
  67. data/docs/syntax.md +50 -6
  68. data/lib/rbs.rb +1 -0
  69. data/lib/rbs/cli.rb +105 -103
  70. data/lib/rbs/definition.rb +9 -4
  71. data/lib/rbs/definition_builder.rb +50 -17
  72. data/lib/rbs/environment_loader.rb +79 -105
  73. data/lib/rbs/environment_walker.rb +70 -35
  74. data/lib/rbs/parser.rb +404 -397
  75. data/lib/rbs/parser.y +18 -9
  76. data/lib/rbs/prototype/rb.rb +186 -25
  77. data/lib/rbs/prototype/runtime.rb +18 -7
  78. data/lib/rbs/repository.rb +121 -0
  79. data/lib/rbs/test/hook.rb +27 -15
  80. data/lib/rbs/test/setup.rb +5 -3
  81. data/lib/rbs/test/tester.rb +4 -1
  82. data/lib/rbs/test/type_check.rb +16 -5
  83. data/lib/rbs/type_name.rb +2 -1
  84. data/lib/rbs/vendorer.rb +38 -16
  85. data/lib/rbs/version.rb +1 -1
  86. data/sig/cli.rbs +58 -0
  87. data/sig/constant_table.rbs +1 -1
  88. data/sig/declarations.rbs +1 -1
  89. data/sig/definition.rbs +9 -4
  90. data/sig/definition_builder.rbs +4 -1
  91. data/sig/environment_loader.rbs +92 -46
  92. data/sig/members.rbs +2 -2
  93. data/sig/method_types.rbs +1 -1
  94. data/sig/namespace.rbs +1 -1
  95. data/sig/polyfill.rbs +42 -0
  96. data/sig/rbs.rbs +8 -0
  97. data/sig/repository.rbs +79 -0
  98. data/sig/vendorer.rbs +44 -0
  99. data/stdlib/abbrev/{abbrev.rbs → 0/abbrev.rbs} +0 -0
  100. data/stdlib/base64/{base64.rbs → 0/base64.rbs} +1 -1
  101. data/stdlib/benchmark/{benchmark.rbs → 0/benchmark.rbs} +0 -0
  102. data/stdlib/{bigdecimal/math → bigdecimal-math/0}/big_math.rbs +0 -0
  103. data/stdlib/bigdecimal/{big_decimal.rbs → 0/big_decimal.rbs} +0 -0
  104. data/stdlib/coverage/{coverage.rbs → 0/coverage.rbs} +2 -2
  105. data/stdlib/csv/{csv.rbs → 0/csv.rbs} +4 -4
  106. data/stdlib/date/{date.rbs → 0/date.rbs} +2 -2
  107. data/stdlib/date/{date_time.rbs → 0/date_time.rbs} +1 -1
  108. data/stdlib/dbm/0/dbm.rbs +277 -0
  109. data/stdlib/erb/{erb.rbs → 0/erb.rbs} +0 -0
  110. data/stdlib/fiber/{fiber.rbs → 0/fiber.rbs} +0 -0
  111. data/stdlib/find/{find.rbs → 0/find.rbs} +2 -2
  112. data/stdlib/forwardable/{forwardable.rbs → 0/forwardable.rbs} +0 -0
  113. data/stdlib/ipaddr/{ipaddr.rbs → 0/ipaddr.rbs} +0 -0
  114. data/stdlib/json/{json.rbs → 0/json.rbs} +0 -0
  115. data/stdlib/logger/{formatter.rbs → 0/formatter.rbs} +0 -0
  116. data/stdlib/logger/{log_device.rbs → 0/log_device.rbs} +1 -1
  117. data/stdlib/logger/{logger.rbs → 0/logger.rbs} +1 -1
  118. data/stdlib/logger/{period.rbs → 0/period.rbs} +0 -0
  119. data/stdlib/logger/{severity.rbs → 0/severity.rbs} +0 -0
  120. data/stdlib/mutex_m/{mutex_m.rbs → 0/mutex_m.rbs} +0 -0
  121. data/stdlib/pathname/{pathname.rbs → 0/pathname.rbs} +39 -39
  122. data/stdlib/prime/{integer-extension.rbs → 0/integer-extension.rbs} +0 -0
  123. data/stdlib/prime/{prime.rbs → 0/prime.rbs} +1 -1
  124. data/stdlib/pstore/0/pstore.rbs +287 -0
  125. data/stdlib/pty/{pty.rbs → 0/pty.rbs} +1 -1
  126. data/stdlib/securerandom/{securerandom.rbs → 0/securerandom.rbs} +0 -0
  127. data/stdlib/set/{set.rbs → 0/set.rbs} +10 -10
  128. data/stdlib/singleton/0/singleton.rbs +111 -0
  129. data/stdlib/tmpdir/{tmpdir.rbs → 0/tmpdir.rbs} +0 -0
  130. data/stdlib/tsort/0/cyclic.rbs +4 -0
  131. data/stdlib/tsort/0/interfaces.rbs +19 -0
  132. data/stdlib/tsort/0/tsort.rbs +363 -0
  133. data/stdlib/uri/{file.rbs → 0/file.rbs} +0 -0
  134. data/stdlib/uri/{generic.rbs → 0/generic.rbs} +1 -1
  135. data/stdlib/uri/{http.rbs → 0/http.rbs} +0 -0
  136. data/stdlib/uri/{https.rbs → 0/https.rbs} +0 -0
  137. data/stdlib/uri/{ldap.rbs → 0/ldap.rbs} +0 -0
  138. data/stdlib/uri/{ldaps.rbs → 0/ldaps.rbs} +0 -0
  139. data/stdlib/yaml/0/dbm.rbs +221 -0
  140. data/stdlib/yaml/0/store.rbs +53 -0
  141. data/stdlib/zlib/{zlib.rbs → 0/zlib.rbs} +0 -0
  142. data/steep/Gemfile.lock +9 -9
  143. metadata +108 -94
  144. data/stdlib/builtin/builtin.rbs +0 -42
@@ -67,5 +67,5 @@ module Base64
67
67
  # 64 Encoding with URL and Filename Safe Alphabet'' in RFC 4648. The alphabet
68
68
  # uses '-' instead of '+' and '_' instead of '/'. Note that the result can still
69
69
  # contain '='. You can remove the padding by setting `padding` as false.
70
- def self?.urlsafe_encode64: (String bin, ?padding: bool) -> String
70
+ def self?.urlsafe_encode64: (String bin, ?padding: boolish) -> String
71
71
  end
@@ -49,7 +49,7 @@ module Coverage
49
49
  # `clear` is true, it clears the counters to zero. If `stop` is true, it
50
50
  # disables coverage measurement.
51
51
  #
52
- def self.result: (?stop: bool, ?clear: bool) -> Hash[String, untyped]
52
+ def self.result: (?stop: boolish, ?clear: boolish) -> Hash[String, untyped]
53
53
 
54
54
  # Returns true if coverage stats are currently being collected (after
55
55
  # Coverage.start call, but before Coverage.result call)
@@ -58,5 +58,5 @@ module Coverage
58
58
 
59
59
  # Enables coverage measurement.
60
60
  #
61
- def self.start: (?lines: bool, ?branches: bool, ?methods: bool, ?oneshot_lines: bool) -> nil
61
+ def self.start: (?lines: boolish, ?branches: boolish, ?methods: boolish, ?oneshot_lines: boolish) -> nil
62
62
  end
@@ -159,7 +159,7 @@
159
159
  # with it.
160
160
  #
161
161
  class CSV < Object
162
- include Enumerable[untyped, untyped]
162
+ include Enumerable[untyped]
163
163
 
164
164
  # This method is intended as the primary interface for reading CSV files. You
165
165
  # pass a `path` and any `options` you wish to set for the read. Each row of file
@@ -407,7 +407,7 @@ CSV::VERSION: String
407
407
  # processing is activated.
408
408
  #
409
409
  class CSV::Row < Object
410
- include Enumerable[untyped, untyped]
410
+ include Enumerable[untyped]
411
411
 
412
412
  # If a two-element Array is provided, it is assumed to be a header and field and
413
413
  # the pair is appended. A Hash works the same way with the key being the header
@@ -578,7 +578,7 @@ end
578
578
  # processing is activated.
579
579
  #
580
580
  class CSV::Table[out Elem] < Object
581
- include Enumerable[untyped, untyped]
581
+ include Enumerable[untyped]
582
582
 
583
583
  # Constructs a new CSV::Table from `array_of_rows`, which are expected to be
584
584
  # CSV::Row objects. All rows are assumed to have the same headers.
@@ -755,7 +755,7 @@ class CSV::Table[out Elem] < Object
755
755
  # This method assumes you want the Table.headers(), unless you explicitly pass
756
756
  # `:write_headers => false`.
757
757
  #
758
- def to_csv: (?write_headers: bool, **untyped) -> untyped
758
+ def to_csv: (?write_headers: boolish, **untyped) -> untyped
759
759
 
760
760
  alias to_s to_csv
761
761
 
@@ -178,7 +178,7 @@ class Date
178
178
  #
179
179
  # Date._parse('2001-02-03') #=> {:year=>2001, :mon=>2, :mday=>3}
180
180
  #
181
- def self._parse: (String str, ?bool complete) -> Hash[Symbol, Integer]
181
+ def self._parse: (String str, ?boolish complete) -> Hash[Symbol, Integer]
182
182
 
183
183
  # Returns a hash of parsed elements.
184
184
  #
@@ -328,7 +328,7 @@ class Date
328
328
  # Date.parse('20010203') #=> #<Date: 2001-02-03 ...>
329
329
  # Date.parse('3rd Feb 2001') #=> #<Date: 2001-02-03 ...>
330
330
  #
331
- def self.parse: (String str, ?bool complete, ?Integer start) -> Date
331
+ def self.parse: (String str, ?boolish complete, ?Integer start) -> Date
332
332
 
333
333
  # Creates a new Date object by parsing from a string according to some typical
334
334
  # RFC 2822 formats.
@@ -236,7 +236,7 @@ class DateTime < Date
236
236
  # DateTime.parse('3rd Feb 2001 04:05:06 PM')
237
237
  # #=> #<DateTime: 2001-02-03T16:05:06+00:00 ...>
238
238
  #
239
- def self.parse: (String str, ?bool complete, ?Integer start) -> DateTime
239
+ def self.parse: (String str, ?boolish complete, ?Integer start) -> DateTime
240
240
 
241
241
  # Creates a new DateTime object by parsing from a string according to some
242
242
  # typical RFC 2822 formats.
@@ -0,0 +1,277 @@
1
+ # ## Introduction
2
+ #
3
+ # The DBM class provides a wrapper to a Unix-style
4
+ # [dbm](http://en.wikipedia.org/wiki/Dbm) or Database Manager library.
5
+ #
6
+ # Dbm databases do not have tables or columns; they are simple key-value data
7
+ # stores, like a Ruby Hash except not resident in RAM. Keys and values must be
8
+ # strings.
9
+ #
10
+ # The exact library used depends on how Ruby was compiled. It could be any of
11
+ # the following:
12
+ #
13
+ # * The original ndbm library is released in 4.3BSD. It is based on dbm
14
+ # library in Unix Version 7 but has different API to support multiple
15
+ # databases in a process.
16
+ # * [Berkeley DB](http://en.wikipedia.org/wiki/Berkeley_DB) versions 1 thru 6,
17
+ # also known as BDB and Sleepycat DB, now owned by Oracle Corporation.
18
+ # * Berkeley DB 1.x, still found in 4.4BSD derivatives (FreeBSD, OpenBSD,
19
+ # etc).
20
+ # * [gdbm](http://www.gnu.org/software/gdbm/), the GNU implementation of dbm.
21
+ # * [qdbm](http://fallabs.com/qdbm/index.html), another open source
22
+ # reimplementation of dbm.
23
+ #
24
+ #
25
+ # All of these dbm implementations have their own Ruby interfaces available,
26
+ # which provide richer (but varying) APIs.
27
+ #
28
+ # ## Cautions
29
+ #
30
+ # Before you decide to use DBM, there are some issues you should consider:
31
+ #
32
+ # * Each implementation of dbm has its own file format. Generally, dbm
33
+ # libraries will not read each other's files. This makes dbm files a bad
34
+ # choice for data exchange.
35
+ #
36
+ # * Even running the same OS and the same dbm implementation, the database
37
+ # file format may depend on the CPU architecture. For example, files may not
38
+ # be portable between PowerPC and 386, or between 32 and 64 bit Linux.
39
+ #
40
+ # * Different versions of Berkeley DB use different file formats. A change to
41
+ # the OS may therefore break DBM access to existing files.
42
+ #
43
+ # * Data size limits vary between implementations. Original Berkeley DB was
44
+ # limited to 2GB of data. Dbm libraries also sometimes limit the total size
45
+ # of a key/value pair, and the total size of all the keys that hash to the
46
+ # same value. These limits can be as little as 512 bytes. That said, gdbm
47
+ # and recent versions of Berkeley DB do away with these limits.
48
+ #
49
+ #
50
+ # Given the above cautions, DBM is not a good choice for long term storage of
51
+ # important data. It is probably best used as a fast and easy alternative to a
52
+ # Hash for processing large amounts of data.
53
+ #
54
+ # ## Example
55
+ #
56
+ # require 'dbm'
57
+ # db = DBM.open('rfcs', 0666, DBM::WRCREAT)
58
+ # db['822'] = 'Standard for the Format of ARPA Internet Text Messages'
59
+ # db['1123'] = 'Requirements for Internet Hosts - Application and Support'
60
+ # db['3068'] = 'An Anycast Prefix for 6to4 Relay Routers'
61
+ # puts db['822']
62
+ #
63
+ class DBM
64
+ include Enumerable[untyped]
65
+
66
+ # Open a dbm database and yields it if a block is given. See also `DBM.new`.
67
+ #
68
+ def self.open: (*untyped) -> ::DBM
69
+
70
+ public
71
+
72
+ # Return a value from the database by locating the key string provided. If the
73
+ # key is not found, returns nil.
74
+ #
75
+ def []: (untyped) -> untyped
76
+
77
+ # Stores the specified string value in the database, indexed via the string key
78
+ # provided.
79
+ #
80
+ def []=: (untyped, untyped) -> untyped
81
+
82
+ # Deletes all data from the database.
83
+ #
84
+ def clear: () -> self
85
+
86
+ # Closes the database.
87
+ #
88
+ def close: () -> NilClass
89
+
90
+ # Returns true if the database is closed, false otherwise.
91
+ #
92
+ def closed?: () -> bool
93
+
94
+ # Deletes an entry from the database.
95
+ #
96
+ def delete: (untyped) -> untyped
97
+
98
+ # Deletes all entries for which the code block returns true. Returns self.
99
+ #
100
+ def delete_if: () ?{ (untyped) -> bool } -> self
101
+
102
+ # Calls the block once for each [key, value] pair in the database. Returns self.
103
+ #
104
+ def each: (?untyped, ?untyped) -> Enumerator[untyped, ::DBM]
105
+
106
+ # Calls the block once for each key string in the database. Returns self.
107
+ #
108
+ def each_key: () -> Enumerator[String, ::DBM]
109
+
110
+ # Calls the block once for each [key, value] pair in the database. Returns self.
111
+ #
112
+ def each_pair: (?untyped, ?untyped) -> Enumerator[untyped, ::DBM]
113
+
114
+ # Calls the block once for each value string in the database. Returns self.
115
+ #
116
+ def each_value: () -> Enumerator[untyped, ::DBM]
117
+
118
+ # Returns true if the database is empty, false otherwise.
119
+ #
120
+ def empty?: () -> bool
121
+
122
+ # Return a value from the database by locating the key string provided. If the
123
+ # key is not found, returns `ifnone`. If `ifnone` is not given, raises
124
+ # IndexError.
125
+ #
126
+ def fetch: (*String) -> untyped
127
+
128
+ # Returns true if the database contains the specified key, false otherwise.
129
+ #
130
+ def has_key?: (String) -> bool
131
+
132
+ # Returns true if the database contains the specified string value, false
133
+ # otherwise.
134
+ #
135
+ def has_value?: (untyped) -> bool
136
+
137
+ # Returns true if the database contains the specified key, false otherwise.
138
+ #
139
+ def include?: (String) -> bool
140
+
141
+ def index: (untyped) -> (String | NilClass)
142
+
143
+ # Returns a Hash (not a DBM database) created by using each value in the
144
+ # database as a key, with the corresponding key as its value.
145
+ #
146
+ def invert: () -> Hash[untyped, String]
147
+
148
+ # Returns the key for the specified value.
149
+ #
150
+ def key: (untyped) -> (String | NilClass)
151
+
152
+ # Returns true if the database contains the specified key, false otherwise.
153
+ #
154
+ def key?: (untyped) -> bool
155
+
156
+ # Returns an array of all the string keys in the database.
157
+ #
158
+ def keys: () -> Array[String]
159
+
160
+ # Returns the number of entries in the database.
161
+ #
162
+ def length: () -> Integer
163
+
164
+ # Returns true if the database contains the specified key, false otherwise.
165
+ #
166
+ def member?: (untyped) -> bool
167
+
168
+ # Converts the contents of the database to an in-memory Hash, then calls
169
+ # Hash#reject with the specified code block, returning a new Hash.
170
+ #
171
+ def reject: () -> Hash[untyped, untyped]
172
+
173
+ # Deletes all entries for which the code block returns true. Returns self.
174
+ #
175
+ def reject!: () { (String, untyped) -> untyped } -> self
176
+
177
+ # Replaces the contents of the database with the contents of the specified
178
+ # object. Takes any object which implements the each_pair method, including Hash
179
+ # and DBM objects.
180
+ #
181
+ def replace: (untyped) -> ::DBM
182
+
183
+ # Returns a new array consisting of the [key, value] pairs for which the code
184
+ # block returns true.
185
+ #
186
+ def select: () { () -> untyped } -> Array[untyped]
187
+
188
+ # Removes a [key, value] pair from the database, and returns it. If the database
189
+ # is empty, returns nil. The order in which values are removed/returned is not
190
+ # guaranteed.
191
+ #
192
+ def shift: () -> Array[untyped]
193
+
194
+ # Returns the number of entries in the database.
195
+ #
196
+ def size: () -> Integer
197
+
198
+ # Stores the specified string value in the database, indexed via the string key
199
+ # provided.
200
+ #
201
+ def store: (String, untyped) -> String
202
+
203
+ # Converts the contents of the database to an array of [key, value] arrays, and
204
+ # returns it.
205
+ #
206
+ def to_a: () -> Array[untyped]
207
+
208
+ # Converts the contents of the database to an in-memory Hash object, and returns
209
+ # it.
210
+ #
211
+ def to_hash: () -> Hash[String, untyped]
212
+
213
+ # Updates the database with multiple values from the specified object. Takes any
214
+ # object which implements the each_pair method, including Hash and DBM objects.
215
+ #
216
+ def update: (untyped) -> ::DBM
217
+
218
+ # Returns true if the database contains the specified string value, false
219
+ # otherwise.
220
+ #
221
+ def value?: (untyped) -> bool
222
+
223
+ # Returns an array of all the string values in the database.
224
+ #
225
+ def values: () -> Array[untyped]
226
+
227
+ # Returns an array containing the values associated with the given keys.
228
+ #
229
+ def values_at: (*String) -> Array[untyped]
230
+
231
+ private
232
+
233
+ # Open a dbm database with the specified name, which can include a directory
234
+ # path. Any file extensions needed will be supplied automatically by the dbm
235
+ # library. For example, Berkeley DB appends '.db', and GNU gdbm uses two
236
+ # physical files with extensions '.dir' and '.pag'.
237
+ #
238
+ # The mode should be an integer, as for Unix chmod.
239
+ #
240
+ # Flags should be one of READER, WRITER, WRCREAT or NEWDB.
241
+ #
242
+ def initialize: (*untyped) -> self
243
+ end
244
+
245
+ # Indicates that dbm_open() should open the database in read/write mode, create
246
+ # it if it does not already exist, and delete all contents if it does already
247
+ # exist.
248
+ #
249
+ DBM::NEWDB: Integer
250
+
251
+ # Indicates that dbm_open() should open the database in read-only mode
252
+ #
253
+ #
254
+ DBM::READER: Integer
255
+
256
+ # Identifies ndbm library version.
257
+ #
258
+ # Examples:
259
+ #
260
+ # * "ndbm (4.3BSD)"
261
+ # * "Berkeley DB 4.8.30: (April 9, 2010)"
262
+ # * "Berkeley DB (unknown)" (4.4BSD, maybe)
263
+ # * "GDBM version 1.8.3. 10/15/2002 (built Jul 1 2011 12:32:45)"
264
+ # * "QDBM 1.8.78"
265
+ #
266
+ #
267
+ DBM::VERSION: String
268
+
269
+ # Indicates that dbm_open() should open the database in read/write mode, and
270
+ # create it if it does not already exist
271
+ #
272
+ DBM::WRCREAT: Integer
273
+
274
+ # Indicates that dbm_open() should open the database in read/write mode
275
+ #
276
+ #
277
+ DBM::WRITER: Integer
File without changes
File without changes
@@ -27,8 +27,8 @@ module Find
27
27
  #
28
28
  # See the `Find` module documentation for an example.
29
29
  #
30
- def self?.find: (*String | _ToPath paths, ?ignore_error: bool) -> Enumerator[String, nil]
31
- | (*String | _ToPath paths, ?ignore_error: bool) { (String arg0) -> void } -> nil
30
+ def self?.find: (*String | _ToPath paths, ?ignore_error: boolish) -> Enumerator[String, nil]
31
+ | (*String | _ToPath paths, ?ignore_error: boolish) { (String) -> void } -> nil
32
32
 
33
33
  # Skips the current file or directory, restarting the loop with the next entry.
34
34
  # If the current file is a directory, that directory will not be recursively
File without changes
@@ -24,7 +24,7 @@ class Logger
24
24
 
25
25
  def create_logfile: (String filename) -> File
26
26
 
27
- def initialize: (?untyped logdev, ?binmode: bool, ?shift_period_suffix: String, ?shift_size: Integer, ?shift_age: Numeric | String) -> void
27
+ def initialize: (?untyped logdev, ?binmode: boolish, ?shift_period_suffix: String, ?shift_size: Integer, ?shift_age: Numeric | String) -> void
28
28
 
29
29
  def lock_shift_log: () { () -> untyped } -> untyped
30
30
 
@@ -495,7 +495,7 @@ class Logger
495
495
  #
496
496
  # Create an instance.
497
497
  #
498
- def initialize: (logdev logdev, ?Numeric | String shift_age, ?Integer shift_size, ?shift_period_suffix: String, ?binmode: bool, ?datetime_format: String, ?formatter: _Formatter, ?progname: String, ?level: Integer) -> void
498
+ def initialize: (logdev logdev, ?Numeric | String shift_age, ?Integer shift_size, ?shift_period_suffix: String, ?binmode: boolish, ?datetime_format: String, ?formatter: _Formatter, ?progname: String, ?level: Integer) -> void
499
499
  end
500
500
 
501
501
  Logger::ProgName: String
@@ -324,9 +324,9 @@ class Pathname
324
324
  ?external_encoding: encoding,
325
325
  ?internal_encoding: encoding,
326
326
  ?encoding: encoding,
327
- ?textmode: bool,
328
- ?binmode: bool,
329
- ?autoclose: bool,
327
+ ?textmode: boolish,
328
+ ?binmode: boolish,
329
+ ?autoclose: boolish,
330
330
 
331
331
  # From String#encode
332
332
  ?invalid: :replace ?,
@@ -373,7 +373,7 @@ class Pathname
373
373
  # Note that the results never contain the entries `.` and `..` in the directory
374
374
  # because they are not children.
375
375
  #
376
- def children: (?bool with_directory) -> untyped
376
+ def children: (?boolish with_directory) -> untyped
377
377
 
378
378
  # Changes file permissions.
379
379
  #
@@ -397,7 +397,7 @@ class Pathname
397
397
  #
398
398
  # See Pathname#realpath.
399
399
  #
400
- def cleanpath: (?bool consider_symlink) -> Pathname
400
+ def cleanpath: (?boolish consider_symlink) -> Pathname
401
401
 
402
402
  # Returns the last change time, using directory information, not the file
403
403
  # itself.
@@ -485,8 +485,8 @@ class Pathname
485
485
  #
486
486
  # See Pathname#children
487
487
  #
488
- def each_child: (?bool with_directory) { (Pathname) -> void } -> Array[Pathname]
489
- | (?bool with_directory) -> Enumerator[Pathname, Array[Pathname]]
488
+ def each_child: (?boolish with_directory) { (Pathname) -> void } -> Array[Pathname]
489
+ | (?boolish with_directory) -> Enumerator[Pathname, Array[Pathname]]
490
490
 
491
491
  # Iterates over the entries (files and subdirectories) in the directory,
492
492
  # yielding a Pathname object for each entry.
@@ -517,11 +517,11 @@ class Pathname
517
517
  ?external_encoding: encoding,
518
518
  ?internal_encoding: encoding,
519
519
  ?encoding: encoding,
520
- ?textmode: bool,
521
- ?binmode: bool,
522
- ?autoclose: bool,
520
+ ?textmode: boolish,
521
+ ?binmode: boolish,
522
+ ?autoclose: boolish,
523
523
  # getline_args
524
- ?chomp: bool,
524
+ ?chomp: boolish,
525
525
  ) { (String) -> untyped } -> nil
526
526
  | (Integer limit,
527
527
  # open_args
@@ -530,11 +530,11 @@ class Pathname
530
530
  ?external_encoding: encoding,
531
531
  ?internal_encoding: encoding,
532
532
  ?encoding: encoding,
533
- ?textmode: bool,
534
- ?binmode: bool,
535
- ?autoclose: bool,
533
+ ?textmode: boolish,
534
+ ?binmode: boolish,
535
+ ?autoclose: boolish,
536
536
  # getline_args
537
- ?chomp: bool,
537
+ ?chomp: boolish,
538
538
  ) { (String) -> untyped } -> nil
539
539
  | (?String sep, ?Integer limit,
540
540
  # open_args
@@ -543,11 +543,11 @@ class Pathname
543
543
  ?external_encoding: encoding,
544
544
  ?internal_encoding: encoding,
545
545
  ?encoding: encoding,
546
- ?textmode: bool,
547
- ?binmode: bool,
548
- ?autoclose: bool,
546
+ ?textmode: boolish,
547
+ ?binmode: boolish,
548
+ ?autoclose: boolish,
549
549
  # getline_args
550
- ?chomp: bool,
550
+ ?chomp: boolish,
551
551
  ) -> Enumerator[String, nil]
552
552
  | (Integer limit,
553
553
  # open_args
@@ -556,11 +556,11 @@ class Pathname
556
556
  ?external_encoding: encoding,
557
557
  ?internal_encoding: encoding,
558
558
  ?encoding: encoding,
559
- ?textmode: bool,
560
- ?binmode: bool,
561
- ?autoclose: bool,
559
+ ?textmode: boolish,
560
+ ?binmode: boolish,
561
+ ?autoclose: boolish,
562
562
  # getline_args
563
- ?chomp: bool,
563
+ ?chomp: boolish,
564
564
  ) -> Enumerator[String, nil]
565
565
 
566
566
  # Tests the file is empty.
@@ -643,8 +643,8 @@ class Pathname
643
643
  #
644
644
  # See Find.find
645
645
  #
646
- def find: (?ignore_error: bool) { (Pathname) -> untyped } -> nil
647
- | (?ignore_error: bool) -> Enumerator[Pathname, nil]
646
+ def find: (?ignore_error: boolish) { (Pathname) -> untyped } -> nil
647
+ | (?ignore_error: boolish) -> Enumerator[Pathname, nil]
648
648
 
649
649
  # Return `true` if the receiver matches the given pattern.
650
650
  #
@@ -789,9 +789,9 @@ class Pathname
789
789
  ?external_encoding: encoding,
790
790
  ?internal_encoding: encoding,
791
791
  ?encoding: encoding,
792
- ?textmode: bool,
793
- ?binmode: bool,
794
- ?autoclose: bool,
792
+ ?textmode: boolish,
793
+ ?binmode: boolish,
794
+ ?autoclose: boolish,
795
795
  ) -> String
796
796
 
797
797
  # See FileTest.readable?.
@@ -813,11 +813,11 @@ class Pathname
813
813
  ?external_encoding: encoding,
814
814
  ?internal_encoding: encoding,
815
815
  ?encoding: encoding,
816
- ?textmode: bool,
817
- ?binmode: bool,
818
- ?autoclose: bool,
816
+ ?textmode: boolish,
817
+ ?binmode: boolish,
818
+ ?autoclose: boolish,
819
819
  # getline_args
820
- ?chomp: bool,
820
+ ?chomp: boolish,
821
821
  ) -> Array[String]
822
822
  | (Integer limit,
823
823
  # open_args
@@ -826,11 +826,11 @@ class Pathname
826
826
  ?external_encoding: encoding,
827
827
  ?internal_encoding: encoding,
828
828
  ?encoding: encoding,
829
- ?textmode: bool,
830
- ?binmode: bool,
831
- ?autoclose: bool,
829
+ ?textmode: boolish,
830
+ ?binmode: boolish,
831
+ ?autoclose: boolish,
832
832
  # getline_args
833
- ?chomp: bool,
833
+ ?chomp: boolish,
834
834
  ) -> Array[String]
835
835
 
836
836
  # Read symbolic link.
@@ -1033,9 +1033,9 @@ class Pathname
1033
1033
  ?external_encoding: encoding,
1034
1034
  ?internal_encoding: encoding,
1035
1035
  ?encoding: encoding,
1036
- ?textmode: bool,
1037
- ?binmode: bool,
1038
- ?autoclose: bool,
1036
+ ?textmode: boolish,
1037
+ ?binmode: boolish,
1038
+ ?autoclose: boolish,
1039
1039
  ) -> Integer
1040
1040
 
1041
1041
  # See FileTest.zero?.