rbs 3.8.0 → 3.8.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1b91cbfc2b983ede8389074430b54b2db70d1afee9c54c92cf8bc875568b7cf8
4
- data.tar.gz: b0306b614ba8d61f78c78e91340615ee5a5b196d562eaac580c5f2fe66a29927
3
+ metadata.gz: a48774543c23555bbcb9c6a13b387db3069fe4c65d534a7915798e85d37fa770
4
+ data.tar.gz: 034e53e2be22a3ca9ac15b8f95585c8fe42bf2267268f1eb23cffe2e92098213
5
5
  SHA512:
6
- metadata.gz: 78e9e035fccfc91fcdf4f37812e56c52d8dd9c4fd19211ad8c3ae1e9ddeda0c4deb3178b5b45e27863e93ebe415605bc83fd6d74ff2e13fc1ff266c82ab74059
7
- data.tar.gz: 6e65f935e8e51b9542cfd8b2aab6a367949be17742764dbe0a65532e3a87f9fc1f1ce829eb67783bc7f7c711f8039b59a3e66ef24aeecb698def729908f96139
6
+ metadata.gz: 31c29db0f7d38c22d3ab9c3ee5df5403bba9b489b38211fdd824b76f948e89efafd4b2e3afe81ec9420b3a76c350daccb5b23dddd57d85199a93531fd28e73b3
7
+ data.tar.gz: d8077101a4f4f26073d047ad4c7b04752f7e1849a1b3bdcfc41703e82b6b109d68e8c295ed2a0af57fc5e5744600ad89b77f24b1b93fbee226b42bd5d86493ee
@@ -10,13 +10,13 @@ on:
10
10
  jobs:
11
11
  comments:
12
12
  runs-on: "ubuntu-latest"
13
- env:
14
- RUBY_COMMIT: 1b0c46daed9186b82ab4fef1a4ab225afe582ee6
13
+ # env:
14
+ # RUBY_COMMIT: 1b0c46daed9186b82ab4fef1a4ab225afe582ee6
15
15
  steps:
16
16
  - uses: actions/checkout@v4
17
17
  - uses: ruby/setup-ruby@v1
18
18
  with:
19
- ruby-version: "3.4.0-rc1"
19
+ ruby-version: "3.4.1"
20
20
  bundler: none
21
21
  - name: Install dependencies
22
22
  run: |
@@ -13,26 +13,26 @@ jobs:
13
13
  strategy:
14
14
  fail-fast: false
15
15
  matrix:
16
- ruby: ['3.1', '3.2', '3.3', '3.4.0-rc1', head]
16
+ ruby: ['3.1', '3.2', '3.3', '3.4', head]
17
17
  rubyopt: [""]
18
18
  job:
19
19
  - test
20
20
  include:
21
21
  - ruby: head
22
22
  job: stdlib_test rubocop
23
- - ruby: "3.4.0-rc1"
23
+ - ruby: "3.4"
24
24
  job: stdlib_test
25
- - ruby: "3.4.0-rc1"
25
+ - ruby: "3.4"
26
26
  job: test
27
27
  rubyopt: "--enable-frozen-string-literal"
28
- - ruby: "3.4.0-rc1"
28
+ - ruby: "3.4"
29
29
  job: stdlib_test
30
30
  rubyopt: "--enable-frozen-string-literal"
31
- - ruby: "3.4.0-rc1"
31
+ - ruby: "3.4"
32
32
  job: lexer templates compile confirm_lexer confirm_templates
33
- - ruby: "3.4.0-rc1"
33
+ - ruby: "3.4"
34
34
  job: rubocop validate test_doc build test_generate_stdlib raap
35
- - ruby: "3.4.0-rc1"
35
+ - ruby: "3.4"
36
36
  job: typecheck_test
37
37
  env:
38
38
  RANDOMIZE_STDLIB_TEST_ORDER: "true"
data/.rubocop.yml CHANGED
@@ -15,6 +15,7 @@ Rubycw/Rubycw:
15
15
 
16
16
  RBS:
17
17
  Enabled: true
18
+
18
19
  RBS/Layout:
19
20
  Enabled: true
20
21
  Exclude:
@@ -23,6 +24,7 @@ RBS/Layout:
23
24
  RBS/Layout/CommentIndentation:
24
25
  Exclude:
25
26
  - core/string.rbs
27
+
26
28
  RBS/Lint:
27
29
  Enabled: true
28
30
  Exclude:
@@ -32,6 +34,11 @@ RBS/Lint/TopLevelInterface:
32
34
  Enabled: false
33
35
  RBS/Lint/TopLevelTypeAlias:
34
36
  Enabled: false
37
+ RBS/Lint/AmbiguousKeywordArgumentKey:
38
+ Exclude:
39
+ # OpenSSL::KDF.scrypt
40
+ - 'stdlib/openssl/0/openssl.rbs'
41
+
35
42
  RBS/Style:
36
43
  Enabled: false
37
44
  Exclude:
data/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 3.8.1 (2024-12-27)
4
+
5
+ ### Signature updates
6
+
7
+ * `Ractor.store_if_absent` ([#2206](https://github.com/ruby/rbs/pull/2206))
8
+ * `Time#iso860t1` ([#2207](https://github.com/ruby/rbs/pull/2207))
9
+ * `Time#xmlschema` ([#2207](https://github.com/ruby/rbs/pull/2207))
10
+
11
+ ### Miscellaneous
12
+
13
+ * Update rubocop-on-rbs ([#2200](https://github.com/ruby/rbs/pull/2200))
14
+ * Update docs based on Ruby 3.4.1 ([#2208](https://github.com/ruby/rbs/pull/2208))
15
+ * Ruby 3.4.1 ([#2206](https://github.com/ruby/rbs/pull/2206))
16
+
3
17
  ## 3.8.0 (2024-12-24)
4
18
 
5
19
  ### Signature updates
data/core/exception.rbs CHANGED
@@ -99,24 +99,31 @@ class Exception
99
99
  # rdoc-file=error.c
100
100
  # - backtrace -> array or nil
101
101
  # -->
102
- # Returns a backtrace value for `self`; the returned value depends on the form
103
- # of the stored backtrace value:
102
+ # Returns the backtrace (the list of code locations that led to the exception),
103
+ # as an array of strings.
104
104
  #
105
- # * Array of Thread::Backtrace::Location objects: returns the array of strings
106
- # given by `Exception#backtrace_locations.map {|loc| loc.to_s }`. This is
107
- # the normal case, where the backtrace value was stored by Kernel#raise.
108
- # * Array of strings: returns that array. This is the unusual case, where the
109
- # backtrace value was explicitly stored as an array of strings.
110
- # * `nil`: returns `nil`.
105
+ # Example (assuming the code is stored in the file named `t.rb`):
111
106
  #
112
- # Example:
107
+ # def division(numerator, denominator)
108
+ # numerator / denominator
109
+ # end
113
110
  #
114
111
  # begin
115
- # 1 / 0
116
- # rescue => x
117
- # x.backtrace.take(2)
112
+ # division(1, 0)
113
+ # rescue => ex
114
+ # p ex.backtrace
115
+ # # ["t.rb:2:in 'Integer#/'", "t.rb:2:in 'Object#division'", "t.rb:6:in '<main>'"]
116
+ # loc = ex.backtrace.first
117
+ # p loc.class
118
+ # # String
118
119
  # end
119
- # # => ["(irb):132:in `/'", "(irb):132:in `<top (required)>'"]
120
+ #
121
+ # The value returned by this method migth be adjusted when raising (see
122
+ # Kernel#raise), or during intermediate handling by #set_backtrace.
123
+ #
124
+ # See also #backtrace_locations that provide the same value, as structured
125
+ # objects. (Note though that two values might not be consistent with each other
126
+ # when backtraces are manually adjusted.)
120
127
  #
121
128
  # see [Backtraces](rdoc-ref:exceptions.md@Backtraces).
122
129
  #
@@ -126,20 +133,37 @@ class Exception
126
133
  # rdoc-file=error.c
127
134
  # - backtrace_locations -> array or nil
128
135
  # -->
129
- # Returns a backtrace value for `self`; the returned value depends on the form
130
- # of the stored backtrace value:
136
+ # Returns the backtrace (the list of code locations that led to the exception),
137
+ # as an array of Thread::Backtrace::Location instances.
131
138
  #
132
- # * Array of Thread::Backtrace::Location objects: returns that array.
133
- # * Array of strings or `nil`: returns `nil`.
139
+ # Example (assuming the code is stored in the file named `t.rb`):
134
140
  #
135
- # Example:
141
+ # def division(numerator, denominator)
142
+ # numerator / denominator
143
+ # end
136
144
  #
137
145
  # begin
138
- # 1 / 0
139
- # rescue => x
140
- # x.backtrace_locations.take(2)
146
+ # division(1, 0)
147
+ # rescue => ex
148
+ # p ex.backtrace_locations
149
+ # # ["t.rb:2:in 'Integer#/'", "t.rb:2:in 'Object#division'", "t.rb:6:in '<main>'"]
150
+ # loc = ex.backtrace_locations.first
151
+ # p loc.class
152
+ # # Thread::Backtrace::Location
153
+ # p loc.path
154
+ # # "t.rb"
155
+ # p loc.lineno
156
+ # # 2
157
+ # p loc.label
158
+ # # "Integer#/"
141
159
  # end
142
- # # => ["(irb):150:in `/'", "(irb):150:in `<top (required)>'"]
160
+ #
161
+ # The value returned by this method might be adjusted when raising (see
162
+ # Kernel#raise), or during intermediate handling by #set_backtrace.
163
+ #
164
+ # See also #backtrace that provide the same value as an array of strings. (Note
165
+ # though that two values might not be consistent with each other when backtraces
166
+ # are manually adjusted.)
143
167
  #
144
168
  # See [Backtraces](rdoc-ref:exceptions.md@Backtraces).
145
169
  #
@@ -294,15 +318,100 @@ class Exception
294
318
  # rdoc-file=error.c
295
319
  # - set_backtrace(value) -> value
296
320
  # -->
297
- # Sets the backtrace value for `self`; returns the given +value:
321
+ # Sets the backtrace value for `self`; returns the given `value`.
298
322
  #
299
- # x = RuntimeError.new('Boom')
300
- # x.set_backtrace(%w[foo bar baz]) # => ["foo", "bar", "baz"]
301
- # x.backtrace # => ["foo", "bar", "baz"]
323
+ # The `value` might be:
302
324
  #
303
- # The given `value` must be an array of strings, a single string, or `nil`.
325
+ # * an array of Thread::Backtrace::Location;
326
+ # * an array of String instances;
327
+ # * a single String instance; or
328
+ # * `nil`.
329
+ #
330
+ # Using array of Thread::Backtrace::Location is the most consistent option: it
331
+ # sets both #backtrace and #backtrace_locations. It should be preferred when
332
+ # possible. The suitable array of locations can be obtained from
333
+ # Kernel#caller_locations, copied from another error, or just set to the
334
+ # adjusted result of the current error's #backtrace_locations:
335
+ #
336
+ # require 'json'
337
+ #
338
+ # def parse_payload(text)
339
+ # JSON.parse(text) # test.rb, line 4
340
+ # rescue JSON::ParserError => ex
341
+ # ex.set_backtrace(ex.backtrace_locations[2...])
342
+ # raise
343
+ # end
304
344
  #
305
- # Does not affect the value returned by #backtrace_locations.
345
+ # parse_payload('{"wrong: "json"')
346
+ # # test.rb:4:in 'Object#parse_payload': unexpected token at '{"wrong: "json"' (JSON::ParserError)
347
+ # #
348
+ # # An error points to the body of parse_payload method,
349
+ # # hiding the parts of the backtrace related to the internals
350
+ # # of the "json" library
351
+ #
352
+ # # The error has both #backtace and #backtrace_locations set
353
+ # # consistently:
354
+ # begin
355
+ # parse_payload('{"wrong: "json"')
356
+ # rescue => ex
357
+ # p ex.backtrace
358
+ # # ["test.rb:4:in 'Object#parse_payload'", "test.rb:20:in '<main>'"]
359
+ # p ex.backtrace_locations
360
+ # # ["test.rb:4:in 'Object#parse_payload'", "test.rb:20:in '<main>'"]
361
+ # end
362
+ #
363
+ # When the desired stack of locations is not available and should be constructed
364
+ # from scratch, an array of strings or a singular string can be used. In this
365
+ # case, only #backtrace is affected:
366
+ #
367
+ # def parse_payload(text)
368
+ # JSON.parse(text)
369
+ # rescue JSON::ParserError => ex
370
+ # ex.set_backtrace(["dsl.rb:34", "framework.rb:1"])
371
+ # # The error have the new value in #backtrace:
372
+ # p ex.backtrace
373
+ # # ["dsl.rb:34", "framework.rb:1"]
374
+ #
375
+ # # but the original one in #backtrace_locations
376
+ # p ex.backtrace_locations
377
+ # # [".../json/common.rb:221:in 'JSON::Ext::Parser.parse'", ...]
378
+ # end
379
+ #
380
+ # parse_payload('{"wrong: "json"')
381
+ #
382
+ # Calling #set_backtrace with `nil` clears up #backtrace but doesn't affect
383
+ # #backtrace_locations:
384
+ #
385
+ # def parse_payload(text)
386
+ # JSON.parse(text)
387
+ # rescue JSON::ParserError => ex
388
+ # ex.set_backtrace(nil)
389
+ # p ex.backtrace
390
+ # # nil
391
+ # p ex.backtrace_locations
392
+ # # [".../json/common.rb:221:in 'JSON::Ext::Parser.parse'", ...]
393
+ # end
394
+ #
395
+ # parse_payload('{"wrong: "json"')
396
+ #
397
+ # On reraising of such an exception, both #backtrace and #backtrace_locations is
398
+ # set to the place of reraising:
399
+ #
400
+ # def parse_payload(text)
401
+ # JSON.parse(text)
402
+ # rescue JSON::ParserError => ex
403
+ # ex.set_backtrace(nil)
404
+ # raise # test.rb, line 7
405
+ # end
406
+ #
407
+ # begin
408
+ # parse_payload('{"wrong: "json"')
409
+ # rescue => ex
410
+ # p ex.backtrace
411
+ # # ["test.rb:7:in 'Object#parse_payload'", "test.rb:11:in '<main>'"]
412
+ # p ex.backtrace_locations
413
+ # # ["test.rb:7:in 'Object#parse_payload'", "test.rb:11:in '<main>'"]
414
+ # end
306
415
  #
307
416
  # See [Backtraces](rdoc-ref:exceptions.md@Backtraces).
308
417
  #
@@ -358,16 +467,16 @@ class Exception
358
467
  # Output:
359
468
  #
360
469
  # "divided by 0"
361
- # ["t.rb:3:in `/': divided by 0 (ZeroDivisionError)",
362
- # "\tfrom t.rb:3:in `baz'",
363
- # "\tfrom t.rb:10:in `bar'",
364
- # "\tfrom t.rb:11:in `foo'",
365
- # "\tfrom t.rb:12:in `<main>'"]
366
- # ["t.rb:3:in `/': \e[1mdivided by 0 (\e[1;4mZeroDivisionError\e[m\e[1m)\e[m",
367
- # "\tfrom t.rb:3:in `baz'",
368
- # "\tfrom t.rb:10:in `bar'",
369
- # "\tfrom t.rb:11:in `foo'",
370
- # "\tfrom t.rb:12:in `<main>'"]
470
+ # ["t.rb:3:in 'Integer#/': divided by 0 (ZeroDivisionError)",
471
+ # "\tfrom t.rb:3:in 'Object#baz'",
472
+ # "\tfrom t.rb:10:in 'Object#bar'",
473
+ # "\tfrom t.rb:11:in 'Object#foo'",
474
+ # "\tfrom t.rb:12:in '<main>'"]
475
+ # ["t.rb:3:in 'Integer#/': \e[1mdivided by 0 (\e[1;4mZeroDivisionError\e[m\e[1m)\e[m",
476
+ # "\tfrom t.rb:3:in 'Object#baz'",
477
+ # "\tfrom t.rb:10:in 'Object#bar'",
478
+ # "\tfrom t.rb:11:in 'Object#foo'",
479
+ # "\tfrom t.rb:12:in '<main>'"]
371
480
  #
372
481
  # An overriding method should be careful with ANSI code enhancements; see
373
482
  # [Messages](rdoc-ref:exceptions.md@Messages).
data/core/gc.rbs CHANGED
@@ -587,7 +587,7 @@ module GC
587
587
 
588
588
  # The type that `GC.compact` and related functions can return.
589
589
  #
590
- type compact_info = Hash[:considered | :moved |:moved_up | :moved_down, Hash[Symbol, Integer]]
590
+ type compact_info = Hash[:considered | :moved | :moved_up | :moved_down, Hash[Symbol, Integer]]
591
591
 
592
592
  # <!--
593
593
  # rdoc-file=gc.rb
data/core/kernel.rbs CHANGED
@@ -936,16 +936,37 @@ module Kernel : BasicObject
936
936
  #
937
937
  # See [Messages](rdoc-ref:exceptions.md@Messages).
938
938
  #
939
- # Argument `backtrace` sets the stored backtrace in the new exception, which may
940
- # be retrieved by method Exception#backtrace; the backtrace must be an array of
941
- # strings or `nil`:
939
+ # Argument `backtrace` might be used to modify the backtrace of the new
940
+ # exception, as reported by Exception#backtrace and
941
+ # Exception#backtrace_locations; the backtrace must be an array of
942
+ # Thread::Backtrace::Location, an array of strings, a single string, or `nil`.
943
+ #
944
+ # Using the array of Thread::Backtrace::Location instances is the most
945
+ # consistent option and should be preferred when possible. The necessary value
946
+ # might be obtained from #caller_locations, or copied from
947
+ # Exception#backtrace_locations of another error:
942
948
  #
943
949
  # begin
944
- # raise(StandardError, 'Boom', %w[foo bar baz])
945
- # rescue => x
946
- # p x.backtrace
950
+ # do_some_work()
951
+ # rescue ZeroDivisionError => ex
952
+ # raise(LogicalError, "You have an error in your math", ex.backtrace_locations)
953
+ # end
954
+ #
955
+ # The ways, both Exception#backtrace and Exception#backtrace_locations of the
956
+ # raised error are set to the same backtrace.
957
+ #
958
+ # When the desired stack of locations is not available and should be constructed
959
+ # from scratch, an array of strings or a singular string can be used. In this
960
+ # case, only Exception#backtrace is set:
961
+ #
962
+ # begin
963
+ # raise(StandardError, 'Boom', %w[dsl.rb:3 framework.rb:1])
964
+ # rescue => ex
965
+ # p ex.backtrace
966
+ # # => ["dsl.rb:3", "framework.rb:1"]
967
+ # p ex.backtrace_locations
968
+ # # => nil
947
969
  # end
948
- # # => ["foo", "bar", "baz"]
949
970
  #
950
971
  # If argument `backtrace` is not given, the backtrace is set according to an
951
972
  # array of Thread::Backtrace::Location objects, as derived from the call stack.
@@ -1021,16 +1042,37 @@ module Kernel : BasicObject
1021
1042
  #
1022
1043
  # See [Messages](rdoc-ref:exceptions.md@Messages).
1023
1044
  #
1024
- # Argument `backtrace` sets the stored backtrace in the new exception, which may
1025
- # be retrieved by method Exception#backtrace; the backtrace must be an array of
1026
- # strings or `nil`:
1045
+ # Argument `backtrace` might be used to modify the backtrace of the new
1046
+ # exception, as reported by Exception#backtrace and
1047
+ # Exception#backtrace_locations; the backtrace must be an array of
1048
+ # Thread::Backtrace::Location, an array of strings, a single string, or `nil`.
1049
+ #
1050
+ # Using the array of Thread::Backtrace::Location instances is the most
1051
+ # consistent option and should be preferred when possible. The necessary value
1052
+ # might be obtained from #caller_locations, or copied from
1053
+ # Exception#backtrace_locations of another error:
1027
1054
  #
1028
1055
  # begin
1029
- # raise(StandardError, 'Boom', %w[foo bar baz])
1030
- # rescue => x
1031
- # p x.backtrace
1056
+ # do_some_work()
1057
+ # rescue ZeroDivisionError => ex
1058
+ # raise(LogicalError, "You have an error in your math", ex.backtrace_locations)
1059
+ # end
1060
+ #
1061
+ # The ways, both Exception#backtrace and Exception#backtrace_locations of the
1062
+ # raised error are set to the same backtrace.
1063
+ #
1064
+ # When the desired stack of locations is not available and should be constructed
1065
+ # from scratch, an array of strings or a singular string can be used. In this
1066
+ # case, only Exception#backtrace is set:
1067
+ #
1068
+ # begin
1069
+ # raise(StandardError, 'Boom', %w[dsl.rb:3 framework.rb:1])
1070
+ # rescue => ex
1071
+ # p ex.backtrace
1072
+ # # => ["dsl.rb:3", "framework.rb:1"]
1073
+ # p ex.backtrace_locations
1074
+ # # => nil
1032
1075
  # end
1033
- # # => ["foo", "bar", "baz"]
1034
1076
  #
1035
1077
  # If argument `backtrace` is not given, the backtrace is set according to an
1036
1078
  # array of Thread::Backtrace::Location objects, as derived from the call stack.
data/core/ractor.rbs CHANGED
@@ -603,7 +603,7 @@ class Ractor
603
603
  # }
604
604
  # }.map(&:value).uniq.size #=> 1 and f() is called only once
605
605
  #
606
- def self.store_if_absent: (Symbol) { () -> untyped } -> untyped
606
+ def self.store_if_absent: [A] (Symbol) { (nil) -> A } -> A
607
607
 
608
608
  # <!--
609
609
  # rdoc-file=ractor.rb
@@ -1053,6 +1053,9 @@ class Ractor
1053
1053
  # end
1054
1054
  #
1055
1055
  class RemoteError < Ractor::Error
1056
+ # <!-- rdoc-file=ractor.rb -->
1057
+ # The Ractor an uncaught exception is raised in.
1058
+ #
1056
1059
  def ractor: () -> Ractor
1057
1060
  end
1058
1061
 
data/core/regexp.rbs CHANGED
@@ -836,8 +836,10 @@
836
836
  # These are also commonly used:
837
837
  #
838
838
  # * `/\p{Emoji}/`: Unicode emoji.
839
- # * `/\p{Graph}/`: Non-blank character (excludes spaces, control characters,
840
- # and similar).
839
+ # * `/\p{Graph}/`: Characters excluding `/\p{Cntrl}/` and `/\p{Space}/`. Note
840
+ # that invisible characters under the Unicode
841
+ # ["Format"](https://www.compart.com/en/unicode/category/Cf) category are
842
+ # included.
841
843
  # * `/\p{Word}/`: A member in one of these Unicode character categories (see
842
844
  # below) or having one of these Unicode properties:
843
845
  #
data/core/ruby_vm.rbs CHANGED
@@ -688,14 +688,14 @@ module RubyVM::YJIT
688
688
  # Enable YJIT compilation. `stats` option decides whether to enable YJIT stats
689
689
  # or not. `compilation_log` decides
690
690
  # whether to enable YJIT compilation logging or not.
691
- # `stats`:
692
- # * `false`: Don't enable stats.
693
- # * `true`: Enable stats. Print stats at exit.
694
- # * `:quiet`: Enable stats. Do not print stats at exit.
695
- # `log`:
696
- # * `false`: Don't enable the log.
697
- # * `true`: Enable the log. Print log at exit.
698
- # * `:quiet`: Enable the log. Do not print log at exit.
691
+ # * `stats`:
692
+ # * `false`: Don't enable stats.
693
+ # * `true`: Enable stats. Print stats at exit.
694
+ # * `:quiet`: Enable stats. Do not print stats at exit.
695
+ # * `log`:
696
+ # * `false`: Don't enable the log.
697
+ # * `true`: Enable the log. Print log at exit.
698
+ # * `:quiet`: Enable the log. Do not print log at exit.
699
699
  #
700
700
  def self.enable: (?stats: false | true | :quiet) -> void
701
701
 
data/core/time.rbs CHANGED
@@ -1629,7 +1629,7 @@ class Time < Object
1629
1629
  #
1630
1630
  # You must require 'time' to use this method.
1631
1631
  #
1632
- def xmlschema: () -> String
1632
+ def xmlschema: (?Integer fraction_digits) -> String
1633
1633
 
1634
1634
  # <!--
1635
1635
  # rdoc-file=time.c
data/lib/rbs/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RBS
4
- VERSION = "3.8.0"
4
+ VERSION = "3.8.1"
5
5
  end
@@ -12,15 +12,17 @@
12
12
  class Monitor
13
13
  # <!--
14
14
  # rdoc-file=ext/monitor/monitor.c
15
- # - enter()
15
+ # - enter -> nil
16
16
  # -->
17
+ # Enters exclusive section.
17
18
  #
18
19
  def enter: () -> nil
19
20
 
20
21
  # <!--
21
22
  # rdoc-file=ext/monitor/monitor.c
22
- # - exit()
23
+ # - exit -> nil
23
24
  # -->
25
+ # Leaves exclusive section.
24
26
  #
25
27
  def exit: () -> nil
26
28
 
@@ -77,20 +79,25 @@ class Monitor
77
79
  # rdoc-file=ext/monitor/lib/monitor.rb
78
80
  # - new_cond()
79
81
  # -->
82
+ # Creates a new MonitorMixin::ConditionVariable associated with the Monitor
83
+ # object.
80
84
  #
81
85
  def new_cond: () -> ::MonitorMixin::ConditionVariable
82
86
 
83
87
  # <!--
84
88
  # rdoc-file=ext/monitor/monitor.c
85
- # - synchronize()
89
+ # - synchronize { } -> result of the block
86
90
  # -->
91
+ # Enters exclusive section and executes the block. Leaves the exclusive section
92
+ # automatically when the block exits. See example under `MonitorMixin`.
87
93
  #
88
94
  def synchronize: [T] () { () -> T } -> T
89
95
 
90
96
  # <!--
91
97
  # rdoc-file=ext/monitor/monitor.c
92
- # - try_enter()
98
+ # - try_enter -> true or false
93
99
  # -->
100
+ # Attempts to enter exclusive section. Returns `false` if lock fails.
94
101
  #
95
102
  def try_enter: () -> bool
96
103
 
@@ -279,6 +286,8 @@ module MonitorMixin
279
286
  # rdoc-file=ext/monitor/lib/monitor.rb
280
287
  # - mon_check_owner()
281
288
  # -->
289
+ # Ensures that the MonitorMixin is owned by the current thread, otherwise raises
290
+ # an exception.
282
291
  #
283
292
  def mon_check_owner: () -> nil
284
293
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbs
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.0
4
+ version: 3.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Soutaro Matsumoto
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2024-12-24 00:00:00.000000000 Z
10
+ date: 2024-12-27 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: logger