twirbet 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +3 -0
  3. data/.rubocop.yml +20 -0
  4. data/CHANGELOG.md +5 -0
  5. data/Gemfile +28 -0
  6. data/Gemfile.lock +127 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +144 -0
  9. data/Rakefile +17 -0
  10. data/examples/clientcompat/client +28 -0
  11. data/examples/clientcompat/clientcompat.proto +29 -0
  12. data/examples/clientcompat/clientcompat_pb.rb +36 -0
  13. data/examples/clientcompat/clientcompat_twirbet.rb +57 -0
  14. data/examples/ping/Gemfile +11 -0
  15. data/examples/ping/Gemfile.lock +69 -0
  16. data/examples/ping/bin/puma +27 -0
  17. data/examples/ping/bin/pumactl +27 -0
  18. data/examples/ping/bin/srb +27 -0
  19. data/examples/ping/bin/srb-rbi +27 -0
  20. data/examples/ping/bin/tapioca +27 -0
  21. data/examples/ping/client.rb +14 -0
  22. data/examples/ping/config/application.rb +13 -0
  23. data/examples/ping/config/environment.rb +6 -0
  24. data/examples/ping/config.ru +8 -0
  25. data/examples/ping/proto/ping.proto +15 -0
  26. data/examples/ping/proto/ping_pb.rb +20 -0
  27. data/examples/ping/proto/ping_twirbet.rb +47 -0
  28. data/examples/ping/sorbet/config +4 -0
  29. data/examples/ping/sorbet/rbi/dsl/google/protobuf/descriptor_proto/extension_range.rbi +34 -0
  30. data/examples/ping/sorbet/rbi/dsl/google/protobuf/descriptor_proto/reserved_range.rbi +22 -0
  31. data/examples/ping/sorbet/rbi/dsl/google/protobuf/descriptor_proto.rbi +83 -0
  32. data/examples/ping/sorbet/rbi/dsl/google/protobuf/enum_descriptor_proto/enum_reserved_range.rbi +22 -0
  33. data/examples/ping/sorbet/rbi/dsl/google/protobuf/enum_descriptor_proto.rbi +48 -0
  34. data/examples/ping/sorbet/rbi/dsl/google/protobuf/enum_options.rbi +34 -0
  35. data/examples/ping/sorbet/rbi/dsl/google/protobuf/enum_value_descriptor_proto.rbi +34 -0
  36. data/examples/ping/sorbet/rbi/dsl/google/protobuf/enum_value_options.rbi +27 -0
  37. data/examples/ping/sorbet/rbi/dsl/google/protobuf/extension_range_options.rbi +20 -0
  38. data/examples/ping/sorbet/rbi/dsl/google/protobuf/field_descriptor_proto/label.rbi +22 -0
  39. data/examples/ping/sorbet/rbi/dsl/google/protobuf/field_descriptor_proto/type.rbi +37 -0
  40. data/examples/ping/sorbet/rbi/dsl/google/protobuf/field_descriptor_proto.rbi +90 -0
  41. data/examples/ping/sorbet/rbi/dsl/google/protobuf/field_options/c_type.rbi +22 -0
  42. data/examples/ping/sorbet/rbi/dsl/google/protobuf/field_options/js_type.rbi +22 -0
  43. data/examples/ping/sorbet/rbi/dsl/google/protobuf/field_options.rbi +69 -0
  44. data/examples/ping/sorbet/rbi/dsl/google/protobuf/file_descriptor_proto.rbi +97 -0
  45. data/examples/ping/sorbet/rbi/dsl/google/protobuf/file_descriptor_set.rbi +20 -0
  46. data/examples/ping/sorbet/rbi/dsl/google/protobuf/file_options/optimize_mode.rbi +22 -0
  47. data/examples/ping/sorbet/rbi/dsl/google/protobuf/file_options.rbi +160 -0
  48. data/examples/ping/sorbet/rbi/dsl/google/protobuf/generated_code_info/annotation.rbi +41 -0
  49. data/examples/ping/sorbet/rbi/dsl/google/protobuf/generated_code_info.rbi +20 -0
  50. data/examples/ping/sorbet/rbi/dsl/google/protobuf/map.rbi +12 -0
  51. data/examples/ping/sorbet/rbi/dsl/google/protobuf/message_options.rbi +48 -0
  52. data/examples/ping/sorbet/rbi/dsl/google/protobuf/method_descriptor_proto.rbi +55 -0
  53. data/examples/ping/sorbet/rbi/dsl/google/protobuf/method_options/idempotency_level.rbi +22 -0
  54. data/examples/ping/sorbet/rbi/dsl/google/protobuf/method_options.rbi +34 -0
  55. data/examples/ping/sorbet/rbi/dsl/google/protobuf/oneof_descriptor_proto.rbi +22 -0
  56. data/examples/ping/sorbet/rbi/dsl/google/protobuf/oneof_options.rbi +20 -0
  57. data/examples/ping/sorbet/rbi/dsl/google/protobuf/repeated_field.rbi +11 -0
  58. data/examples/ping/sorbet/rbi/dsl/google/protobuf/service_descriptor_proto.rbi +34 -0
  59. data/examples/ping/sorbet/rbi/dsl/google/protobuf/service_options.rbi +27 -0
  60. data/examples/ping/sorbet/rbi/dsl/google/protobuf/source_code_info/location.rbi +48 -0
  61. data/examples/ping/sorbet/rbi/dsl/google/protobuf/source_code_info.rbi +20 -0
  62. data/examples/ping/sorbet/rbi/dsl/google/protobuf/uninterpreted_option/name_part.rbi +22 -0
  63. data/examples/ping/sorbet/rbi/dsl/google/protobuf/uninterpreted_option.rbi +62 -0
  64. data/examples/ping/sorbet/rbi/dsl/ping/ping_request.rbi +16 -0
  65. data/examples/ping/sorbet/rbi/dsl/ping/ping_response.rbi +16 -0
  66. data/examples/ping/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  67. data/examples/ping/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +8 -0
  68. data/examples/ping/sorbet/rbi/gems/google-protobuf@3.21.12.rbi +1645 -0
  69. data/examples/ping/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  70. data/examples/ping/sorbet/rbi/gems/nio4r@2.5.8.rbi +8 -0
  71. data/examples/ping/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  72. data/examples/ping/sorbet/rbi/gems/parser@3.1.3.0.rbi +5076 -0
  73. data/examples/ping/sorbet/rbi/gems/puma@6.0.0.rbi +4177 -0
  74. data/examples/ping/sorbet/rbi/gems/rack@3.0.2.rbi +5016 -0
  75. data/examples/ping/sorbet/rbi/gems/rbi@0.0.16.rbi +3008 -0
  76. data/examples/ping/sorbet/rbi/gems/spoom@1.1.15.rbi +2383 -0
  77. data/examples/ping/sorbet/rbi/gems/tapioca@0.10.3.rbi +3032 -0
  78. data/examples/ping/sorbet/rbi/gems/thor@1.2.1.rbi +3919 -0
  79. data/examples/ping/sorbet/rbi/gems/twirbet@0.1.0.rbi +528 -0
  80. data/examples/ping/sorbet/rbi/gems/unparser@0.6.5.rbi +8 -0
  81. data/examples/ping/sorbet/rbi/gems/webrick@1.7.0.rbi +2498 -0
  82. data/examples/ping/sorbet/rbi/gems/yard-sorbet@0.7.0.rbi +391 -0
  83. data/examples/ping/sorbet/rbi/gems/yard@0.9.28.rbi +17022 -0
  84. data/examples/ping/sorbet/tapioca/config.yml +13 -0
  85. data/examples/ping/sorbet/tapioca/require.rb +5 -0
  86. data/lib/twirbet/client.rb +45 -0
  87. data/lib/twirbet/dsl.rb +84 -0
  88. data/lib/twirbet/encoding.rb +52 -0
  89. data/lib/twirbet/errors.rb +375 -0
  90. data/lib/twirbet/method.rb +34 -0
  91. data/lib/twirbet/service.rb +85 -0
  92. data/lib/twirbet/transport.rb +55 -0
  93. data/lib/twirbet/transports/fake_transport.rb +32 -0
  94. data/lib/twirbet/transports/net_http_transport.rb +20 -0
  95. data/lib/twirbet/version.rb +6 -0
  96. data/lib/twirbet.rb +11 -0
  97. data/sorbet/config +5 -0
  98. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  99. data/sorbet/rbi/custom/ping.rbi +23 -0
  100. data/sorbet/rbi/gems/ast@2.4.2.rbi +584 -0
  101. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +1064 -0
  102. data/sorbet/rbi/gems/google-protobuf@3.21.12.rbi +1645 -0
  103. data/sorbet/rbi/gems/json@2.6.3.rbi +1541 -0
  104. data/sorbet/rbi/gems/netrc@0.11.0.rbi +158 -0
  105. data/sorbet/rbi/gems/parallel@1.22.1.rbi +277 -0
  106. data/sorbet/rbi/gems/parser@3.1.3.0.rbi +6878 -0
  107. data/sorbet/rbi/gems/rack@3.0.2.rbi +5163 -0
  108. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +397 -0
  109. data/sorbet/rbi/gems/rake@13.0.6.rbi +2946 -0
  110. data/sorbet/rbi/gems/rbi@0.0.16.rbi +3008 -0
  111. data/sorbet/rbi/gems/regexp_parser@2.6.1.rbi +3126 -0
  112. data/sorbet/rbi/gems/rexml@3.2.5.rbi +4660 -0
  113. data/sorbet/rbi/gems/rspec-core@3.12.0.rbi +10492 -0
  114. data/sorbet/rbi/gems/rspec-expectations@3.12.1.rbi +7817 -0
  115. data/sorbet/rbi/gems/rspec-mocks@3.12.1.rbi +4994 -0
  116. data/sorbet/rbi/gems/rspec-support@3.12.0.rbi +1477 -0
  117. data/sorbet/rbi/gems/rspec@3.12.0.rbi +10 -0
  118. data/sorbet/rbi/gems/rubocop-ast@1.24.0.rbi +6790 -0
  119. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +354 -0
  120. data/sorbet/rbi/gems/rubocop-rspec@2.16.0.rbi +7650 -0
  121. data/sorbet/rbi/gems/rubocop-shopify@2.10.1.rbi +8 -0
  122. data/sorbet/rbi/gems/rubocop-sorbet@0.6.11.rbi +1014 -0
  123. data/sorbet/rbi/gems/rubocop@1.40.0.rbi +51560 -0
  124. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +1212 -0
  125. data/sorbet/rbi/gems/spoom@1.1.15.rbi +2383 -0
  126. data/sorbet/rbi/gems/tapioca@0.10.3.rbi +3032 -0
  127. data/sorbet/rbi/gems/thor@1.2.1.rbi +3950 -0
  128. data/sorbet/rbi/gems/unicode-display_width@2.3.0.rbi +46 -0
  129. data/sorbet/rbi/gems/unparser@0.6.5.rbi +4265 -0
  130. data/sorbet/rbi/gems/webrick@1.7.0.rbi +2498 -0
  131. data/sorbet/rbi/gems/yard-sorbet@0.7.0.rbi +391 -0
  132. data/sorbet/rbi/gems/yard@0.9.28.rbi +17033 -0
  133. data/sorbet/tapioca/config.yml +13 -0
  134. data/sorbet/tapioca/require.rb +4 -0
  135. data/twirbet.gemspec +36 -0
  136. metadata +223 -0
@@ -0,0 +1,528 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `twirbet` gem.
5
+ # Please instead update this file by running `bin/tapioca gem twirbet`.
6
+
7
+ # source://twirbet//lib/twirbet/method.rb#4
8
+ module Twirbet; end
9
+
10
+ # source://twirbet//lib/twirbet/errors.rb#216
11
+ class Twirbet::AbortedError < ::Twirbet::BaseError
12
+ # source://twirbet//lib/twirbet/errors.rb#220
13
+ sig { override.returns(::String) }
14
+ def code; end
15
+
16
+ # source://twirbet//lib/twirbet/errors.rb#225
17
+ sig { override.returns(::Integer) }
18
+ def status; end
19
+ end
20
+
21
+ # source://twirbet//lib/twirbet/errors.rb#146
22
+ class Twirbet::AlreadyExistsError < ::Twirbet::BaseError
23
+ # source://twirbet//lib/twirbet/errors.rb#150
24
+ sig { override.returns(::String) }
25
+ def code; end
26
+
27
+ # source://twirbet//lib/twirbet/errors.rb#155
28
+ sig { override.returns(::Integer) }
29
+ def status; end
30
+ end
31
+
32
+ # source://twirbet//lib/twirbet/errors.rb#132
33
+ class Twirbet::BadRouteError < ::Twirbet::BaseError
34
+ # source://twirbet//lib/twirbet/errors.rb#136
35
+ sig { override.returns(::String) }
36
+ def code; end
37
+
38
+ # source://twirbet//lib/twirbet/errors.rb#141
39
+ sig { override.returns(::Integer) }
40
+ def status; end
41
+ end
42
+
43
+ # @abstract It cannot be directly instantiated. Subclasses must implement the `abstract` methods below.
44
+ #
45
+ # source://twirbet//lib/twirbet/errors.rb#9
46
+ class Twirbet::BaseError < ::StandardError
47
+ abstract!
48
+
49
+ # source://twirbet//lib/twirbet/errors.rb#19
50
+ sig { params(message: ::String, metadata: T::Hash[::String, ::String]).void }
51
+ def initialize(message, metadata = T.unsafe(nil)); end
52
+
53
+ # @abstract
54
+ #
55
+ # source://twirbet//lib/twirbet/errors.rb#25
56
+ sig { abstract.returns(::String) }
57
+ def code; end
58
+
59
+ # source://twirbet//lib/twirbet/errors.rb#16
60
+ sig { returns(T::Hash[::String, ::String]) }
61
+ def metadata; end
62
+
63
+ # @abstract
64
+ #
65
+ # source://twirbet//lib/twirbet/errors.rb#29
66
+ sig { abstract.returns(::Integer) }
67
+ def status; end
68
+
69
+ # source://twirbet//lib/twirbet/errors.rb#43
70
+ sig(:final) { returns(T::Hash[::String, ::String]) }
71
+ def to_hash; end
72
+
73
+ # source://twirbet//lib/twirbet/errors.rb#38
74
+ sig(:final) { returns(::String) }
75
+ def to_json; end
76
+
77
+ # source://twirbet//lib/twirbet/errors.rb#33
78
+ sig(:final) { returns(::Rack::Response) }
79
+ def to_rack_response; end
80
+ end
81
+
82
+ # source://twirbet//lib/twirbet/errors.rb#48
83
+ class Twirbet::CanceledError < ::Twirbet::BaseError
84
+ # source://twirbet//lib/twirbet/errors.rb#52
85
+ sig { override.returns(::String) }
86
+ def code; end
87
+
88
+ # source://twirbet//lib/twirbet/errors.rb#57
89
+ sig { override.returns(::Integer) }
90
+ def status; end
91
+ end
92
+
93
+ # source://twirbet//lib/twirbet/client.rb#10
94
+ class Twirbet::Client
95
+ include ::Twirbet::DSL
96
+ extend ::Twirbet::DSL::ClassMethods
97
+
98
+ # source://twirbet//lib/twirbet/client.rb#24
99
+ sig { params(base_url: ::String, prefix: ::String, transport: ::Twirbet::Transport).void }
100
+ def initialize(base_url, prefix: T.unsafe(nil), transport: T.unsafe(nil)); end
101
+
102
+ # source://twirbet//lib/twirbet/client.rb#15
103
+ sig { returns(::String) }
104
+ def base_url; end
105
+
106
+ # @raise [ArgumentError]
107
+ #
108
+ # source://twirbet//lib/twirbet/client.rb#31
109
+ sig { params(method_name: ::String, request: T.untyped, headers: T::Hash[::String, ::String]).returns(T.untyped) }
110
+ def call(method_name, request, headers = T.unsafe(nil)); end
111
+
112
+ # source://twirbet//lib/twirbet/client.rb#18
113
+ sig { returns(::String) }
114
+ def prefix; end
115
+
116
+ # source://twirbet//lib/twirbet/client.rb#21
117
+ sig { returns(::Twirbet::Transport) }
118
+ def transport; end
119
+ end
120
+
121
+ # source://twirbet//lib/twirbet/dsl.rb#7
122
+ module Twirbet::DSL
123
+ requires_ancestor { Kernel }
124
+
125
+ mixes_in_class_methods ::Twirbet::DSL::ClassMethods
126
+
127
+ # source://twirbet//lib/twirbet/dsl.rb#75
128
+ sig { returns(::String) }
129
+ def full_name; end
130
+
131
+ # source://twirbet//lib/twirbet/dsl.rb#65
132
+ sig { returns(T.nilable(::String)) }
133
+ def package_name; end
134
+
135
+ # source://twirbet//lib/twirbet/dsl.rb#80
136
+ sig { params(name: ::String).returns(T.nilable(::Twirbet::Method)) }
137
+ def rpc(name); end
138
+
139
+ # source://twirbet//lib/twirbet/dsl.rb#70
140
+ sig { returns(::String) }
141
+ def service_name; end
142
+ end
143
+
144
+ # source://twirbet//lib/twirbet/dsl.rb#13
145
+ module Twirbet::DSL::ClassMethods
146
+ requires_ancestor { Kernel }
147
+
148
+ # source://twirbet//lib/twirbet/dsl.rb#42
149
+ sig { returns(::String) }
150
+ def full_name; end
151
+
152
+ # source://twirbet//lib/twirbet/dsl.rb#20
153
+ sig { params(name: T.nilable(::String)).void }
154
+ def package(name); end
155
+
156
+ # source://twirbet//lib/twirbet/dsl.rb#25
157
+ sig { returns(T.nilable(::String)) }
158
+ def package_name; end
159
+
160
+ # source://twirbet//lib/twirbet/dsl.rb#51
161
+ sig { params(name: ::String, request: ::Class, response: ::Class, ruby_method: ::Symbol).void }
162
+ def rpc(name, request, response, ruby_method:); end
163
+
164
+ # source://twirbet//lib/twirbet/dsl.rb#57
165
+ sig { returns(T::Hash[::String, ::Twirbet::Method]) }
166
+ def rpcs; end
167
+
168
+ # source://twirbet//lib/twirbet/dsl.rb#30
169
+ sig { params(name: ::String).void }
170
+ def service(name); end
171
+
172
+ # source://twirbet//lib/twirbet/dsl.rb#35
173
+ sig { returns(::String) }
174
+ def service_name; end
175
+ end
176
+
177
+ # source://twirbet//lib/twirbet/errors.rb#286
178
+ class Twirbet::DataLossError < ::Twirbet::BaseError
179
+ # source://twirbet//lib/twirbet/errors.rb#290
180
+ sig { override.returns(::String) }
181
+ def code; end
182
+
183
+ # source://twirbet//lib/twirbet/errors.rb#295
184
+ sig { override.returns(::Integer) }
185
+ def status; end
186
+ end
187
+
188
+ # source://twirbet//lib/twirbet/errors.rb#104
189
+ class Twirbet::DeadlineExceededError < ::Twirbet::BaseError
190
+ # source://twirbet//lib/twirbet/errors.rb#108
191
+ sig { override.returns(::String) }
192
+ def code; end
193
+
194
+ # source://twirbet//lib/twirbet/errors.rb#113
195
+ sig { override.returns(::Integer) }
196
+ def status; end
197
+ end
198
+
199
+ # source://twirbet//lib/twirbet/encoding.rb#5
200
+ module Twirbet::Encoding
201
+ class << self
202
+ # source://twirbet//lib/twirbet/encoding.rb#40
203
+ sig { params(object: T.untyped, klass: ::Class, content_type: ::String).returns(T.untyped) }
204
+ def decode(object, klass, content_type); end
205
+
206
+ # source://twirbet//lib/twirbet/encoding.rb#20
207
+ sig { params(request: ::Rack::Request).returns(T.untyped) }
208
+ def decode_request(request); end
209
+
210
+ # source://twirbet//lib/twirbet/encoding.rb#28
211
+ sig { params(object: T.untyped, content_type: ::String).returns(T.untyped) }
212
+ def encode(object, content_type); end
213
+
214
+ # source://twirbet//lib/twirbet/encoding.rb#15
215
+ sig { params(request: T.untyped, klass: ::Class).returns(T.untyped) }
216
+ def encode_request(request, klass); end
217
+
218
+ # source://twirbet//lib/twirbet/encoding.rb#10
219
+ sig { params(content_type: T.nilable(::String)).returns(T::Boolean) }
220
+ def supported?(content_type); end
221
+ end
222
+ end
223
+
224
+ # source://twirbet//lib/twirbet/errors.rb#300
225
+ module Twirbet::Error
226
+ class << self
227
+ # source://twirbet//lib/twirbet/errors.rb#370
228
+ sig { params(code: ::String, message: ::String).returns(::Twirbet::BaseError) }
229
+ def build(code, message); end
230
+
231
+ # source://twirbet//lib/twirbet/errors.rb#349
232
+ sig { params(exception: ::Exception).returns(::Twirbet::BaseError) }
233
+ def from_exception(exception); end
234
+
235
+ # source://twirbet//lib/twirbet/errors.rb#365
236
+ sig { params(hash: T::Hash[::String, ::String]).returns(::Twirbet::BaseError) }
237
+ def from_hash(hash); end
238
+
239
+ # source://twirbet//lib/twirbet/errors.rb#335
240
+ sig { params(status: ::Integer, reason: ::String, body: ::String).returns(::Twirbet::BaseError) }
241
+ def from_intermidate(status, reason, body); end
242
+
243
+ # source://twirbet//lib/twirbet/errors.rb#359
244
+ sig { params(json: ::String).returns(::Twirbet::BaseError) }
245
+ def from_json(json); end
246
+
247
+ # source://twirbet//lib/twirbet/errors.rb#328
248
+ sig { params(response: ::Twirbet::Transport::Response).returns(::Twirbet::BaseError) }
249
+ def from_response(response); end
250
+ end
251
+ end
252
+
253
+ # source://twirbet//lib/twirbet/errors.rb#303
254
+ Twirbet::Error::CODE_MAP = T.let(T.unsafe(nil), Hash)
255
+
256
+ # source://twirbet//lib/twirbet/errors.rb#202
257
+ class Twirbet::FailedPreconditionError < ::Twirbet::BaseError
258
+ # source://twirbet//lib/twirbet/errors.rb#206
259
+ sig { override.returns(::String) }
260
+ def code; end
261
+
262
+ # source://twirbet//lib/twirbet/errors.rb#211
263
+ sig { override.returns(::Integer) }
264
+ def status; end
265
+ end
266
+
267
+ # source://twirbet//lib/twirbet/errors.rb#258
268
+ class Twirbet::InternalError < ::Twirbet::BaseError
269
+ # source://twirbet//lib/twirbet/errors.rb#262
270
+ sig { override.returns(::String) }
271
+ def code; end
272
+
273
+ # source://twirbet//lib/twirbet/errors.rb#267
274
+ sig { override.returns(::Integer) }
275
+ def status; end
276
+ end
277
+
278
+ # source://twirbet//lib/twirbet/errors.rb#76
279
+ class Twirbet::InvalidArgumentError < ::Twirbet::BaseError
280
+ # source://twirbet//lib/twirbet/errors.rb#80
281
+ sig { override.returns(::String) }
282
+ def code; end
283
+
284
+ # source://twirbet//lib/twirbet/errors.rb#85
285
+ sig { override.returns(::Integer) }
286
+ def status; end
287
+ end
288
+
289
+ # source://twirbet//lib/twirbet/errors.rb#90
290
+ class Twirbet::MalformedError < ::Twirbet::BaseError
291
+ # source://twirbet//lib/twirbet/errors.rb#94
292
+ sig { override.returns(::String) }
293
+ def code; end
294
+
295
+ # source://twirbet//lib/twirbet/errors.rb#99
296
+ sig { override.returns(::Integer) }
297
+ def status; end
298
+ end
299
+
300
+ # source://twirbet//lib/twirbet/method.rb#5
301
+ class Twirbet::Method
302
+ include ::Comparable
303
+
304
+ # source://twirbet//lib/twirbet/method.rb#22
305
+ sig { params(name: ::String, request: ::Class, response: ::Class, ruby_method: ::Symbol).void }
306
+ def initialize(name, request, response, ruby_method:); end
307
+
308
+ # source://twirbet//lib/twirbet/method.rb#30
309
+ sig { params(other: T.untyped).returns(::Integer) }
310
+ def <=>(other); end
311
+
312
+ # source://twirbet//lib/twirbet/method.rb#10
313
+ sig { returns(::String) }
314
+ def name; end
315
+
316
+ # source://twirbet//lib/twirbet/method.rb#13
317
+ sig { returns(::Class) }
318
+ def request; end
319
+
320
+ # source://twirbet//lib/twirbet/method.rb#16
321
+ sig { returns(::Class) }
322
+ def response; end
323
+
324
+ # source://twirbet//lib/twirbet/method.rb#19
325
+ sig { returns(::Symbol) }
326
+ def ruby_method; end
327
+ end
328
+
329
+ # source://twirbet//lib/twirbet/errors.rb#118
330
+ class Twirbet::NotFoundError < ::Twirbet::BaseError
331
+ # source://twirbet//lib/twirbet/errors.rb#122
332
+ sig { override.returns(::String) }
333
+ def code; end
334
+
335
+ # source://twirbet//lib/twirbet/errors.rb#127
336
+ sig { override.returns(::Integer) }
337
+ def status; end
338
+ end
339
+
340
+ # source://twirbet//lib/twirbet/errors.rb#230
341
+ class Twirbet::OutOfRangeError < ::Twirbet::BaseError
342
+ # source://twirbet//lib/twirbet/errors.rb#234
343
+ sig { override.returns(::String) }
344
+ def code; end
345
+
346
+ # source://twirbet//lib/twirbet/errors.rb#239
347
+ sig { override.returns(::Integer) }
348
+ def status; end
349
+ end
350
+
351
+ # source://twirbet//lib/twirbet/errors.rb#160
352
+ class Twirbet::PermissionDeniedError < ::Twirbet::BaseError
353
+ # source://twirbet//lib/twirbet/errors.rb#164
354
+ sig { override.returns(::String) }
355
+ def code; end
356
+
357
+ # source://twirbet//lib/twirbet/errors.rb#169
358
+ sig { override.returns(::Integer) }
359
+ def status; end
360
+ end
361
+
362
+ # source://twirbet//lib/twirbet/errors.rb#188
363
+ class Twirbet::ResourceExhaustedError < ::Twirbet::BaseError
364
+ # source://twirbet//lib/twirbet/errors.rb#192
365
+ sig { override.returns(::String) }
366
+ def code; end
367
+
368
+ # source://twirbet//lib/twirbet/errors.rb#197
369
+ sig { override.returns(::Integer) }
370
+ def status; end
371
+ end
372
+
373
+ # source://twirbet//lib/twirbet/service.rb#10
374
+ class Twirbet::Service
375
+ include ::Twirbet::DSL
376
+ extend ::Twirbet::DSL::ClassMethods
377
+
378
+ # @return [Service] a new instance of Service
379
+ #
380
+ # source://twirbet//lib/twirbet/service.rb#17
381
+ def initialize(handler); end
382
+
383
+ # source://twirbet//lib/twirbet/service.rb#22
384
+ sig { params(env: T.untyped).returns(T.untyped) }
385
+ def call(env); end
386
+
387
+ # source://twirbet//lib/twirbet/service.rb#15
388
+ sig { returns(T.untyped) }
389
+ def handler; end
390
+
391
+ private
392
+
393
+ # source://twirbet//lib/twirbet/service.rb#38
394
+ sig { params(method: ::Twirbet::Method, request: ::Rack::Request).returns(T.untyped) }
395
+ def invoke_method(method, request); end
396
+
397
+ # @raise [BadRouteError]
398
+ #
399
+ # source://twirbet//lib/twirbet/service.rb#63
400
+ sig { params(request: ::Rack::Request).void }
401
+ def validate_content_type(request); end
402
+
403
+ # @raise [BadRouteError]
404
+ #
405
+ # source://twirbet//lib/twirbet/service.rb#56
406
+ sig { params(request: ::Rack::Request).void }
407
+ def validate_method(request); end
408
+
409
+ # @raise [BadRouteError]
410
+ #
411
+ # source://twirbet//lib/twirbet/service.rb#70
412
+ sig { params(request: ::Rack::Request).void }
413
+ def validate_path(request); end
414
+
415
+ # source://twirbet//lib/twirbet/service.rb#49
416
+ sig { params(request: ::Rack::Request).void }
417
+ def validate_request(request); end
418
+ end
419
+
420
+ # @abstract Subclasses must implement the `abstract` methods below.
421
+ #
422
+ # source://twirbet//lib/twirbet/transport.rb#5
423
+ module Twirbet::Transport
424
+ interface!
425
+
426
+ # @abstract
427
+ #
428
+ # source://twirbet//lib/twirbet/transport.rb#52
429
+ sig { abstract.params(request: ::Twirbet::Transport::Request).returns(::Twirbet::Transport::Response) }
430
+ def call(request); end
431
+ end
432
+
433
+ # source://twirbet//lib/twirbet/transport.rb#9
434
+ class Twirbet::Transport::Request
435
+ # source://twirbet//lib/twirbet/transport.rb#22
436
+ sig { params(url: ::String, body: ::String, headers: T::Hash[::String, ::String]).void }
437
+ def initialize(url, body, headers); end
438
+
439
+ # source://twirbet//lib/twirbet/transport.rb#16
440
+ sig { returns(::String) }
441
+ def body; end
442
+
443
+ # source://twirbet//lib/twirbet/transport.rb#19
444
+ sig { returns(T::Hash[::String, ::String]) }
445
+ def headers; end
446
+
447
+ # source://twirbet//lib/twirbet/transport.rb#13
448
+ sig { returns(::String) }
449
+ def url; end
450
+ end
451
+
452
+ # source://twirbet//lib/twirbet/transport.rb#29
453
+ class Twirbet::Transport::Response
454
+ # source://twirbet//lib/twirbet/transport.rb#42
455
+ sig { params(status: ::Integer, headers: T::Hash[::String, ::String], body: ::String).void }
456
+ def initialize(status, headers, body); end
457
+
458
+ # source://twirbet//lib/twirbet/transport.rb#39
459
+ sig { returns(::String) }
460
+ def body; end
461
+
462
+ # source://twirbet//lib/twirbet/transport.rb#36
463
+ sig { returns(T::Hash[::String, ::String]) }
464
+ def headers; end
465
+
466
+ # source://twirbet//lib/twirbet/transport.rb#33
467
+ sig { returns(::Integer) }
468
+ def status; end
469
+ end
470
+
471
+ # source://twirbet//lib/twirbet/transports/net_http_transport.rb#8
472
+ module Twirbet::Transports; end
473
+
474
+ # source://twirbet//lib/twirbet/transports/net_http_transport.rb#9
475
+ class Twirbet::Transports::NetHTTPTransport
476
+ include ::Twirbet::Transport
477
+
478
+ # source://twirbet//lib/twirbet/transports/net_http_transport.rb#14
479
+ sig { override.params(request: ::Twirbet::Transport::Request).returns(::Twirbet::Transport::Response) }
480
+ def call(request); end
481
+ end
482
+
483
+ # source://twirbet//lib/twirbet/errors.rb#174
484
+ class Twirbet::UnauthenticatedError < ::Twirbet::BaseError
485
+ # source://twirbet//lib/twirbet/errors.rb#178
486
+ sig { override.returns(::String) }
487
+ def code; end
488
+
489
+ # source://twirbet//lib/twirbet/errors.rb#183
490
+ sig { override.returns(::Integer) }
491
+ def status; end
492
+ end
493
+
494
+ # source://twirbet//lib/twirbet/errors.rb#272
495
+ class Twirbet::UnavailableError < ::Twirbet::BaseError
496
+ # source://twirbet//lib/twirbet/errors.rb#276
497
+ sig { override.returns(::String) }
498
+ def code; end
499
+
500
+ # source://twirbet//lib/twirbet/errors.rb#281
501
+ sig { override.returns(::Integer) }
502
+ def status; end
503
+ end
504
+
505
+ # source://twirbet//lib/twirbet/errors.rb#244
506
+ class Twirbet::UnimplementedError < ::Twirbet::BaseError
507
+ # source://twirbet//lib/twirbet/errors.rb#248
508
+ sig { override.returns(::String) }
509
+ def code; end
510
+
511
+ # source://twirbet//lib/twirbet/errors.rb#253
512
+ sig { override.returns(::Integer) }
513
+ def status; end
514
+ end
515
+
516
+ # source://twirbet//lib/twirbet/errors.rb#62
517
+ class Twirbet::UnknownError < ::Twirbet::BaseError
518
+ # source://twirbet//lib/twirbet/errors.rb#66
519
+ sig { override.returns(::String) }
520
+ def code; end
521
+
522
+ # source://twirbet//lib/twirbet/errors.rb#71
523
+ sig { override.returns(::Integer) }
524
+ def status; end
525
+ end
526
+
527
+ # source://twirbet//lib/twirbet/version.rb#5
528
+ Twirbet::VERSION = T.let(T.unsafe(nil), String)
@@ -0,0 +1,8 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `unparser` gem.
5
+ # Please instead update this file by running `bin/tapioca gem unparser`.
6
+
7
+ # THIS IS AN EMPTY RBI FILE.
8
+ # see https://github.com/Shopify/tapioca#manually-requiring-parts-of-a-gem