alchemrest 3.2.2 → 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 (29) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +19 -35
  3. data/gemfiles/faraday_2.gemfile.lock +1 -1
  4. data/gemfiles/rails_7_2.gemfile.lock +1 -1
  5. data/gemfiles/rails_8_0.gemfile.lock +1 -1
  6. data/lib/alchemrest/data.rb +2 -2
  7. data/lib/alchemrest/request_definition.rb +1 -1
  8. data/lib/alchemrest/version.rb +1 -1
  9. data/lib/tapioca/dsl/compilers/alchemrest_root.rb +79 -7
  10. data/sorbet/rbi/gems/{concurrent-ruby@1.3.6.rbi → concurrent-ruby@1.3.7.rbi} +53 -51
  11. data/sorbet/rbi/gems/{crass@1.0.6.rbi → crass@1.0.7.rbi} +63 -57
  12. data/sorbet/rbi/gems/{faraday-net_http@1.0.2.rbi → faraday-net_http@3.4.4.rbi} +49 -46
  13. data/sorbet/rbi/gems/{faraday@1.10.5.rbi → faraday@2.14.3.rbi} +708 -519
  14. data/sorbet/rbi/gems/{loofah@2.24.0.rbi → loofah@2.25.2.rbi} +67 -41
  15. data/sorbet/rbi/gems/net-http@0.9.1.rbi +977 -0
  16. data/sorbet/rbi/gems/{nokogiri@1.19.1.rbi → nokogiri@1.19.4.rbi} +213 -199
  17. data/sorbet/rbi/gems/{rails-html-sanitizer@1.6.2.rbi → rails-html-sanitizer@1.7.1.rbi} +107 -104
  18. data/sorbet/rbi/gems/{yard@0.9.37.rbi → yard@0.9.44.rbi} +1036 -365
  19. metadata +12 -24
  20. data/sorbet/rbi/gems/faraday-em_http@1.0.0.rbi +0 -181
  21. data/sorbet/rbi/gems/faraday-em_synchrony@1.0.1.rbi +0 -120
  22. data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +0 -128
  23. data/sorbet/rbi/gems/faraday-httpclient@1.0.1.rbi +0 -123
  24. data/sorbet/rbi/gems/faraday-multipart@1.2.0.rbi +0 -190
  25. data/sorbet/rbi/gems/faraday-net_http_persistent@1.2.0.rbi +0 -116
  26. data/sorbet/rbi/gems/faraday-patron@1.0.0.rbi +0 -119
  27. data/sorbet/rbi/gems/faraday-rack@1.0.0.rbi +0 -113
  28. data/sorbet/rbi/gems/faraday-retry@1.0.3.rbi +0 -149
  29. data/sorbet/rbi/gems/multipart-post@2.4.1.rbi +0 -154
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 717cfa79beac7a5568a25e0c78014169594d2555f4c1d4aff94b6a12a03aea1b
4
- data.tar.gz: 70880db2e4b25d1e6598a7ae8315e0126851d2bf8606b5ea2e7d918514adc633
3
+ metadata.gz: e9985b9a29061ef219e09bcaf3613f0869442c425ebdef8a9c97cc4f31a40fa6
4
+ data.tar.gz: e1aacc36591d0dfe16fe59d7099a5b06fb4a1e076f8f61c8b8e7cbda0d72c7c7
5
5
  SHA512:
6
- metadata.gz: a31e563b3c68a5d8fba496ed2418682f375c84d87f0d623cef590e7769dbcac1b679763e240c08e88f1178b481d7a6a018c4974707f82ff153376a75a1fd259d
7
- data.tar.gz: a206d986fd797a81799349c84356b324e1c5d13c0e9212a3b593ee5eecf92bec180987eb927587912c8f7c5f3b7b0d46b864242f7920c0ce2d591e11a009ae2d
6
+ metadata.gz: c6f28199a64154cd0b91c830090e0b3aede1b8a073ecbd91f855975fca7535c4bad52b516649b4c9df8ccd5d3da96631aad1a26f6a09389728517dcebe79ac3a
7
+ data.tar.gz: 8aa2a756be73f88871b955cb11b8c7c56e750ebed26f570cca95a67b0df58dfff1fd41e04e8d2053bfa9dc70391f46eab36b2f0b6b75074b02662b9505f39bd7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- alchemrest (3.2.2)
4
+ alchemrest (3.3.0)
5
5
  activerecord (>= 7.2, < 8.1)
6
6
  activesupport (>= 7.2, < 8.1)
7
7
  circuitbox (~> 2.0.0)
@@ -88,12 +88,12 @@ GEM
88
88
  concord (0.1.6)
89
89
  adamantium (~> 0.2.0)
90
90
  equalizer (~> 0.0.9)
91
- concurrent-ruby (1.3.6)
91
+ concurrent-ruby (1.3.7)
92
92
  connection_pool (3.0.2)
93
93
  crack (1.0.0)
94
94
  bigdecimal
95
95
  rexml
96
- crass (1.0.6)
96
+ crass (1.0.7)
97
97
  date (3.4.1)
98
98
  diff-lcs (1.6.2)
99
99
  drb (2.2.3)
@@ -101,29 +101,12 @@ GEM
101
101
  erubi (1.13.1)
102
102
  factory_bot (6.5.0)
103
103
  activesupport (>= 5.0.0)
104
- faraday (1.10.5)
105
- faraday-em_http (~> 1.0)
106
- faraday-em_synchrony (~> 1.0)
107
- faraday-excon (~> 1.1)
108
- faraday-httpclient (~> 1.0)
109
- faraday-multipart (~> 1.0)
110
- faraday-net_http (~> 1.0)
111
- faraday-net_http_persistent (~> 1.0)
112
- faraday-patron (~> 1.0)
113
- faraday-rack (~> 1.0)
114
- faraday-retry (~> 1.0)
115
- ruby2_keywords (>= 0.0.4)
116
- faraday-em_http (1.0.0)
117
- faraday-em_synchrony (1.0.1)
118
- faraday-excon (1.1.0)
119
- faraday-httpclient (1.0.1)
120
- faraday-multipart (1.2.0)
121
- multipart-post (~> 2.0)
122
- faraday-net_http (1.0.2)
123
- faraday-net_http_persistent (1.2.0)
124
- faraday-patron (1.0.0)
125
- faraday-rack (1.0.0)
126
- faraday-retry (1.0.3)
104
+ faraday (2.14.3)
105
+ faraday-net_http (>= 2.0, < 3.5)
106
+ json
107
+ logger
108
+ faraday-net_http (3.4.4)
109
+ net-http (~> 0.5)
127
110
  hansi (0.2.1)
128
111
  hashdiff (1.1.2)
129
112
  i18n (1.14.8)
@@ -137,7 +120,7 @@ GEM
137
120
  json (2.9.1)
138
121
  language_server-protocol (3.17.0.3)
139
122
  logger (1.7.0)
140
- loofah (2.24.0)
123
+ loofah (2.25.2)
141
124
  crass (~> 1.0.2)
142
125
  nokogiri (>= 1.12.0)
143
126
  memoizable (0.4.2)
@@ -164,7 +147,6 @@ GEM
164
147
  ice_nine (~> 0.11.1)
165
148
  procto (~> 0.0.2)
166
149
  multi_json (1.15.0)
167
- multipart-post (2.4.1)
168
150
  mustermann (3.0.3)
169
151
  ruby2_keywords (~> 0.0.1)
170
152
  mustermann-contrib (3.0.3)
@@ -180,14 +162,16 @@ GEM
180
162
  mutant-rspec (0.13.4)
181
163
  mutant (= 0.13.4)
182
164
  rspec-core (>= 3.8.0, < 4.0.0)
165
+ net-http (0.9.1)
166
+ uri (>= 0.11.1)
183
167
  netrc (0.11.0)
184
- nokogiri (1.19.1-aarch64-linux-gnu)
168
+ nokogiri (1.19.4-aarch64-linux-gnu)
185
169
  racc (~> 1.4)
186
- nokogiri (1.19.1-arm64-darwin)
170
+ nokogiri (1.19.4-arm64-darwin)
187
171
  racc (~> 1.4)
188
- nokogiri (1.19.1-x86_64-darwin)
172
+ nokogiri (1.19.4-x86_64-darwin)
189
173
  racc (~> 1.4)
190
- nokogiri (1.19.1-x86_64-linux-gnu)
174
+ nokogiri (1.19.4-x86_64-linux-gnu)
191
175
  racc (~> 1.4)
192
176
  parallel (1.26.3)
193
177
  parser (3.3.7.0)
@@ -219,8 +203,8 @@ GEM
219
203
  activesupport (>= 5.0.0)
220
204
  minitest
221
205
  nokogiri (>= 1.6)
222
- rails-html-sanitizer (1.6.2)
223
- loofah (~> 2.21)
206
+ rails-html-sanitizer (1.7.1)
207
+ loofah (~> 2.25, >= 2.25.2)
224
208
  nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
225
209
  railties (8.0.4.1)
226
210
  actionpack (= 8.0.4.1)
@@ -341,7 +325,7 @@ GEM
341
325
  addressable (>= 2.8.0)
342
326
  crack (>= 0.3.2)
343
327
  hashdiff (>= 0.4.0, < 2.0.0)
344
- yard (0.9.37)
328
+ yard (0.9.44)
345
329
  yard-sorbet (0.9.0)
346
330
  sorbet-runtime
347
331
  yard
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- alchemrest (3.2.2)
4
+ alchemrest (3.3.0)
5
5
  activerecord (>= 7.2, < 8.1)
6
6
  activesupport (>= 7.2, < 8.1)
7
7
  circuitbox (~> 2.0.0)
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- alchemrest (3.2.2)
4
+ alchemrest (3.3.0)
5
5
  activerecord (>= 7.2, < 8.1)
6
6
  activesupport (>= 7.2, < 8.1)
7
7
  circuitbox (~> 2.0.0)
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- alchemrest (3.2.2)
4
+ alchemrest (3.3.0)
5
5
  activerecord (>= 7.2, < 8.1)
6
6
  activesupport (>= 7.2, < 8.1)
7
7
  circuitbox (~> 2.0.0)
@@ -2,8 +2,8 @@
2
2
 
3
3
  module Alchemrest
4
4
  class Data
5
- def self.schema
6
- include Alchemrest::Data::Schema.new(**(yield Alchemrest::Transforms))
5
+ def self.schema(&)
6
+ include Schema.new(**(yield Transforms))
7
7
  end
8
8
  end
9
9
  end
@@ -5,7 +5,7 @@ module Alchemrest
5
5
  # we want to create, and block that can extract default parameters from an Alchemrest::Root. When we want to build an
6
6
  # instance of the request, call `build_request` and pass in the root as context, with any additional parameters.
7
7
  class RequestDefinition
8
- attr_reader :name
8
+ attr_reader :name, :request_class, :builder_block
9
9
 
10
10
  def initialize(name, request_class, &block)
11
11
  @name = name
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Alchemrest
4
- VERSION = "3.2.2"
4
+ VERSION = "3.3.0"
5
5
  end
@@ -3,28 +3,44 @@
3
3
 
4
4
  require 'active_support/core_ext/enumerable'
5
5
  require 'alchemrest'
6
+ require 'prism'
6
7
 
7
8
  module Tapioca
8
9
  module Dsl
9
10
  module Compilers
10
11
  # This compiler generates RBI files for classes that inherit from `Alchemrest::Root`.
11
12
  #
12
- # For example, given the following class:
13
+ # For example, given the following classes:
14
+ #
15
+ # class UpdateProfile < Alchemrest::Request
16
+ # extend T::Sig
17
+ #
18
+ # sig { params(id: Integer, name: String).void }
19
+ # def initialize(id:, name:)
20
+ # ...
21
+ # end
22
+ #
23
+ # returns Profile
24
+ # end
13
25
  #
14
26
  # class Root < Alchemrest::Root
15
- # define_request :get_profile, Requests::GetProfile
27
+ # define_request :update_profile, UpdateProfile do |request|
28
+ # request.defaults = { id: }
29
+ # end
16
30
  # end
17
31
  #
18
32
  # This compiler will generate an RBI file `root.rbi` with the following content:
19
33
  #
20
- # sig { params(params: T::Hash[Symbol, T.untyped]).returns(::Alchemrest::Result[::Profile]) }
21
- # def get_profile(params = {}); end
34
+ # sig { params(name: ::String, id: ::Integer).returns(::Alchemrest::Result[::Profile]) }
35
+ # def update_profile(name:, id: T.unsafe(nil)); end
22
36
  #
23
37
  class AlchemrestRoot < Tapioca::Dsl::Compiler
24
38
  extend T::Sig
25
39
 
26
40
  ConstantType = type_member { { upper: T.class_of(Alchemrest::Root) } }
27
41
 
42
+ KEYWORD_PARAM_TYPES = [RBI::KwParam, RBI::KwOptParam, RBI::KwRestParam].freeze
43
+
28
44
  sig { override.returns(T::Enumerable[Module]) }
29
45
  def self.gather_constants
30
46
  descendants_of(Alchemrest::Root)
@@ -36,7 +52,7 @@ module Tapioca
36
52
  constant.request_definitions.each do |name, definition|
37
53
  rbi.create_method(
38
54
  name.to_s,
39
- parameters: [create_opt_param('params', type: 'T::Hash[Symbol, T.untyped]', default: '{}')],
55
+ parameters: parameters_for(definition),
40
56
  return_type: return_type_for(definition),
41
57
  )
42
58
  end
@@ -45,6 +61,63 @@ module Tapioca
45
61
 
46
62
  private
47
63
 
64
+ sig { params(definition: Alchemrest::RequestDefinition).returns(T::Array[RBI::TypedParam]) }
65
+ def parameters_for(definition)
66
+ parameters = compile_method_parameters_to_rbi(definition.request_class.instance_method(:initialize))
67
+
68
+ if parameters.all? { |typed_param| KEYWORD_PARAM_TYPES.include?(typed_param.param.class) }
69
+ optional_keys = defaulted_keys_for(definition) || parameters.map { |typed_param| typed_param.param.name }
70
+ with_optional_keys(parameters, optional_keys)
71
+ else
72
+ [create_opt_param('params', type: 'T::Hash[Symbol, T.untyped]', default: '{}')]
73
+ end
74
+ end
75
+
76
+ sig { params(parameters: T::Array[RBI::TypedParam], optional_keys: T::Array[String]).returns(T::Array[RBI::TypedParam]) }
77
+ def with_optional_keys(parameters, optional_keys)
78
+ parameters = parameters.map do |typed_param|
79
+ param = typed_param.param
80
+
81
+ if param.is_a?(RBI::KwParam) && optional_keys.include?(param.name)
82
+ create_kw_opt_param(param.name, type: typed_param.type, default: 'T.unsafe(nil)')
83
+ else
84
+ typed_param
85
+ end
86
+ end
87
+
88
+ required, optional = parameters.partition { |typed_param| typed_param.param.is_a?(RBI::KwParam) }
89
+ required + optional
90
+ end
91
+
92
+ sig { params(definition: Alchemrest::RequestDefinition).returns(T.nilable(T::Array[String])) }
93
+ def defaulted_keys_for(definition)
94
+ if definition.builder_block
95
+ literal_defaults_keys(block_node_for(definition.builder_block))
96
+ else
97
+ []
98
+ end
99
+ end
100
+
101
+ sig { params(block_node: T.nilable(Prism::Node)).returns(T.nilable(T::Array[String])) }
102
+ def literal_defaults_keys(block_node)
103
+ case block_node
104
+ in { body: { body: [Prism::CallNode[name: :defaults=, arguments: { arguments: [Prism::HashNode[elements:]] }]] } }
105
+ symbol_keys = elements.grep(Prism::AssocNode).map(&:key).grep(Prism::SymbolNode)
106
+ symbol_keys.map(&:unescaped) if symbol_keys.size == elements.size
107
+ else
108
+ nil
109
+ end
110
+ end
111
+
112
+ sig { params(builder_block: Proc).returns(T.nilable(Prism::Node)) }
113
+ def block_node_for(builder_block)
114
+ file, line = builder_block.source_location
115
+
116
+ if file && File.exist?(file)
117
+ Prism.parse_file(file).value.breadth_first_search { |node| node.is_a?(Prism::BlockNode) && node.location.start_line == line }
118
+ end
119
+ end
120
+
48
121
  sig { params(definition: Alchemrest::RequestDefinition).returns(String) }
49
122
  def return_type_for(definition)
50
123
  transform = extract_transform(definition)
@@ -58,8 +131,7 @@ module Tapioca
58
131
 
59
132
  sig { params(definition: Alchemrest::RequestDefinition).returns(T.nilable(Alchemrest::Transforms::Typed)) }
60
133
  def extract_transform(definition)
61
- request_class = definition.instance_variable_get(:@request_class)
62
- returns_modules = request_class.ancestors.grep(Alchemrest::Request::Returns)
134
+ returns_modules = definition.request_class.ancestors.grep(Alchemrest::Request::Returns)
63
135
  returns_modules.sole.domain_type.const_get(:TRANSFORM) if returns_modules.one?
64
136
  end
65
137
  end
@@ -632,14 +632,17 @@ end
632
632
  module Concurrent::AtomicNumericCompareAndSetWrapper
633
633
  # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/numeric_cas_wrapper.rb#10
634
634
  def compare_and_set(old_value, new_value); end
635
+
636
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/numeric_cas_wrapper.rb#10
637
+ def compare_and_swap(old_value, new_value); end
635
638
  end
636
639
 
637
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb#126
640
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb#133
638
641
  class Concurrent::AtomicReference < ::Concurrent::MutexAtomicReference
639
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb#129
642
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb#136
640
643
  def inspect; end
641
644
 
642
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb#129
645
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb#136
643
646
  def to_s; end
644
647
  end
645
648
 
@@ -854,7 +857,7 @@ end
854
857
  # source://concurrent-ruby//lib/concurrent-ruby/concurrent/errors.rb#9
855
858
  class Concurrent::CancelledOperationError < ::Concurrent::Error; end
856
859
 
857
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/collection/timeout_queue.rb#2
860
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/map.rb#7
858
861
  module Concurrent::Collection; end
859
862
 
860
863
  # source://concurrent-ruby//lib/concurrent-ruby/concurrent/collection/copy_on_notify_observer_set.rb#12
@@ -2184,37 +2187,36 @@ class Concurrent::MutexAtomicReference
2184
2187
  include ::Concurrent::AtomicNumericCompareAndSetWrapper
2185
2188
  extend ::Concurrent::Synchronization::SafeInitialization
2186
2189
 
2187
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#16
2190
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#15
2188
2191
  def initialize(value = T.unsafe(nil)); end
2189
2192
 
2190
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#45
2191
- def _compare_and_set(old_value, new_value); end
2192
-
2193
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/numeric_cas_wrapper.rb#10
2194
- def compare_and_swap(old_value, new_value); end
2195
-
2196
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#23
2193
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#22
2197
2194
  def get; end
2198
2195
 
2199
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#35
2196
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#34
2200
2197
  def get_and_set(new_value); end
2201
2198
 
2202
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#29
2199
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#28
2203
2200
  def set(new_value); end
2204
2201
 
2205
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#35
2202
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#34
2206
2203
  def swap(new_value); end
2207
2204
 
2208
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#23
2205
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#22
2209
2206
  def value; end
2210
2207
 
2211
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#29
2208
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#28
2212
2209
  def value=(new_value); end
2213
2210
 
2214
2211
  protected
2215
2212
 
2216
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#59
2213
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#58
2217
2214
  def synchronize; end
2215
+
2216
+ private
2217
+
2218
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic_reference/mutex_atomic.rb#44
2219
+ def _compare_and_set(old_value, new_value); end
2218
2220
  end
2219
2221
 
2220
2222
  # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/mutex_count_down_latch.rb#9
@@ -3336,71 +3338,71 @@ module Concurrent::ReInclude
3336
3338
  def included(base); end
3337
3339
  end
3338
3340
 
3339
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#31
3341
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#32
3340
3342
  class Concurrent::ReadWriteLock < ::Concurrent::Synchronization::Object
3341
3343
  extend ::Concurrent::Synchronization::SafeInitialization
3342
3344
 
3343
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#59
3345
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#60
3344
3346
  def initialize; end
3345
3347
 
3346
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#111
3348
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#113
3347
3349
  def acquire_read_lock; end
3348
3350
 
3349
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#160
3351
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#166
3350
3352
  def acquire_write_lock; end
3351
3353
 
3352
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#214
3354
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#227
3353
3355
  def has_waiters?; end
3354
3356
 
3355
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#140
3357
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#144
3356
3358
  def release_read_lock; end
3357
3359
 
3358
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#196
3360
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#206
3359
3361
  def release_write_lock; end
3360
3362
 
3361
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#75
3363
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#77
3362
3364
  def with_read_lock; end
3363
3365
 
3364
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#94
3366
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#96
3365
3367
  def with_write_lock; end
3366
3368
 
3367
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#207
3369
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#220
3368
3370
  def write_locked?; end
3369
3371
 
3370
3372
  private
3371
3373
 
3372
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#246
3374
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#259
3373
3375
  def max_readers?(c = T.unsafe(nil)); end
3374
3376
 
3375
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#251
3377
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#264
3376
3378
  def max_writers?(c = T.unsafe(nil)); end
3377
3379
 
3378
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#221
3380
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#234
3379
3381
  def running_readers(c = T.unsafe(nil)); end
3380
3382
 
3381
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#226
3383
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#239
3382
3384
  def running_readers?(c = T.unsafe(nil)); end
3383
3385
 
3384
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#231
3386
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#244
3385
3387
  def running_writer?(c = T.unsafe(nil)); end
3386
3388
 
3387
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#241
3389
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#254
3388
3390
  def waiting_writer?(c = T.unsafe(nil)); end
3389
3391
 
3390
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#236
3392
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#249
3391
3393
  def waiting_writers(c = T.unsafe(nil)); end
3392
3394
  end
3393
3395
 
3394
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#40
3396
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#41
3395
3397
  Concurrent::ReadWriteLock::MAX_READERS = T.let(T.unsafe(nil), Integer)
3396
3398
 
3397
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#43
3399
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#44
3398
3400
  Concurrent::ReadWriteLock::MAX_WRITERS = T.let(T.unsafe(nil), Integer)
3399
3401
 
3400
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#37
3402
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#38
3401
3403
  Concurrent::ReadWriteLock::RUNNING_WRITER = T.let(T.unsafe(nil), Integer)
3402
3404
 
3403
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#34
3405
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/read_write_lock.rb#35
3404
3406
  Concurrent::ReadWriteLock::WAITING_WRITER = T.let(T.unsafe(nil), Integer)
3405
3407
 
3406
3408
  # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#53
@@ -3413,19 +3415,19 @@ class Concurrent::ReentrantReadWriteLock < ::Concurrent::Synchronization::Object
3413
3415
  # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#162
3414
3416
  def acquire_read_lock; end
3415
3417
 
3416
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#257
3418
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#264
3417
3419
  def acquire_write_lock; end
3418
3420
 
3419
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#236
3421
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#243
3420
3422
  def release_read_lock; end
3421
3423
 
3422
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#329
3424
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#336
3423
3425
  def release_write_lock; end
3424
3426
 
3425
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#215
3427
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#220
3426
3428
  def try_read_lock; end
3427
3429
 
3428
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#310
3430
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#317
3429
3431
  def try_write_lock; end
3430
3432
 
3431
3433
  # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#126
@@ -3436,25 +3438,25 @@ class Concurrent::ReentrantReadWriteLock < ::Concurrent::Synchronization::Object
3436
3438
 
3437
3439
  private
3438
3440
 
3439
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#370
3441
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#377
3440
3442
  def max_readers?(c = T.unsafe(nil)); end
3441
3443
 
3442
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#375
3444
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#382
3443
3445
  def max_writers?(c = T.unsafe(nil)); end
3444
3446
 
3445
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#345
3447
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#352
3446
3448
  def running_readers(c = T.unsafe(nil)); end
3447
3449
 
3448
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#350
3450
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#357
3449
3451
  def running_readers?(c = T.unsafe(nil)); end
3450
3452
 
3451
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#355
3453
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#362
3452
3454
  def running_writer?(c = T.unsafe(nil)); end
3453
3455
 
3454
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#365
3456
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#372
3455
3457
  def waiting_or_running_writer?(c = T.unsafe(nil)); end
3456
3458
 
3457
- # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#360
3459
+ # source://concurrent-ruby//lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb#367
3458
3460
  def waiting_writers(c = T.unsafe(nil)); end
3459
3461
  end
3460
3462