checkoff 0.200.0 → 0.203.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +130 -28
  3. data/.git-hooks/pre_commit/solargraph_typecheck.rb +12 -11
  4. data/.overcommit.yml +27 -2
  5. data/.rubocop.yml +20 -2
  6. data/.rubocop_todo.yml +90 -0
  7. data/.solargraph.yml +10 -1
  8. data/DEVELOPMENT.md +1 -1
  9. data/Gemfile +11 -8
  10. data/Gemfile.lock +66 -42
  11. data/LICENSE +1 -1
  12. data/Makefile +14 -12
  13. data/bin/brakeman +27 -0
  14. data/bin/overcommit_branch +117 -0
  15. data/bin/spoom +27 -0
  16. data/bin/srb +27 -0
  17. data/bin/srb-rbi +27 -0
  18. data/bin/tapioca +27 -0
  19. data/config/annotations_misc.rb +35 -0
  20. data/docs/cookiecutter_input.json +1 -0
  21. data/fix.sh +14 -6
  22. data/lib/checkoff/custom_fields.rb +3 -2
  23. data/lib/checkoff/internal/search_url/simple_param_converter.rb +11 -0
  24. data/lib/checkoff/version.rb +1 -1
  25. data/requirements_dev.txt +1 -1
  26. data/sorbet/config +4 -0
  27. data/sorbet/rbi/annotations/.gitattributes +1 -0
  28. data/sorbet/rbi/annotations/activesupport.rbi +453 -0
  29. data/sorbet/rbi/annotations/faraday.rbi +17 -0
  30. data/sorbet/rbi/annotations/minitest.rbi +119 -0
  31. data/sorbet/rbi/annotations/mocha.rbi +34 -0
  32. data/sorbet/rbi/annotations/rainbow.rbi +269 -0
  33. data/sorbet/rbi/annotations/webmock.rbi +9 -0
  34. data/sorbet/rbi/dsl/.gitattributes +1 -0
  35. data/sorbet/rbi/dsl/active_support/callbacks.rbi +23 -0
  36. data/sorbet/rbi/gems/.gitattributes +1 -0
  37. data/sorbet/rbi/gems/activesupport@7.1.3.rbi +18749 -0
  38. data/sorbet/rbi/gems/addressable@2.8.6.rbi +1994 -0
  39. data/sorbet/rbi/gems/ansi@1.5.0.rbi +688 -0
  40. data/sorbet/rbi/gems/asana@0.10.6-ab9393136d9ca59b75e42a661fdddc1c65c8f7c3.rbi +6142 -0
  41. data/sorbet/rbi/gems/ast@2.4.2.rbi +585 -0
  42. data/sorbet/rbi/gems/backport@1.2.0.rbi +523 -0
  43. data/sorbet/rbi/gems/base64@0.2.0.rbi +509 -0
  44. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +618 -0
  45. data/sorbet/rbi/gems/bigdecimal@3.1.5.rbi +78 -0
  46. data/sorbet/rbi/gems/builder@3.2.4.rbi +505 -0
  47. data/sorbet/rbi/gems/bump@0.10.0.rbi +169 -0
  48. data/sorbet/rbi/gems/cache@0.4.1.rbi +211 -0
  49. data/sorbet/rbi/gems/cache_method@0.2.7.rbi +293 -0
  50. data/sorbet/rbi/gems/chef-utils@18.3.0.rbi +9 -0
  51. data/sorbet/rbi/gems/childprocess@5.1.0.rbi +383 -0
  52. data/sorbet/rbi/gems/coderay@1.1.3.rbi +3427 -0
  53. data/sorbet/rbi/gems/concurrent-ruby@1.2.3.rbi +11591 -0
  54. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +9 -0
  55. data/sorbet/rbi/gems/crack@0.4.5.rbi +145 -0
  56. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +969 -0
  57. data/sorbet/rbi/gems/docile@1.4.0.rbi +377 -0
  58. data/sorbet/rbi/gems/drb@2.2.0.rbi +1347 -0
  59. data/sorbet/rbi/gems/e2mmap@0.1.0.rbi +9 -0
  60. data/sorbet/rbi/gems/erubi@1.13.0.rbi +152 -0
  61. data/sorbet/rbi/gems/faraday-em_http@1.0.0.rbi +222 -0
  62. data/sorbet/rbi/gems/faraday-em_synchrony@1.0.0.rbi +126 -0
  63. data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +136 -0
  64. data/sorbet/rbi/gems/faraday-httpclient@1.0.1.rbi +145 -0
  65. data/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi +259 -0
  66. data/sorbet/rbi/gems/faraday-net_http@1.0.1.rbi +142 -0
  67. data/sorbet/rbi/gems/faraday-net_http_persistent@1.2.0.rbi +118 -0
  68. data/sorbet/rbi/gems/faraday-patron@1.0.0.rbi +125 -0
  69. data/sorbet/rbi/gems/faraday-rack@1.0.0.rbi +133 -0
  70. data/sorbet/rbi/gems/faraday-retry@1.0.3.rbi +198 -0
  71. data/sorbet/rbi/gems/faraday@1.10.3.rbi +2729 -0
  72. data/sorbet/rbi/gems/faraday_middleware-multi_json@0.0.6.rbi +29 -0
  73. data/sorbet/rbi/gems/faraday_middleware@1.2.0.rbi +1004 -0
  74. data/sorbet/rbi/gems/gli@2.21.1.rbi +9 -0
  75. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +351 -0
  76. data/sorbet/rbi/gems/i18n@1.14.1.rbi +2326 -0
  77. data/sorbet/rbi/gems/imagen@0.1.8.rbi +340 -0
  78. data/sorbet/rbi/gems/iniparse@1.5.0.rbi +899 -0
  79. data/sorbet/rbi/gems/jaro_winkler@1.6.0.rbi +22 -0
  80. data/sorbet/rbi/gems/json@2.7.1.rbi +1562 -0
  81. data/sorbet/rbi/gems/jwt@2.7.1.rbi +1405 -0
  82. data/sorbet/rbi/gems/kramdown-parser-gfm@1.1.0.rbi +128 -0
  83. data/sorbet/rbi/gems/kramdown@2.4.0.rbi +3272 -0
  84. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +14238 -0
  85. data/sorbet/rbi/gems/logger@1.6.1.rbi +920 -0
  86. data/sorbet/rbi/gems/mdl@0.13.0.rbi +445 -0
  87. data/sorbet/rbi/gems/method_source@1.0.0.rbi +273 -0
  88. data/sorbet/rbi/gems/mime-types-data@3.2023.1205.rbi +127 -0
  89. data/sorbet/rbi/gems/mime-types@3.5.1.rbi +1252 -0
  90. data/sorbet/rbi/gems/minitest-profile@0.0.2.rbi +136 -0
  91. data/sorbet/rbi/gems/minitest-reporters@1.6.1.rbi +1014 -0
  92. data/sorbet/rbi/gems/minitest@5.21.1.rbi +1539 -0
  93. data/sorbet/rbi/gems/mixlib-cli@2.1.8.rbi +314 -0
  94. data/sorbet/rbi/gems/mixlib-config@3.0.27.rbi +581 -0
  95. data/sorbet/rbi/gems/mixlib-shellout@3.2.7.rbi +629 -0
  96. data/sorbet/rbi/gems/mocha@2.1.0.rbi +12 -0
  97. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +268 -0
  98. data/sorbet/rbi/gems/multi_xml@0.6.0.rbi +102 -0
  99. data/sorbet/rbi/gems/multipart-post@2.3.0.rbi +234 -0
  100. data/sorbet/rbi/gems/mutex_m@0.2.0.rbi +94 -0
  101. data/sorbet/rbi/gems/netrc@0.11.0.rbi +159 -0
  102. data/sorbet/rbi/gems/nokogiri@1.16.7.rbi +7311 -0
  103. data/sorbet/rbi/gems/oauth2@1.4.11.rbi +833 -0
  104. data/sorbet/rbi/gems/ostruct@0.6.1.rbi +354 -0
  105. data/sorbet/rbi/gems/overcommit@0.64.0.rbi +2400 -0
  106. data/sorbet/rbi/gems/parallel@1.23.0.rbi +274 -0
  107. data/sorbet/rbi/gems/parser@3.2.2.4.rbi +7253 -0
  108. data/sorbet/rbi/gems/prism@1.2.0.rbi +39085 -0
  109. data/sorbet/rbi/gems/pry@0.14.2.rbi +10070 -0
  110. data/sorbet/rbi/gems/public_suffix@5.0.4.rbi +936 -0
  111. data/sorbet/rbi/gems/punchlist@1.3.2.rbi +173 -0
  112. data/sorbet/rbi/gems/racc@1.7.3.rbi +162 -0
  113. data/sorbet/rbi/gems/rack@3.0.8.rbi +5184 -0
  114. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +403 -0
  115. data/sorbet/rbi/gems/rake@13.1.0.rbi +3022 -0
  116. data/sorbet/rbi/gems/rbi@0.2.1.rbi +4535 -0
  117. data/sorbet/rbi/gems/rbs@2.8.4.rbi +5613 -0
  118. data/sorbet/rbi/gems/regexp_parser@2.8.3.rbi +3750 -0
  119. data/sorbet/rbi/gems/reverse_markdown@2.1.1.rbi +390 -0
  120. data/sorbet/rbi/gems/rexml@3.2.6.rbi +4888 -0
  121. data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +7061 -0
  122. data/sorbet/rbi/gems/rubocop-minitest@0.34.5.rbi +2577 -0
  123. data/sorbet/rbi/gems/rubocop-performance@1.20.2.rbi +3262 -0
  124. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +329 -0
  125. data/sorbet/rbi/gems/rubocop@1.59.0.rbi +57238 -0
  126. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +1318 -0
  127. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +9 -0
  128. data/sorbet/rbi/gems/rugged@1.6.3.rbi +1577 -0
  129. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +217 -0
  130. data/sorbet/rbi/gems/simplecov-lcov@0.8.0.rbi +256 -0
  131. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +2149 -0
  132. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +9 -0
  133. data/sorbet/rbi/gems/solargraph@0.50.1-904b9304770a59fac393c5cc3cad481e5bdf0fd8.rbi +9396 -0
  134. data/sorbet/rbi/gems/source_finder@3.2.1.rbi +317 -0
  135. data/sorbet/rbi/gems/spoom@1.5.0.rbi +4932 -0
  136. data/sorbet/rbi/gems/tapioca@0.16.4.rbi +3604 -0
  137. data/sorbet/rbi/gems/thor@1.3.2.rbi +4378 -0
  138. data/sorbet/rbi/gems/tilt@2.4.0.rbi +933 -0
  139. data/sorbet/rbi/gems/tomlrb@2.0.3.rbi +9 -0
  140. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +5918 -0
  141. data/sorbet/rbi/gems/undercover@0.5.0.rbi +433 -0
  142. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +66 -0
  143. data/sorbet/rbi/gems/webmock@3.19.1.rbi +1769 -0
  144. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +435 -0
  145. data/sorbet/rbi/gems/yard@0.9.34.rbi +18247 -0
  146. data/sorbet/rbi/todo.rbi +11 -0
  147. data/sorbet/tapioca/config.yml +13 -0
  148. data/sorbet/tapioca/require.rb +4 -0
  149. metadata +134 -3
@@ -169,6 +169,16 @@ module Checkoff
169
169
  raise "Teach me how to handle #{key} = #{values}"
170
170
  end
171
171
  end
172
+
173
+ # Handle 'searched_type' search url param
174
+ class SearchedType < SimpleParam
175
+ # @return [Array<String>]
176
+ def convert
177
+ return [] if single_value == 'task'
178
+
179
+ raise "Teach me how to handle #{key} = #{values}"
180
+ end
181
+ end
172
182
  end
173
183
 
174
184
  # Convert simple parameters - ones where the param name itself
@@ -205,6 +215,7 @@ module Checkoff
205
215
  'subtask' => SimpleParam::Subtask,
206
216
  'sort' => SimpleParam::Sort,
207
217
  'milestone' => SimpleParam::Milestone,
218
+ 'searched_type' => SimpleParam::SearchedType,
208
219
  }.freeze
209
220
 
210
221
  # https://developers.asana.com/docs/search-tasks-in-a-workspace
@@ -3,5 +3,5 @@
3
3
  # Command-line and gem client for Asana (unofficial)
4
4
  module Checkoff
5
5
  # Version of library
6
- VERSION = '0.200.0'
6
+ VERSION = '0.203.0'
7
7
  end
data/requirements_dev.txt CHANGED
@@ -1,2 +1,2 @@
1
1
  pip==23.3.1
2
- yamllint==1.29.0
2
+ yamllint==1.35.1
data/sorbet/config ADDED
@@ -0,0 +1,4 @@
1
+ --dir
2
+ .
3
+ --ignore=tmp/
4
+ --ignore=vendor/
@@ -0,0 +1 @@
1
+ **/*.rbi linguist-vendored=true
@@ -0,0 +1,453 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This file was pulled from a central RBI files repository.
5
+ # Please run `bin/tapioca annotations` to update it.
6
+
7
+ module ActiveSupport::Testing::Declarative
8
+ sig { params(name: String, block: T.proc.bind(T.untyped).void).void }
9
+ def test(name, &block); end
10
+ end
11
+
12
+ class ActiveSupport::EnvironmentInquirer
13
+ sig { returns(T::Boolean) }
14
+ def development?; end
15
+
16
+ sig { returns(T::Boolean) }
17
+ def production?; end
18
+
19
+ sig { returns(T::Boolean) }
20
+ def test?; end
21
+
22
+ # @method_missing: delegated to String through ActiveSupport::StringInquirer
23
+ sig { returns(T::Boolean) }
24
+ def staging?; end
25
+ end
26
+
27
+ module ActiveSupport::Testing::SetupAndTeardown::ClassMethods
28
+ sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.untyped).void)).void }
29
+ def setup(*args, &block); end
30
+
31
+ sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.untyped).void)).void }
32
+ def teardown(*args, &block); end
33
+ end
34
+
35
+ class ActiveSupport::TestCase
36
+ sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).void)).void }
37
+ def self.setup(*args, &block); end
38
+
39
+ sig { params(args: T.untyped, block: T.nilable(T.proc.bind(T.attached_class).void)).void }
40
+ def self.teardown(*args, &block); end
41
+
42
+ sig { params(name: String, block: T.proc.bind(T.attached_class).void).void }
43
+ def self.test(name, &block); end
44
+ end
45
+
46
+ class ActiveSupport::TimeWithZone
47
+ # @shim: Methods on ActiveSupport::TimeWithZone are delegated to `Time` using `method_missing
48
+ include ::DateAndTime::Zones
49
+
50
+ # @shim: Methods on ActiveSupport::TimeWithZone are delegated to `Time` using `method_missing
51
+ include ::DateAndTime::Calculations
52
+
53
+ sig { returns(FalseClass) }
54
+ def blank?; end
55
+
56
+ # @shim: since `present?` is always true, `presence` always returns `self`
57
+ sig { returns(T.self_type) }
58
+ def presence; end
59
+
60
+ # @shim: since `blank?` is always false, `present?` always returns `true`
61
+ sig { returns(TrueClass) }
62
+ def present?; end
63
+ end
64
+
65
+ class Object
66
+ sig { returns(T::Boolean) }
67
+ def blank?; end
68
+
69
+ sig { returns(FalseClass) }
70
+ def html_safe?; end
71
+
72
+ sig { returns(T.nilable(T.self_type)) }
73
+ def presence; end
74
+
75
+ sig { params(another_object: T.untyped).returns(T.nilable(T.self_type)) }
76
+ def presence_in(another_object); end
77
+
78
+ sig { returns(T::Boolean) }
79
+ def present?; end
80
+ end
81
+
82
+ class Hash
83
+ sig { returns(T::Boolean) }
84
+ def blank?; end
85
+
86
+ sig { returns(T::Boolean) }
87
+ def present?; end
88
+
89
+ sig { returns(T::Boolean) }
90
+ def extractable_options?; end
91
+ end
92
+
93
+ class Array
94
+ sig { returns(T::Boolean) }
95
+ def blank?; end
96
+
97
+ sig { returns(T::Boolean) }
98
+ def present?; end
99
+
100
+ sig { params(position: Integer).returns(T.self_type) }
101
+ def from(position); end
102
+
103
+ sig { params(position: Integer).returns(T.self_type) }
104
+ def to(position); end
105
+
106
+ sig { params(elements: T.untyped).returns(T::Array[T.untyped]) }
107
+ def including(*elements); end
108
+
109
+ sig { params(elements: T.untyped).returns(T.self_type) }
110
+ def excluding(*elements); end
111
+
112
+ sig { params(elements: T.untyped).returns(T.self_type) }
113
+ def without(*elements); end
114
+
115
+ sig { returns(T.nilable(Elem)) }
116
+ def second; end
117
+
118
+ sig { returns(T.nilable(Elem)) }
119
+ def third; end
120
+
121
+ sig { returns(T.nilable(Elem)) }
122
+ def fourth; end
123
+
124
+ sig { returns(T.nilable(Elem)) }
125
+ def fifth; end
126
+
127
+ sig { returns(T.nilable(Elem)) }
128
+ def forty_two; end
129
+
130
+ sig { returns(T.nilable(Elem)) }
131
+ def third_to_last; end
132
+
133
+ sig { returns(T.nilable(Elem)) }
134
+ def second_to_last; end
135
+
136
+ sig { params(options: T::Hash[T.untyped, T.untyped]).returns(String) }
137
+ def to_sentence(options = {}); end
138
+
139
+ sig { params(format: Symbol).returns(String) }
140
+ def to_fs(format = :default); end
141
+
142
+ sig { params(format: Symbol).returns(String) }
143
+ def to_formatted_s(format = :default); end
144
+
145
+ sig { returns(String) }
146
+ def to_xml; end
147
+
148
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
149
+ def extract_options!; end
150
+
151
+ sig { type_parameters(:FillType).params(number: Integer, fill_with: T.type_parameter(:FillType), block: T.nilable(T.proc.params(group: T::Array[T.any(Elem, T.type_parameter(:FillType))]).void)).returns(T::Array[T::Array[T.any(Elem, T.type_parameter(:FillType))]]) }
152
+ def in_groups(number, fill_with = T.unsafe(nil), &block); end
153
+
154
+ sig { type_parameters(:FillType).params(number: Integer, fill_with: T.type_parameter(:FillType), block: T.nilable(T.proc.params(group: T::Array[T.any(Elem, T.type_parameter(:FillType))]).void)).returns(T::Array[T::Array[T.any(Elem, T.type_parameter(:FillType))]]) }
155
+ def in_groups_of(number, fill_with = T.unsafe(nil), &block); end
156
+
157
+ sig { params(value: T.untyped, block: T.nilable(T.proc.params(element: Elem).returns(T.untyped))).returns(T::Array[T::Array[Elem]]) }
158
+ def split(value = nil, &block); end
159
+
160
+ sig { params(block: T.nilable(T.proc.params(element: Elem).returns(T.untyped))).returns(T.any(T::Array[Elem], T::Enumerator[Elem])) }
161
+ def extract!(&block); end
162
+
163
+ sig { returns(ActiveSupport::ArrayInquirer) }
164
+ def inquiry; end
165
+
166
+ sig { params(object: T.untyped).returns(T::Array[T.untyped]) }
167
+ def self.wrap(object); end
168
+ end
169
+
170
+ class Date
171
+ sig { returns(FalseClass) }
172
+ def blank?; end
173
+
174
+ # @shim: since `present?` is always true, `presence` always returns `self`
175
+ sig { returns(T.self_type) }
176
+ def presence; end
177
+
178
+ # @shim: since `blank?` is always false, `present?` always returns `true`
179
+ sig { returns(TrueClass) }
180
+ def present?; end
181
+ end
182
+
183
+ class DateTime
184
+ sig { returns(FalseClass) }
185
+ def blank?; end
186
+
187
+ # @shim: since `present?` is always true, `presence` always returns `self`
188
+ sig { returns(T.self_type) }
189
+ def presence; end
190
+
191
+ # @shim: since `blank?` is always false, `present?` always returns `true`
192
+ sig { returns(TrueClass) }
193
+ def present?; end
194
+ end
195
+
196
+ class NilClass
197
+ sig { returns(TrueClass) }
198
+ def blank?; end
199
+
200
+ # @shim: since `present?` is always false, `presence` always returns `nil`
201
+ sig { returns(NilClass) }
202
+ def presence; end
203
+
204
+ # @shim: since `blank?` is always true, `present?` always returns `false`
205
+ sig { returns(FalseClass) }
206
+ def present?; end
207
+ end
208
+
209
+ class FalseClass
210
+ sig { returns(TrueClass) }
211
+ def blank?; end
212
+
213
+ # @shim: since `present?` is always false, `presence` always returns `nil`
214
+ sig { returns(NilClass) }
215
+ def presence; end
216
+
217
+ # @shim: since `blank?` is always true, `present?` always returns `false`
218
+ sig { returns(FalseClass) }
219
+ def present?; end
220
+ end
221
+
222
+ class TrueClass
223
+ sig { returns(FalseClass) }
224
+ def blank?; end
225
+
226
+ # @shim: since `present?` is always true, `presence` always returns `self`
227
+ sig { returns(T.self_type) }
228
+ def presence; end
229
+
230
+ # @shim: since `blank?` is always false, `present?` always returns `true`
231
+ sig { returns(TrueClass) }
232
+ def present?; end
233
+ end
234
+
235
+ class Numeric
236
+ sig { returns(FalseClass) }
237
+ def blank?; end
238
+
239
+ sig { returns(TrueClass) }
240
+ def html_safe?; end
241
+
242
+ # @shim: since `present?` is always true, `presence` always returns `self`
243
+ sig { returns(T.self_type) }
244
+ def presence; end
245
+
246
+ # @shim: since `blank?` is always false, `present?` always returns `true`
247
+ sig { returns(TrueClass) }
248
+ def present?; end
249
+ end
250
+
251
+ class Time
252
+ sig { returns(FalseClass) }
253
+ def blank?; end
254
+
255
+ # @shim: since `present?` is always true, `presence` always returns `self`
256
+ sig { returns(T.self_type) }
257
+ def presence; end
258
+
259
+ # @shim: since `blank?` is always false, `present?` always returns `true`
260
+ sig { returns(TrueClass) }
261
+ def present?; end
262
+
263
+ sig { returns(ActiveSupport::TimeZone) }
264
+ def self.zone; end
265
+
266
+ sig { returns(T.any(ActiveSupport::TimeWithZone, ::Time)) }
267
+ def self.current; end
268
+ end
269
+
270
+ class Symbol
271
+ sig { returns(T::Boolean) }
272
+ def blank?; end
273
+
274
+ sig { returns(T::Boolean) }
275
+ def present?; end
276
+
277
+ # alias for `#start_with?`
278
+ sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) }
279
+ def starts_with?(*string_or_regexp); end
280
+
281
+ # alias for `#end_with?`
282
+ sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) }
283
+ def ends_with?(*string_or_regexp); end
284
+ end
285
+
286
+ class String
287
+ sig { returns(TrueClass) }
288
+ def acts_like_string?; end
289
+
290
+ # This is the subset of `#[]` sigs that have just 1 parameter.
291
+ # https://github.com/sorbet/sorbet/blob/40ad87b4dc7be23fa00c1369ac9f927053c68907/rbi/core/string.rbi#L270-L303
292
+ sig { params(position: Integer).returns(T.nilable(String)) }
293
+ sig { params(position: T.any(T::Range[Integer], Regexp)).returns(T.nilable(String)) }
294
+ sig { params(position: String).returns(T.nilable(String)) }
295
+ def at(position); end
296
+
297
+ sig { returns(String) }
298
+ def as_json; end
299
+
300
+ sig { returns(T::Boolean) }
301
+ def blank?; end
302
+
303
+ sig { params(first_letter: Symbol).returns(String) }
304
+ def camelcase(first_letter = :upper); end
305
+
306
+ sig { params(first_letter: Symbol).returns(String) }
307
+ def camelize(first_letter = :upper); end
308
+
309
+ sig { returns(String) }
310
+ def classify; end
311
+
312
+ sig { returns(T.untyped) }
313
+ def constantize; end
314
+
315
+ sig { returns(String) }
316
+ def dasherize; end
317
+
318
+ sig { returns(String) }
319
+ def deconstantize; end
320
+
321
+ sig { returns(String) }
322
+ def demodulize; end
323
+
324
+ # alias for `#end_with?`
325
+ sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) }
326
+ def ends_with?(*string_or_regexp); end
327
+
328
+ sig { returns(String) }
329
+ def downcase_first; end
330
+
331
+ sig { params(string: String).returns(T::Boolean) }
332
+ def exclude?(string); end
333
+
334
+ sig { params(limit: Integer).returns(String) }
335
+ def first(limit = 1); end
336
+
337
+ sig { params(separate_class_name_and_id_with_underscore: T::Boolean).returns(String) }
338
+ def foreign_key(separate_class_name_and_id_with_underscore = true); end
339
+
340
+ sig { params(position: Integer).returns(String) }
341
+ def from(position); end
342
+
343
+ sig { returns(ActiveSupport::SafeBuffer) }
344
+ def html_safe; end
345
+
346
+ sig { params(capitalize: T::Boolean, keep_id_suffix: T::Boolean).returns(String) }
347
+ def humanize(capitalize: true, keep_id_suffix: false); end
348
+
349
+ sig { params(zone: T.nilable(T.any(ActiveSupport::TimeZone, String))).returns(T.any(ActiveSupport::TimeWithZone, Time)) }
350
+ def in_time_zone(zone = ::Time.zone); end
351
+
352
+ sig { params(amount: Integer, indent_string: T.nilable(String), indent_empty_lines: T::Boolean).returns(String) }
353
+ def indent(amount, indent_string = nil, indent_empty_lines = false); end
354
+
355
+ sig { params(amount: Integer, indent_string: T.nilable(String), indent_empty_lines: T::Boolean).returns(T.nilable(String)) }
356
+ def indent!(amount, indent_string = nil, indent_empty_lines = false); end
357
+
358
+ sig { returns(ActiveSupport::StringInquirer) }
359
+ def inquiry; end
360
+
361
+ sig { returns(T::Boolean) }
362
+ def is_utf8?; end
363
+
364
+ sig { params(limit: Integer).returns(String) }
365
+ def last(limit = 1); end
366
+
367
+ sig { returns(ActiveSupport::Multibyte::Chars) }
368
+ def mb_chars; end
369
+
370
+ sig { params(separator: String, preserve_case: T::Boolean, locale: T.nilable(Symbol)).returns(String) }
371
+ def parameterize(separator: "-", preserve_case: false, locale: nil); end
372
+
373
+ sig { params(count: T.nilable(T.any(Integer, Symbol)), locale: T.nilable(Symbol)).returns(String) }
374
+ def pluralize(count = nil, locale = :en); end
375
+
376
+ sig { returns(T::Boolean) }
377
+ def present?; end
378
+
379
+ sig { params(patterns: T.any(String, Regexp)).returns(String) }
380
+ def remove(*patterns); end
381
+
382
+ sig { params(patterns: T.any(String, Regexp)).returns(String) }
383
+ def remove!(*patterns); end
384
+
385
+ sig { returns(T.untyped) }
386
+ def safe_constantize; end
387
+
388
+ sig { params(locale: Symbol).returns(String) }
389
+ def singularize(locale = :en); end
390
+
391
+ sig { returns(String) }
392
+ def squish; end
393
+
394
+ sig { returns(String) }
395
+ def squish!; end
396
+
397
+ # alias for `#start_with?`
398
+ sig { params(string_or_regexp: T.any(String, Regexp)).returns(T::Boolean) }
399
+ def starts_with?(*string_or_regexp); end
400
+
401
+ sig { returns(String) }
402
+ def strip_heredoc; end
403
+
404
+ sig { returns(String) }
405
+ def tableize; end
406
+
407
+ sig { params(keep_id_suffix: T::Boolean).returns(String) }
408
+ def titlecase(keep_id_suffix: false); end
409
+
410
+ sig { params(keep_id_suffix: T::Boolean).returns(String) }
411
+ def titleize(keep_id_suffix: false); end
412
+
413
+ sig { params(position: Integer).returns(String) }
414
+ def to(position); end
415
+
416
+ sig { returns(::Date) }
417
+ def to_date; end
418
+
419
+ sig { returns(::DateTime) }
420
+ def to_datetime; end
421
+
422
+ sig { params(form: T.nilable(Symbol)).returns(T.nilable(Time)) }
423
+ def to_time(form = :local); end
424
+
425
+ sig { params(truncate_to: Integer, options: T::Hash[Symbol, T.anything]).returns(String) }
426
+ def truncate(truncate_to, options = {}); end
427
+
428
+ sig { params(truncate_to: Integer, omission: T.nilable(String)).returns(String) }
429
+ def truncate_bytes(truncate_to, omission: "…"); end
430
+
431
+ sig { params(words_count: Integer, options: T::Hash[Symbol, T.anything]).returns(String) }
432
+ def truncate_words(words_count, options = {}); end
433
+
434
+ sig { returns(String) }
435
+ def underscore; end
436
+
437
+ sig { returns(String) }
438
+ def upcase_first; end
439
+ end
440
+
441
+ class ActiveSupport::ErrorReporter
442
+ # @version >= 7.1.0.beta1
443
+ sig { type_parameters(:Block, :Fallback).params(error_classes: T.class_of(Exception), severity: T.nilable(Symbol), context: T.nilable(T::Hash[Symbol, T.untyped]), fallback: T.nilable(T.proc.returns(T.type_parameter(:Fallback))), source: T.nilable(String), blk: T.proc.returns(T.type_parameter(:Block))).returns(T.any(T.type_parameter(:Block), T.type_parameter(:Fallback))) }
444
+ def handle(*error_classes, severity: T.unsafe(nil), context: T.unsafe(nil), fallback: T.unsafe(nil), source: T.unsafe(nil), &blk); end
445
+
446
+ # @version >= 7.1.0.beta1
447
+ sig { type_parameters(:Block).params(error_classes: T.class_of(Exception), severity: T.nilable(Symbol), context: T.nilable(T::Hash[Symbol, T.untyped]), source: T.nilable(String), blk: T.proc.returns(T.type_parameter(:Block))).returns(T.type_parameter(:Block)) }
448
+ def record(*error_classes, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil), &blk); end
449
+
450
+ # @version >= 7.1.0.beta1
451
+ sig { params(error: Exception, handled: T::Boolean, severity: T.nilable(Symbol), context: T::Hash[Symbol, T.untyped], source: T.nilable(String)).void }
452
+ def report(error, handled: true, severity: T.unsafe(nil), context: T.unsafe(nil), source: T.unsafe(nil)); end
453
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This file was pulled from a central RBI files repository.
5
+ # Please run `bin/tapioca annotations` to update it.
6
+
7
+ module Faraday
8
+ class << self
9
+ sig { params(url: T.untyped, options: T::Hash[Symbol, T.untyped], block: T.nilable(T.proc.params(connection: Faraday::Connection).void)).returns(Faraday::Connection) }
10
+ def new(url = nil, options = {}, &block); end
11
+ end
12
+ end
13
+
14
+ class Faraday::Response
15
+ sig { returns(T::Boolean) }
16
+ def success?; end
17
+ end
@@ -0,0 +1,119 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This file was pulled from a central RBI files repository.
5
+ # Please run `bin/tapioca annotations` to update it.
6
+
7
+ module Minitest::Assertions
8
+ sig { params(test: T.anything, msg: T.anything).returns(TrueClass) }
9
+ def assert(test, msg = nil); end
10
+
11
+ sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
12
+ def assert_empty(obj, msg = nil); end
13
+
14
+ sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
15
+ def assert_equal(exp, act, msg = nil); end
16
+
17
+ sig { params(exp: T.anything, act: T.anything, delta: Numeric, msg: T.anything).returns(TrueClass) }
18
+ def assert_in_delta(exp, act, delta = T.unsafe(nil), msg = nil); end
19
+
20
+ sig { params(a: T.anything, b: T.anything, epsilon: Numeric, msg: T.anything).returns(TrueClass) }
21
+ def assert_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = nil); end
22
+
23
+ sig { params(collection: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
24
+ def assert_includes(collection, obj, msg = nil); end
25
+
26
+ sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
27
+ def assert_instance_of(cls, obj, msg = nil); end
28
+
29
+ sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
30
+ def assert_kind_of(cls, obj, msg = nil); end
31
+
32
+ sig { params(matcher: T.any(String, Regexp), obj: T.anything, msg: T.anything).returns(MatchData) }
33
+ def assert_match(matcher, obj, msg = nil); end
34
+
35
+ sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
36
+ def assert_nil(obj, msg = nil); end
37
+
38
+ sig { params(o1: T.anything, op: T.any(Symbol, String), o2: T.anything, msg: T.anything).returns(TrueClass) }
39
+ def assert_operator(o1, op, o2 = T.unsafe(nil), msg = nil); end
40
+
41
+ sig { params(stdout: T.nilable(T.any(String, Regexp)), stderr: T.nilable(T.any(String, Regexp)), block: T.proc.void).returns(T::Boolean) }
42
+ def assert_output(stdout = nil, stderr = nil, &block); end
43
+
44
+ sig { params(path: T.any(String, Pathname), msg: T.anything).returns(TrueClass) }
45
+ def assert_path_exists(path, msg = nil); end
46
+
47
+ sig { params(block: T.proc.void).returns(TrueClass) }
48
+ def assert_pattern(&block); end
49
+
50
+ sig { params(o1: T.anything, op: T.any(String, Symbol), msg: T.anything).returns(TrueClass) }
51
+ def assert_predicate(o1, op, msg = nil); end
52
+
53
+ sig { params(exp: NilClass, block: T.proc.void).returns(StandardError) }
54
+ sig { type_parameters(:T).params(exp: T.any(T::Class[T.type_parameter(:T)], Regexp, String), block: T.proc.void).returns(T.type_parameter(:T)) }
55
+ def assert_raises(*exp, &block); end
56
+
57
+ sig { params(obj: T.anything, meth: T.any(String, Symbol), msg: T.anything, include_all: T::Boolean).returns(TrueClass) }
58
+ def assert_respond_to(obj, meth, msg = nil, include_all: false); end
59
+
60
+ sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
61
+ def assert_same(exp, act, msg = nil); end
62
+
63
+ sig { params(send_ary: T::Array[T.anything], m: T.anything).returns(T::Boolean) }
64
+ def assert_send(send_ary, m = nil); end
65
+
66
+ sig { params(block: T.proc.void).returns(T::Boolean) }
67
+ def assert_silent(&block); end
68
+
69
+ sig { params(sym: Symbol, msg: T.anything, block: T.proc.void).returns(T.anything) }
70
+ def assert_throws(sym, msg = nil, &block); end
71
+
72
+ sig { params(test: T.anything, msg: T.anything).returns(TrueClass) }
73
+ def refute(test, msg = nil); end
74
+
75
+ sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
76
+ def refute_empty(obj, msg = nil); end
77
+
78
+ sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
79
+ def refute_equal(exp, act, msg = nil); end
80
+
81
+ sig { params(exp: T.anything, act: T.anything, delta: Numeric, msg: T.anything).returns(TrueClass) }
82
+ def refute_in_delta(exp, act, delta = T.unsafe(nil), msg = nil); end
83
+
84
+ sig { params(a: T.anything, b: T.anything, epsilon: Numeric, msg: T.anything).returns(TrueClass) }
85
+ def refute_in_epsilon(a, b, epsilon = T.unsafe(nil), msg = nil); end
86
+
87
+ sig { params(collection: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
88
+ def refute_includes(collection, obj, msg = nil); end
89
+
90
+ sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
91
+ def refute_instance_of(cls, obj, msg = nil); end
92
+
93
+ sig { params(cls: T.anything, obj: T.anything, msg: T.anything).returns(TrueClass) }
94
+ def refute_kind_of(cls, obj, msg = nil); end
95
+
96
+ sig { params(matcher: T.any(String, Regexp), obj: T.anything, msg: T.anything).returns(TrueClass) }
97
+ def refute_match(matcher, obj, msg = nil); end
98
+
99
+ sig { params(obj: T.anything, msg: T.anything).returns(TrueClass) }
100
+ def refute_nil(obj, msg = nil); end
101
+
102
+ sig { params(block: T.proc.void).returns(TrueClass) }
103
+ def refute_pattern(&block); end
104
+
105
+ sig { params(o1: T.anything, op: T.any(Symbol, String), o2: T.anything, msg: T.anything).returns(TrueClass) }
106
+ def refute_operator(o1, op, o2 = T.unsafe(nil), msg = nil); end
107
+
108
+ sig { params(path: T.any(String, Pathname), msg: T.anything).returns(TrueClass) }
109
+ def refute_path_exists(path, msg = nil); end
110
+
111
+ sig { params(o1: T.anything, op: T.any(String, Symbol), msg: T.anything).returns(TrueClass) }
112
+ def refute_predicate(o1, op, msg = nil); end
113
+
114
+ sig { params(obj: T.anything, meth: T.any(String, Symbol), msg: T.anything, include_all: T::Boolean).returns(TrueClass) }
115
+ def refute_respond_to(obj, meth, msg = nil, include_all: false); end
116
+
117
+ sig { params(exp: T.anything, act: T.anything, msg: T.anything).returns(TrueClass) }
118
+ def refute_same(exp, act, msg = nil); end
119
+ end
@@ -0,0 +1,34 @@
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This file was pulled from a central RBI files repository.
5
+ # Please run `bin/tapioca annotations` to update it.
6
+
7
+ module Mocha::API
8
+ sig { params(arguments: T.untyped).returns(Mocha::Mock) }
9
+ def mock(*arguments); end
10
+
11
+ sig { params(arguments: T.untyped).returns(T.untyped) }
12
+ def stub(*arguments); end
13
+ end
14
+
15
+ module Mocha::ClassMethods
16
+ sig { returns(Mocha::Mock) }
17
+ def any_instance; end
18
+ end
19
+
20
+ class Mocha::Expectation
21
+ sig { params(expected_parameters_or_matchers: T.untyped, kwargs: T.untyped, matching_block: T.nilable(T.proc.params(actual_parameters: T.untyped).void)).returns(Mocha::Expectation) }
22
+ def with(*expected_parameters_or_matchers, **kwargs, &matching_block); end
23
+
24
+ sig { params(values: T.untyped).returns(Mocha::Expectation) }
25
+ def returns(*values); end
26
+ end
27
+
28
+ module Mocha::ObjectMethods
29
+ sig { params(expected_methods_vs_return_values: T.untyped).returns(Mocha::Expectation) }
30
+ def expects(expected_methods_vs_return_values); end
31
+
32
+ sig { params(stubbed_methods_vs_return_values: T.untyped).returns(Mocha::Expectation) }
33
+ def stubs(stubbed_methods_vs_return_values); end
34
+ end