sorbet-rails 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (171) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +13 -1
  3. data/.travis.yml +2 -2
  4. data/Gemfile +1 -1
  5. data/README.md +79 -3
  6. data/lib/sorbet-rails.rb +5 -1
  7. data/lib/sorbet-rails/activerecord.rbi +27 -0
  8. data/lib/sorbet-rails/custom_finder_methods.rb +11 -0
  9. data/lib/sorbet-rails/helper_rbi_formatter.rb +33 -0
  10. data/lib/sorbet-rails/model_plugins/active_record_assoc.rb +91 -0
  11. data/lib/sorbet-rails/model_plugins/active_record_attribute.rb +111 -0
  12. data/lib/sorbet-rails/model_plugins/active_record_enum.rb +43 -0
  13. data/lib/sorbet-rails/model_plugins/active_record_finder_methods.rb +80 -0
  14. data/lib/sorbet-rails/model_plugins/active_record_named_scope.rb +28 -0
  15. data/lib/sorbet-rails/model_plugins/active_record_querying.rb +42 -0
  16. data/lib/sorbet-rails/model_plugins/active_relation_where_not.rb +28 -0
  17. data/lib/sorbet-rails/model_plugins/base.rb +33 -0
  18. data/lib/sorbet-rails/model_plugins/custom_finder_methods.rb +54 -0
  19. data/lib/sorbet-rails/model_plugins/enumerable_collections.rb +49 -0
  20. data/lib/sorbet-rails/model_plugins/plugins.rb +45 -0
  21. data/lib/sorbet-rails/model_rbi_formatter.rb +108 -362
  22. data/lib/sorbet-rails/model_utils.rb +45 -0
  23. data/lib/sorbet-rails/railtie.rb +1 -0
  24. data/lib/sorbet-rails/routes_rbi_formatter.rb +12 -3
  25. data/lib/sorbet-rails/tasks/rails_rbi.rake +36 -15
  26. data/lib/sorbet-rails/utils.rb +4 -0
  27. data/sorbet-rails.gemspec +4 -2
  28. data/spec/helper_rbi_formatter_spec.rb +13 -0
  29. data/spec/model_plugins_spec.rb +31 -0
  30. data/spec/model_rbi_formatter_spec.rb +5 -5
  31. data/spec/rake_rails_rbi_helpers_spec.rb +14 -0
  32. data/spec/routes_rbi_formatter_spec.rb +3 -3
  33. data/spec/sorbet_spec.rb +12 -16
  34. data/spec/support/rails_shared/app/controllers/application_controller.rb +1 -1
  35. data/spec/support/rails_shared/app/helpers/bar_helper.rb +2 -0
  36. data/spec/support/rails_shared/app/helpers/baz_helper.rb +2 -0
  37. data/spec/support/rails_shared/app/helpers/foo_helper.rb +2 -0
  38. data/spec/support/rails_shared/app/models/concerns/mythical.rb +10 -0
  39. data/spec/support/rails_shared/app/models/wand.rb +1 -0
  40. data/spec/support/rails_shared/config/initializers/sorbet_rails.rb +3 -0
  41. data/spec/support/rails_shared/lib/mythical_rbi_plugin.rb +16 -0
  42. data/spec/support/rails_shared/sorbet_test_cases.rb +5 -2
  43. data/spec/support/rails_shared/typed-override.yaml +2 -0
  44. data/spec/support/rails_symlinks/app/helpers +1 -0
  45. data/spec/support/rails_symlinks/config/initializers/sorbet_rails.rb +1 -0
  46. data/spec/support/rails_symlinks/lib/mythical_rbi_plugin.rb +1 -0
  47. data/spec/support/rails_symlinks/typed-override.yaml +1 -0
  48. data/spec/support/v4.2/Gemfile.lock +5 -0
  49. data/spec/support/v4.2/app/helpers +1 -0
  50. data/spec/support/v4.2/config/initializers/sorbet_rails.rb +1 -0
  51. data/spec/support/v4.2/config/routes.rb +0 -1
  52. data/spec/support/v4.2/lib/mythical_rbi_plugin.rb +1 -0
  53. data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1 -1
  54. data/spec/support/v4.2/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +1 -1
  55. data/spec/support/v4.2/typed-override.yaml +1 -0
  56. data/spec/support/v5.0/Gemfile.lock +5 -0
  57. data/spec/support/v5.0/app/helpers +1 -0
  58. data/spec/support/v5.0/config/initializers/sorbet_rails.rb +1 -0
  59. data/spec/support/v5.0/config/routes.rb +0 -1
  60. data/spec/support/v5.0/lib/mythical_rbi_plugin.rb +1 -0
  61. data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1 -1
  62. data/spec/support/v5.0/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +1 -1
  63. data/spec/support/v5.0/typed-override.yaml +1 -0
  64. data/spec/support/v5.1/Gemfile.lock +5 -0
  65. data/spec/support/v5.1/app/helpers +1 -0
  66. data/spec/support/v5.1/config/initializers/sorbet_rails.rb +1 -0
  67. data/spec/support/v5.1/lib/mythical_rbi_plugin.rb +1 -0
  68. data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1 -1
  69. data/spec/support/v5.1/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +1 -1
  70. data/spec/support/v5.1/typed-override.yaml +1 -0
  71. data/spec/support/v5.2-no-sorbet/Gemfile +0 -2
  72. data/spec/support/v5.2-no-sorbet/Gemfile.lock +7 -5
  73. data/spec/support/v5.2-no-sorbet/app/helpers +1 -0
  74. data/spec/support/v5.2-no-sorbet/config/initializers/sorbet_rails.rb +1 -0
  75. data/spec/support/v5.2-no-sorbet/lib/mythical_rbi_plugin.rb +1 -0
  76. data/spec/support/v5.2-no-sorbet/sorbet_test_cases.rb +1 -0
  77. data/spec/support/v5.2-no-sorbet/typed-override.yaml +1 -0
  78. data/spec/support/v5.2/Gemfile +0 -2
  79. data/spec/support/v5.2/Gemfile.lock +7 -5
  80. data/spec/support/v5.2/app/helpers +1 -0
  81. data/spec/support/v5.2/config/initializers/sorbet_rails.rb +1 -0
  82. data/spec/support/v5.2/lib/mythical_rbi_plugin.rb +1 -0
  83. data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1 -1
  84. data/spec/support/v5.2/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +1 -1
  85. data/spec/support/v5.2/typed-override.yaml +1 -0
  86. data/spec/support/v6.0/Gemfile +1 -3
  87. data/spec/support/v6.0/Gemfile.lock +61 -59
  88. data/spec/support/v6.0/app/helpers +1 -0
  89. data/spec/support/v6.0/config/initializers/sorbet_rails.rb +1 -0
  90. data/spec/support/v6.0/config/routes.rb +0 -1
  91. data/spec/support/v6.0/lib/mythical_rbi_plugin.rb +1 -0
  92. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activerecord/all/activerecord.rbi +1 -1
  93. data/spec/support/v6.0/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +1 -1
  94. data/spec/support/v6.0/typed-override.yaml +1 -0
  95. data/spec/test_data/v4.2/expected_helpers.rbi +17 -0
  96. data/spec/test_data/v4.2/expected_potion.rbi +259 -28
  97. data/spec/test_data/v4.2/expected_spell_book.rbi +278 -37
  98. data/spec/test_data/v4.2/expected_srb_tc_output.txt +1 -99
  99. data/spec/test_data/v4.2/expected_wand.rbi +345 -96
  100. data/spec/test_data/v4.2/expected_wizard.rbi +322 -76
  101. data/spec/test_data/v4.2/expected_wizard_wo_spellbook.rbi +322 -76
  102. data/spec/test_data/v5.0/expected_helpers.rbi +17 -0
  103. data/spec/test_data/v5.0/expected_internal_metadata.rbi +273 -37
  104. data/spec/test_data/v5.0/expected_potion.rbi +259 -28
  105. data/spec/test_data/v5.0/expected_schema_migration.rbi +264 -28
  106. data/spec/test_data/v5.0/expected_spell_book.rbi +278 -37
  107. data/spec/test_data/v5.0/expected_srb_tc_output.txt +1 -81
  108. data/spec/test_data/v5.0/expected_wand.rbi +341 -92
  109. data/spec/test_data/v5.0/expected_wizard.rbi +318 -72
  110. data/spec/test_data/v5.0/expected_wizard_wo_spellbook.rbi +318 -72
  111. data/spec/test_data/v5.1/expected_helpers.rbi +17 -0
  112. data/spec/test_data/v5.1/expected_internal_metadata.rbi +273 -37
  113. data/spec/test_data/v5.1/expected_potion.rbi +259 -28
  114. data/spec/test_data/v5.1/expected_schema_migration.rbi +264 -28
  115. data/spec/test_data/v5.1/expected_spell_book.rbi +278 -37
  116. data/spec/test_data/v5.1/expected_srb_tc_output.txt +1 -81
  117. data/spec/test_data/v5.1/expected_wand.rbi +341 -92
  118. data/spec/test_data/v5.1/expected_wizard.rbi +318 -72
  119. data/spec/test_data/v5.1/expected_wizard_wo_spellbook.rbi +318 -72
  120. data/spec/test_data/v5.2-no-sorbet/expected_attachment.rbi +265 -29
  121. data/spec/test_data/v5.2-no-sorbet/expected_blob.rbi +271 -35
  122. data/spec/test_data/v5.2-no-sorbet/expected_helpers.rbi +17 -0
  123. data/spec/test_data/v5.2-no-sorbet/expected_internal_metadata.rbi +273 -37
  124. data/spec/test_data/v5.2-no-sorbet/expected_potion.rbi +259 -28
  125. data/spec/test_data/v5.2-no-sorbet/expected_schema_migration.rbi +264 -28
  126. data/spec/test_data/v5.2-no-sorbet/expected_spell_book.rbi +278 -37
  127. data/spec/test_data/v5.2-no-sorbet/expected_srb_tc_output.txt +1 -81
  128. data/spec/test_data/v5.2-no-sorbet/expected_wand.rbi +351 -102
  129. data/spec/test_data/v5.2-no-sorbet/expected_wizard.rbi +318 -72
  130. data/spec/test_data/v5.2-no-sorbet/expected_wizard_wo_spellbook.rbi +318 -72
  131. data/spec/test_data/v5.2/expected_attachment.rbi +265 -29
  132. data/spec/test_data/v5.2/expected_blob.rbi +271 -35
  133. data/spec/test_data/v5.2/expected_helpers.rbi +17 -0
  134. data/spec/test_data/v5.2/expected_internal_metadata.rbi +273 -37
  135. data/spec/test_data/v5.2/expected_potion.rbi +259 -28
  136. data/spec/test_data/v5.2/expected_schema_migration.rbi +264 -28
  137. data/spec/test_data/v5.2/expected_spell_book.rbi +278 -37
  138. data/spec/test_data/v5.2/expected_srb_tc_output.txt +1 -81
  139. data/spec/test_data/v5.2/expected_wand.rbi +351 -102
  140. data/spec/test_data/v5.2/expected_wizard.rbi +318 -72
  141. data/spec/test_data/v5.2/expected_wizard_wo_spellbook.rbi +318 -72
  142. data/spec/test_data/v6.0/expected_attachment.rbi +265 -29
  143. data/spec/test_data/v6.0/expected_blob.rbi +271 -35
  144. data/spec/test_data/v6.0/expected_helpers.rbi +17 -0
  145. data/spec/test_data/v6.0/expected_internal_metadata.rbi +273 -37
  146. data/spec/test_data/v6.0/expected_potion.rbi +259 -28
  147. data/spec/test_data/v6.0/expected_schema_migration.rbi +264 -28
  148. data/spec/test_data/v6.0/expected_spell_book.rbi +278 -37
  149. data/spec/test_data/v6.0/expected_srb_tc_output.txt +1 -81
  150. data/spec/test_data/v6.0/expected_wand.rbi +351 -102
  151. data/spec/test_data/v6.0/expected_wizard.rbi +318 -72
  152. data/spec/test_data/v6.0/expected_wizard_wo_spellbook.rbi +318 -72
  153. metadata +120 -37
  154. data/lib/sorbet-rails/rbi/activerecord.rbi +0 -207
  155. data/spec/support/v4.2/app/helpers/application_helper.rb +0 -3
  156. data/spec/support/v4.2/sorbet/rbi/gems/sorbet-runtime.rbi +0 -647
  157. data/spec/support/v4.2/sorbet/rbi/hidden-definitions/errors.txt +0 -11998
  158. data/spec/support/v4.2/sorbet/rbi/hidden-definitions/hidden.rbi +0 -27774
  159. data/spec/support/v5.0/sorbet/rbi/gems/sorbet-runtime.rbi +0 -647
  160. data/spec/support/v5.0/sorbet/rbi/hidden-definitions/errors.txt +0 -10523
  161. data/spec/support/v5.0/sorbet/rbi/hidden-definitions/hidden.rbi +0 -24969
  162. data/spec/support/v5.1/sorbet/rbi/gems/sorbet-runtime.rbi +0 -647
  163. data/spec/support/v5.1/sorbet/rbi/hidden-definitions/errors.txt +0 -10226
  164. data/spec/support/v5.1/sorbet/rbi/hidden-definitions/hidden.rbi +0 -24635
  165. data/spec/support/v5.2/.ruby-version +0 -1
  166. data/spec/support/v5.2/sorbet/rbi/gems/sorbet-runtime.rbi +0 -644
  167. data/spec/support/v5.2/sorbet/rbi/hidden-definitions/errors.txt +0 -10046
  168. data/spec/support/v5.2/sorbet/rbi/hidden-definitions/hidden.rbi +0 -24424
  169. data/spec/support/v6.0/sorbet/rbi/gems/sorbet-runtime.rbi +0 -647
  170. data/spec/support/v6.0/sorbet/rbi/hidden-definitions/errors.txt +0 -12074
  171. data/spec/support/v6.0/sorbet/rbi/hidden-definitions/hidden.rbi +0 -28231
@@ -1,207 +0,0 @@
1
- # typed: strong
2
- class ActiveRecord::Relation
3
- extend T::Sig
4
- extend T::Generic
5
- include Enumerable
6
- include SorbetRails::CustomFinderMethods
7
-
8
- Elem = type_member(fixed: ActiveRecord::Base)
9
-
10
- sig { params(block: T.proc.params(e: Elem).void).void }
11
- def each(&block); end
12
-
13
- sig { params(level: T.nilable(Integer)).returns(T::Array[Elem]) }
14
- def flatten(level); end
15
-
16
- sig { returns(T::Array[Elem]) }
17
- def to_a; end
18
-
19
- # This is part of both FinderMethods & Enumerable module.
20
- # These methods would return 1 single element when there is no limit, and return an
21
- # array of element when there is a limit passed in.
22
- # The more common use case is to find 1 object. We use that as the default sig
23
- # and add custom first_n, last_n method for the cases that return an array
24
- sig { params(args: T.untyped).returns(Elem) }
25
- def find(*args); end
26
- sig { params(limit: T.nilable(Integer)).returns(T.nilable(Elem)) }
27
- def first(limit = nil); end
28
- sig { params(limit: T.nilable(Integer)).returns(T.nilable(Elem)) }
29
- def last(limit = nil); end
30
-
31
- # -- place here to avoid conflicts with sorbet generated gem rbi
32
- sig { params(conditions: T.untyped).returns(T::Boolean) }
33
- def exists?(conditions = nil); end
34
- sig { returns(T::Boolean) }
35
- def any?; end
36
- sig { returns(T::Boolean) }
37
- def many?; end
38
- sig { returns(T::Boolean) }
39
- def none?; end
40
- sig { returns(T::Boolean) }
41
- def one?; end
42
-
43
- # -- finder methods
44
- sig { returns(Elem) }
45
- def first!; end
46
- sig { returns(Elem) }
47
- def second!; end
48
- sig { returns(T.nilable(Elem)) }
49
- def second; end
50
- sig { returns(Elem) }
51
- def third!; end
52
- sig { returns(T.nilable(Elem)) }
53
- def third; end
54
- sig { returns(Elem) }
55
- def fourth!; end
56
- sig { returns(T.nilable(Elem)) }
57
- def fourth; end
58
- sig { returns(Elem) }
59
- def fifth!; end
60
- sig { returns(T.nilable(Elem)) }
61
- def fifth; end
62
-
63
- sig { returns(Elem) }
64
- def last!; end
65
- sig { returns(Elem) }
66
- def third_to_last!; end
67
- sig { returns(T.nilable(Elem)) }
68
- def third_to_last; end
69
- sig { returns(Elem) }
70
- def second_to_last!; end
71
- sig { returns(T.nilable(Elem)) }
72
- def second_to_last; end
73
-
74
- sig { params(arg: T.untyped, args: T.untyped).returns(T.nilable(Elem)) }
75
- def find_by(arg, *args); end
76
- sig { params(arg: T.untyped, args: T.untyped).returns(Elem) }
77
- def find_by!(arg, *args); end
78
- end
79
-
80
- class ActiveRecord::Associations::CollectionProxy < ActiveRecord::Relation
81
- extend T::Generic
82
-
83
- Elem = type_member(fixed: ActiveRecord::Base)
84
-
85
- sig { params(block: T.proc.params(e: Elem).void).void }
86
- def each(&block); end
87
-
88
- sig { returns(T::Array[Elem]) }
89
- def to_a; end
90
-
91
- # -- << and aliases
92
- sig { params(records: T.any(Elem, T::Array[Elem])).returns(T.self_type) }
93
- def <<(*records); end
94
- sig { params(records: T.any(Elem, T::Array[Elem])).returns(T.self_type) }
95
- def append(*records); end
96
- sig { params(records: T.any(Elem, T::Array[Elem])).returns(T.self_type) }
97
- def push(*records); end
98
- sig { params(records: T.any(Elem, T::Array[Elem])).returns(T.self_type) }
99
- def concat(*records); end
100
-
101
- # -- Overridden finder methods
102
- sig { params(args: T.untyped).returns(Elem) }
103
- def find(*args); end
104
- # sig { params(limit: T.nilable(Integer)).returns(T.nilable(Elem)) }
105
- # def last(limit = nil); end
106
- end
107
-
108
- module SorbetRails::CustomFinderMethods
109
- extend T::Sig
110
- extend T::Generic
111
- Elem = type_member(fixed: ActiveRecord::Base)
112
-
113
- # These are custom finder methods to provide strong type for secondary use case of first, last & find
114
- # See sorbet_rails/custom_finder_methods
115
- sig { params(limit: Integer).returns(T::Array[Elem]) }
116
- def first_n(limit); end
117
- sig { params(limit: Integer).returns(T::Array[Elem]) }
118
- def last_n(limit); end
119
- sig { params(args: T::Array[T.any(Integer, String)]).returns(T::Array[Elem]) }
120
- def find_n(*args); end
121
-
122
- # allow common cases of find_by
123
- sig { params(id: Integer).returns(T.nilable(Elem)) }
124
- def find_by_id(id); end
125
- sig { params(id: Integer).returns(Elem) }
126
- def find_by_id!(id); end
127
- end
128
-
129
- module ActiveRecord::QueryMethods
130
- # TODO: where.not is a special case that we replace it with a `where_not` method
131
- # `where` when not given parameters will return a `ActiveRecord::QueryMethods::WhereChain`
132
- # instance that has a method `not` on it
133
- sig { params(opts: T.untyped, rest: T.untyped).returns(T.self_type) }
134
- def not(opts = nil, *rest); end
135
- end
136
-
137
- class ActiveRecord::Base
138
- extend SorbetRails::CustomFinderMethods
139
- extend T::Generic
140
- Elem = type_template(fixed: ActiveRecord::Base)
141
-
142
- # -- place here to avoid conflicts with sorbet generated gem rbis
143
-
144
- # These methods would return 1 single element when there is no limit, and return an
145
- # array of element when there is a limit passed in.
146
- # The more common use case is to find 1 object. We use that as the default sig
147
- # and add custom first_n, last_n method for the cases that return an array
148
- sig { params(args: T.untyped).returns(Elem) }
149
- def self.find(*args); end
150
- sig { params(limit: T.nilable(Integer)).returns(T.nilable(Elem)) }
151
- def self.first(limit = nil); end
152
- sig { params(limit: T.nilable(Integer)).returns(T.nilable(Elem)) }
153
- def self.last(limit = nil); end
154
-
155
- # -- place here to avoid conflicts with sorbet generated gem rbi
156
- sig { params(conditions: T.untyped).returns(T::Boolean) }
157
- def self.exists?(conditions = nil); end
158
- sig { returns(T::Boolean) }
159
- def self.any?; end
160
- sig { returns(T::Boolean) }
161
- def self.many?; end
162
- sig { returns(T::Boolean) }
163
- def self.none?; end
164
- sig { returns(T::Boolean) }
165
- def self.one?; end
166
-
167
- # -- finder methods
168
- sig { returns(Elem) }
169
- def self.first!; end
170
- sig { returns(Elem) }
171
- def self.second!; end
172
- sig { returns(T.nilable(Elem)) }
173
- def self.second; end
174
- sig { returns(Elem) }
175
- def self.third!; end
176
- sig { returns(T.nilable(Elem)) }
177
- def self.third; end
178
- sig { returns(Elem) }
179
- def self.fourth!; end
180
- sig { returns(T.nilable(Elem)) }
181
- def self.fourth; end
182
- sig { returns(Elem) }
183
- def self.fifth!; end
184
- sig { returns(T.nilable(Elem)) }
185
- def self.fifth; end
186
-
187
- sig { returns(Elem) }
188
- def self.last!; end
189
- sig { returns(Elem) }
190
- def self.third_to_last!; end
191
- sig { returns(T.nilable(Elem)) }
192
- def self.third_to_last; end
193
- sig { returns(Elem) }
194
- def self.second_to_last!; end
195
- sig { returns(T.nilable(Elem)) }
196
- def self.second_to_last; end
197
-
198
- sig { params(arg: T.untyped, args: T.untyped).returns(T.nilable(Elem)) }
199
- def self.find_by(arg, *args); end
200
- sig { params(arg: T.untyped, args: T.untyped).returns(Elem) }
201
- def self.find_by!(arg, *args); end
202
- end
203
-
204
- class ApplicationRecord < ActiveRecord::Base
205
- extend T::Generic
206
- Elem = type_template(fixed: ApplicationRecord)
207
- end
@@ -1,3 +0,0 @@
1
- # typed: strong
2
- module ApplicationHelper
3
- end
@@ -1,647 +0,0 @@
1
- # This file is autogenerated. Do not edit it by hand. Regenerate it with:
2
- # srb rbi gems
3
-
4
- # typed: true
5
- #
6
- # If you would like to make changes to this file, great! Please create the gem's shim here:
7
- #
8
- # https://github.com/sorbet/sorbet-typed/new/master?filename=lib/sorbet-runtime/all/sorbet-runtime.rbi
9
- #
10
- # sorbet-runtime-0.4.4383
11
- module T::Configuration
12
- def self.call_validation_error_handler(signature, opts); end
13
- def self.call_validation_error_handler=(value); end
14
- def self.call_validation_error_handler_default(signature, opts); end
15
- def self.default_checked_level=(default_checked_level); end
16
- def self.enable_checking_for_sigs_marked_checked_tests; end
17
- def self.hard_assert_handler(str, extra); end
18
- def self.hard_assert_handler=(value); end
19
- def self.hard_assert_handler_default(str, _); end
20
- def self.inline_type_error_handler(error); end
21
- def self.inline_type_error_handler=(value); end
22
- def self.inline_type_error_handler_default(error); end
23
- def self.log_info_handler(str, extra); end
24
- def self.log_info_handler=(value); end
25
- def self.log_info_handler_default(str, extra); end
26
- def self.scalar_types; end
27
- def self.scalar_types=(values); end
28
- def self.sig_builder_error_handler(error, location); end
29
- def self.sig_builder_error_handler=(value); end
30
- def self.sig_builder_error_handler_default(error, location); end
31
- def self.sig_validation_error_handler(error, opts); end
32
- def self.sig_validation_error_handler=(value); end
33
- def self.sig_validation_error_handler_default(error, opts); end
34
- def self.soft_assert_handler(str, extra); end
35
- def self.soft_assert_handler=(value); end
36
- def self.soft_assert_handler_default(str, extra); end
37
- def self.validate_lambda_given!(value); end
38
- end
39
- module T::Profile
40
- def self.reset; end
41
- def self.typecheck_count_estimate; end
42
- def self.typecheck_duration; end
43
- def self.typecheck_duration=(arg0); end
44
- def self.typecheck_duration_estimate; end
45
- def self.typecheck_sample_attempts; end
46
- def self.typecheck_sample_attempts=(arg0); end
47
- def self.typecheck_samples; end
48
- def self.typecheck_samples=(arg0); end
49
- end
50
- module T
51
- end
52
- module T::Array
53
- end
54
- module T::Hash
55
- end
56
- module T::Enumerable
57
- end
58
- module T::Enumerator
59
- def self.[](type); end
60
- end
61
- module T::Range
62
- end
63
- module T::Set
64
- end
65
- module T::CFGExport
66
- end
67
- class T::Private::DeclState
68
- def active_declaration; end
69
- def active_declaration=(arg0); end
70
- def reset!; end
71
- def self.current; end
72
- def self.current=(other); end
73
- end
74
- module T::Utils
75
- def self.arity(method); end
76
- def self.coerce(val); end
77
- def self.methods_excluding_object(mod); end
78
- def self.register_forwarder(from_method, to_method, remove_first_param: nil); end
79
- def self.run_all_sig_blocks; end
80
- def self.signature_for_instance_method(mod, method_name); end
81
- def self.string_truncate_middle(str, start_len, end_len, ellipsis = nil); end
82
- def self.unwrap_nilable(type); end
83
- def self.validate_sigs; end
84
- def self.wrap_method_with_call_validation_if_needed(mod, method_sig, original_method); end
85
- end
86
- class T::Utils::RuntimeProfiled
87
- end
88
- module T::Private::ClassUtils
89
- def self.replace_method(mod, name, &blk); end
90
- def self.visibility_method_name(mod, name); end
91
- end
92
- class T::Private::ClassUtils::ReplacedMethod
93
- def bind(obj); end
94
- def initialize(mod, old_method, new_method, overwritten, visibility); end
95
- def restore; end
96
- def to_s; end
97
- end
98
- module T::Private::ErrorHandler
99
- def self.handle_call_validation_error(signature, opts = nil); end
100
- def self.handle_inline_type_error(type_error); end
101
- def self.handle_sig_builder_error(error, location); end
102
- def self.handle_sig_validation_error(error, opts = nil); end
103
- end
104
- module T::Private::RuntimeLevels
105
- def self._toggle_checking_tests(checked); end
106
- def self.check_tests?; end
107
- def self.default_checked_level; end
108
- def self.default_checked_level=(default_checked_level); end
109
- def self.enable_checking_in_tests; end
110
- end
111
- module T::Private::Methods
112
- def self._on_method_added(hook_mod, method_name, is_singleton_method: nil); end
113
- def self.build_sig(hook_mod, method_name, original_method, current_declaration, loc); end
114
- def self.declare_sig(mod, &blk); end
115
- def self.finalize_proc(decl); end
116
- def self.has_sig_block_for_key(key); end
117
- def self.has_sig_block_for_method(method); end
118
- def self.install_hooks(mod); end
119
- def self.install_singleton_method_added_hook(singleton_klass); end
120
- def self.key_to_method(key); end
121
- def self.maybe_run_sig_block_for_key(key); end
122
- def self.maybe_run_sig_block_for_method(method); end
123
- def self.method_to_key(method); end
124
- def self.register_forwarder(from_method, to_method, mode: nil, remove_first_param: nil); end
125
- def self.run_all_sig_blocks; end
126
- def self.run_builder(declaration_block); end
127
- def self.run_sig(hook_mod, method_name, original_method, declaration_block); end
128
- def self.run_sig_block_for_key(key); end
129
- def self.run_sig_block_for_method(method); end
130
- def self.sig_error(loc, message); end
131
- def self.signature_for_key(key); end
132
- def self.signature_for_method(method); end
133
- def self.start_proc; end
134
- def self.unwrap_method(hook_mod, signature, original_method); end
135
- end
136
- class T::Private::Methods::DeclarationBlock < Struct
137
- def blk; end
138
- def blk=(_); end
139
- def loc; end
140
- def loc=(_); end
141
- def mod; end
142
- def mod=(_); end
143
- def self.[](*arg0); end
144
- def self.inspect; end
145
- def self.members; end
146
- def self.new(*arg0); end
147
- end
148
- module T::Sig
149
- def sig(&blk); end
150
- end
151
- module T::Sig::WithoutRuntime
152
- end
153
- module T::Helpers
154
- def abstract!; end
155
- def interface!; end
156
- def mixes_in_class_methods(mod); end
157
- end
158
- module T::Types
159
- end
160
- class T::Types::Base
161
- def self.method_added(method_name); end
162
- end
163
- class T::Types::TypedEnumerable < T::Types::Base
164
- end
165
- class T::Types::ClassOf < T::Types::Base
166
- end
167
- class T::Types::Enum < T::Types::Base
168
- def self.method_added(name); end
169
- def self.singleton_method_added(name); end
170
- extend T::Sig
171
- end
172
- class T::Types::FixedArray < T::Types::Base
173
- end
174
- class T::Types::FixedHash < T::Types::Base
175
- end
176
- class T::Types::Intersection < T::Types::Base
177
- end
178
- class T::Types::NoReturn < T::Types::Base
179
- end
180
- class T::Types::Proc < T::Types::Base
181
- end
182
- class T::Types::SelfType < T::Types::Base
183
- end
184
- class T::Types::Simple < T::Types::Base
185
- end
186
- class T::Types::TypeParameter < T::Types::Base
187
- end
188
- class T::Types::TypedArray < T::Types::TypedEnumerable
189
- end
190
- class T::Types::TypedEnumerator < T::Types::TypedEnumerable
191
- end
192
- class T::Types::TypedHash < T::Types::TypedEnumerable
193
- end
194
- class T::Types::TypedRange < T::Types::TypedEnumerable
195
- end
196
- class T::Types::TypedSet < T::Types::TypedEnumerable
197
- end
198
- class T::Types::Union < T::Types::Base
199
- end
200
- class T::Types::Untyped < T::Types::Base
201
- end
202
- class T::Private::Types::NotTyped < T::Types::Base
203
- end
204
- class T::Private::Types::Void < T::Types::Base
205
- end
206
- module T::Private::Types::Void::VOID
207
- end
208
- class T::Private::Types::StringHolder < T::Types::Base
209
- end
210
- class T::Types::TypeVariable < T::Types::Base
211
- end
212
- class T::Types::TypeMember < T::Types::TypeVariable
213
- end
214
- class T::Types::TypeTemplate < T::Types::TypeVariable
215
- end
216
- module T::Private::Methods::Modes
217
- def self.abstract; end
218
- def self.implementation; end
219
- def self.overridable; end
220
- def self.overridable_implementation; end
221
- def self.override; end
222
- def self.standard; end
223
- def self.untyped; end
224
- end
225
- module T::Private::Methods::CallValidation
226
- def self.create_validator_method(mod, original_method, method_sig, original_visibility); end
227
- def self.create_validator_method_fast(mod, original_method, method_sig); end
228
- def self.create_validator_method_fast0(mod, original_method, method_sig, return_type); end
229
- def self.create_validator_method_fast1(mod, original_method, method_sig, return_type, arg0_type); end
230
- def self.create_validator_method_fast2(mod, original_method, method_sig, return_type, arg0_type, arg1_type); end
231
- def self.create_validator_method_fast3(mod, original_method, method_sig, return_type, arg0_type, arg1_type, arg2_type); end
232
- def self.create_validator_method_fast4(mod, original_method, method_sig, return_type, arg0_type, arg1_type, arg2_type, arg3_type); end
233
- def self.create_validator_procedure_fast(mod, original_method, method_sig); end
234
- def self.create_validator_procedure_fast0(mod, original_method, method_sig); end
235
- def self.create_validator_procedure_fast1(mod, original_method, method_sig, arg0_type); end
236
- def self.create_validator_procedure_fast2(mod, original_method, method_sig, arg0_type, arg1_type); end
237
- def self.create_validator_procedure_fast3(mod, original_method, method_sig, arg0_type, arg1_type, arg2_type); end
238
- def self.create_validator_procedure_fast4(mod, original_method, method_sig, arg0_type, arg1_type, arg2_type, arg3_type); end
239
- def self.create_validator_slow(mod, original_method, method_sig); end
240
- def self.disable_fast_path; end
241
- def self.is_allowed_to_have_fast_path; end
242
- def self.report_error(method_sig, error_message, kind, name, type, value, caller_offset: nil); end
243
- def self.validate_call(instance, original_method, method_sig, args, blk); end
244
- def self.visibility_method_name(mod, name); end
245
- def self.wrap_method_if_needed(mod, method_sig, original_method); end
246
- end
247
- module T::Private::Methods::SignatureValidation
248
- def self.base_override_loc_str(signature, super_signature); end
249
- def self.method_loc_str(method); end
250
- def self.pretty_mode(signature); end
251
- def self.validate(signature); end
252
- def self.validate_non_override_mode(signature); end
253
- def self.validate_override_mode(signature, super_signature); end
254
- def self.validate_override_shape(signature, super_signature); end
255
- def self.validate_override_types(signature, super_signature); end
256
- end
257
- module T::AbstractUtils
258
- def self.abstract_method?(method); end
259
- def self.abstract_methods_for(mod); end
260
- def self.abstract_module?(mod); end
261
- def self.declared_abstract_methods_for(mod); end
262
- end
263
- module T::Private::Abstract::Validate
264
- def self.describe_method(method, show_owner: nil); end
265
- def self.validate_abstract_module(mod); end
266
- def self.validate_interface(mod); end
267
- def self.validate_interface_all_abstract(mod, method_names); end
268
- def self.validate_interface_all_public(mod, method_names); end
269
- def self.validate_subclass(mod); end
270
- end
271
- module T::Generic
272
- def [](*types); end
273
- def type_member(variance = nil, fixed: nil); end
274
- def type_template(variance = nil, fixed: nil); end
275
- include Kernel
276
- include T::Helpers
277
- end
278
- class T::InterfaceWrapper
279
- def __interface_mod_DO_NOT_USE; end
280
- def __target_obj_DO_NOT_USE; end
281
- def initialize(target_obj, interface_mod); end
282
- def is_a?(other); end
283
- def kind_of?(other); end
284
- def self.dynamic_cast(obj, mod); end
285
- def self.method_added(name); end
286
- def self.new(*arg0); end
287
- def self.self_methods; end
288
- def self.singleton_method_added(name); end
289
- def self.wrap_instance(obj, interface_mod); end
290
- def self.wrap_instances(*args, &blk); end
291
- def self.wrapped_dynamic_cast(obj, mod); end
292
- extend T::Sig
293
- end
294
- module T::InterfaceWrapper::Helpers
295
- def wrap_instance(obj); end
296
- def wrap_instances(arr); end
297
- end
298
- module T::Private::Abstract::Declare
299
- def self.declare_abstract(mod, type:); end
300
- end
301
- module T::Private::Abstract::Hooks
302
- def append_features(other); end
303
- def extend_object(other); end
304
- def inherited(other); end
305
- def prepended(other); end
306
- end
307
- module T::Private
308
- end
309
- module T::Private::Casts
310
- def self.cast(value, type, cast_method:); end
311
- end
312
- class T::Private::Methods::Declaration < Struct
313
- def bind; end
314
- def bind=(_); end
315
- def checked; end
316
- def checked=(_); end
317
- def finalized; end
318
- def finalized=(_); end
319
- def generated; end
320
- def generated=(_); end
321
- def mod; end
322
- def mod=(_); end
323
- def mode; end
324
- def mode=(_); end
325
- def on_failure; end
326
- def on_failure=(_); end
327
- def override_allow_incompatible; end
328
- def override_allow_incompatible=(_); end
329
- def params; end
330
- def params=(_); end
331
- def returns; end
332
- def returns=(_); end
333
- def self.[](*arg0); end
334
- def self.inspect; end
335
- def self.members; end
336
- def self.new(*arg0); end
337
- def type_parameters; end
338
- def type_parameters=(_); end
339
- end
340
- class T::Private::Methods::DeclBuilder
341
- def abstract; end
342
- def bind(type); end
343
- def check_live!; end
344
- def checked(level); end
345
- def decl; end
346
- def finalize!; end
347
- def generated; end
348
- def implementation; end
349
- def initialize(mod); end
350
- def on_failure(*args); end
351
- def overridable; end
352
- def override(allow_incompatible: nil); end
353
- def params(params); end
354
- def returns(type); end
355
- def type_parameters(*names); end
356
- def void; end
357
- end
358
- class T::Private::Methods::DeclBuilder::BuilderError < StandardError
359
- end
360
- class T::Private::Methods::Signature
361
- def arg_count; end
362
- def arg_types; end
363
- def bind; end
364
- def block_name; end
365
- def block_type; end
366
- def check_level; end
367
- def dsl_method; end
368
- def each_args_value_type(args); end
369
- def ever_failed; end
370
- def generated; end
371
- def has_keyrest; end
372
- def has_rest; end
373
- def initialize(method:, method_name:, raw_arg_types:, raw_return_type:, bind:, mode:, check_level:, on_failure:, parameters: nil, generated: nil, override_allow_incompatible: nil); end
374
- def keyrest_name; end
375
- def keyrest_type; end
376
- def kwarg_names; end
377
- def kwarg_types; end
378
- def mark_failed; end
379
- def method; end
380
- def method_desc; end
381
- def method_name; end
382
- def mode; end
383
- def on_failure; end
384
- def override_allow_incompatible; end
385
- def owner; end
386
- def parameters; end
387
- def req_arg_count; end
388
- def req_kwarg_names; end
389
- def rest_name; end
390
- def rest_type; end
391
- def return_type; end
392
- def self.new_untyped(method:, mode: nil, parameters: nil); end
393
- end
394
- module T::Utils::Nilable
395
- def self.get_type_info(prop_type); end
396
- def self.get_underlying_type(prop_type); end
397
- def self.get_underlying_type_object(prop_type); end
398
- def self.is_union_with_nilclass(prop_type); end
399
- end
400
- class T::Utils::Nilable::TypeInfo < Struct
401
- def is_union_type; end
402
- def is_union_type=(_); end
403
- def non_nilable_type; end
404
- def non_nilable_type=(_); end
405
- def self.[](*arg0); end
406
- def self.inspect; end
407
- def self.members; end
408
- def self.new(*arg0); end
409
- end
410
- module T::Private::Abstract::Data
411
- def self.get(mod, key); end
412
- def self.key?(mod, key); end
413
- def self.set(mod, key, value); end
414
- def self.set_default(mod, key, default); end
415
- end
416
- module T::Private::MixesInClassMethods
417
- def included(other); end
418
- end
419
- module T::Private::Mixins
420
- def self.declare_mixes_in_class_methods(mixin, class_methods); end
421
- end
422
- module T::Props
423
- extend T::Helpers
424
- end
425
- module T::Props::ClassMethods
426
- def const(*args, &blk); end
427
- def decorator; end
428
- def decorator_class; end
429
- def extended(child); end
430
- def included(child); end
431
- def inherited(child); end
432
- def plugin(mod); end
433
- def plugins; end
434
- def prepended(child); end
435
- def prop(name, cls, rules = nil); end
436
- def props; end
437
- def reload_decorator!; end
438
- def self.method_added(name); end
439
- def self.singleton_method_added(name); end
440
- def validate_prop_value(prop, val); end
441
- extend T::Helpers
442
- extend T::Sig
443
- end
444
- module T::Props::CustomType
445
- def deserialize(_mongo_scalar); end
446
- def instance?(_value); end
447
- def self.included(_base); end
448
- def self.scalar_type?(val); end
449
- def self.valid_serialization?(val, type = nil); end
450
- def serialize(_instance); end
451
- def valid?(value); end
452
- include Kernel
453
- end
454
- class T::Props::Decorator
455
- def add_prop_definition(*args, &blk); end
456
- def all_props(*args, &blk); end
457
- def array_subdoc_type(*args, &blk); end
458
- def check_prop_type(*args, &blk); end
459
- def convert_type_to_class(*args, &blk); end
460
- def decorated_class; end
461
- def define_foreign_method(*args, &blk); end
462
- def define_getter_and_setter(*args, &blk); end
463
- def foreign_prop_get(*args, &blk); end
464
- def get(*args, &blk); end
465
- def handle_foreign_hint_only_option(*args, &blk); end
466
- def handle_foreign_option(*args, &blk); end
467
- def handle_redaction_option(*args, &blk); end
468
- def hash_key_custom_type(*args, &blk); end
469
- def hash_value_subdoc_type(*args, &blk); end
470
- def initialize(klass); end
471
- def is_nilable?(*args, &blk); end
472
- def model_inherited(child); end
473
- def mutate_prop_backdoor!(*args, &blk); end
474
- def plugin(mod); end
475
- def prop_defined(*args, &blk); end
476
- def prop_get(*args, &blk); end
477
- def prop_rules(*args, &blk); end
478
- def prop_set(*args, &blk); end
479
- def prop_validate_definition!(*args, &blk); end
480
- def props; end
481
- def self.method_added(name); end
482
- def self.singleton_method_added(name); end
483
- def set(*args, &blk); end
484
- def shallow_clone_ok(*args, &blk); end
485
- def smart_coerce(*args, &blk); end
486
- def valid_props(*args, &blk); end
487
- def validate_foreign_option(*args, &blk); end
488
- def validate_not_missing_sensitivity(*args, &blk); end
489
- def validate_prop_name(name); end
490
- def validate_prop_value(*args, &blk); end
491
- extend T::Sig
492
- end
493
- class T::Props::Decorator::NoRulesError < StandardError
494
- end
495
- module T::Props::Decorator::Private
496
- def self.apply_class_methods(plugin, target); end
497
- def self.apply_decorator_methods(plugin, target); end
498
- end
499
- class T::Props::Error < StandardError
500
- end
501
- class T::Props::InvalidValueError < T::Props::Error
502
- end
503
- class T::Props::ImmutableProp < T::Props::Error
504
- end
505
- module T::Props::Plugin
506
- extend T::Helpers
507
- extend T::Props::ClassMethods
508
- include T::Props
509
- end
510
- module T::Props::Plugin::ClassMethods
511
- def included(child); end
512
- end
513
- module T::Props::Utils
514
- def self.deep_clone_object(what, freeze: nil); end
515
- def self.merge_serialized_optional_rule(prop_rules); end
516
- def self.need_nil_read_check?(prop_rules); end
517
- def self.need_nil_write_check?(prop_rules); end
518
- def self.optional_prop?(prop_rules); end
519
- def self.required_prop?(prop_rules); end
520
- end
521
- module T::Props::Optional
522
- extend T::Props::ClassMethods
523
- extend T::Props::Plugin::ClassMethods
524
- include T::Props::Plugin
525
- end
526
- module T::Props::Optional::DecoratorMethods
527
- def add_prop_definition(prop, rules); end
528
- def compute_derived_rules(rules); end
529
- def get_default(rules, instance_class); end
530
- def has_default?(rules); end
531
- def mutate_prop_backdoor!(prop, key, value); end
532
- def prop_optional?(prop); end
533
- def prop_validate_definition!(name, cls, rules, type); end
534
- def valid_props; end
535
- end
536
- module T::Props::WeakConstructor
537
- def initialize(hash = nil); end
538
- extend T::Props::ClassMethods
539
- extend T::Props::Plugin::ClassMethods
540
- include T::Props::Optional
541
- end
542
- module T::Props::Constructor
543
- def initialize(hash = nil); end
544
- extend T::Props::ClassMethods
545
- extend T::Props::Plugin::ClassMethods
546
- extend T::Props::Plugin::ClassMethods
547
- include T::Props::WeakConstructor
548
- end
549
- module T::Props::PrettyPrintable
550
- def inspect; end
551
- def pretty_inspect; end
552
- extend T::Props::ClassMethods
553
- extend T::Props::Plugin::ClassMethods
554
- include T::Props::Plugin
555
- end
556
- module T::Props::PrettyPrintable::DecoratorMethods
557
- def inspect_instance(*args, &blk); end
558
- def inspect_instance_components(*args, &blk); end
559
- def inspect_prop_value(*args, &blk); end
560
- def join_props_with_pretty_values(*args, &blk); end
561
- def self.method_added(name); end
562
- def self.singleton_method_added(name); end
563
- def valid_props(*args, &blk); end
564
- extend T::Sig
565
- end
566
- module T::Props::Serializable
567
- def deserialize(hash, strict = nil); end
568
- def recursive_stringify_keys(obj); end
569
- def required_prop_missing_from_deserialize(prop); end
570
- def required_prop_missing_from_deserialize?(prop); end
571
- def serialize(strict = nil); end
572
- def with(changed_props); end
573
- def with_existing_hash(changed_props, existing_hash:); end
574
- extend T::Props::ClassMethods
575
- extend T::Props::ClassMethods
576
- extend T::Props::ClassMethods
577
- extend T::Props::Plugin::ClassMethods
578
- extend T::Props::Plugin::ClassMethods
579
- extend T::Props::Plugin::ClassMethods
580
- include T::Props::Optional
581
- include T::Props::Plugin
582
- include T::Props::PrettyPrintable
583
- end
584
- module T::Props::Serializable::DecoratorMethods
585
- def add_prop_definition(prop, rules); end
586
- def extra_props(instance); end
587
- def from_hash(hash, strict = nil); end
588
- def get_id(instance); end
589
- def inspect_instance_components(instance, multiline:, indent:); end
590
- def prop_by_serialized_forms; end
591
- def prop_dont_store?(prop); end
592
- def prop_serialized_form(prop); end
593
- def prop_validate_definition!(name, cls, rules, type); end
594
- def required_props; end
595
- def serialized_form_prop(serialized_form); end
596
- def valid_props; end
597
- end
598
- module T::Props::Serializable::ClassMethods
599
- def from_hash!(hash); end
600
- def from_hash(hash, strict = nil); end
601
- def prop_by_serialized_forms; end
602
- end
603
- module T::Props::TypeValidation
604
- extend T::Props::ClassMethods
605
- extend T::Props::Plugin::ClassMethods
606
- include T::Props::Plugin
607
- end
608
- class T::Props::TypeValidation::UnderspecifiedType < ArgumentError
609
- end
610
- module T::Props::TypeValidation::DecoratorMethods
611
- def find_invalid_subtype(*args, &blk); end
612
- def prop_validate_definition!(*args, &blk); end
613
- def self.method_added(name); end
614
- def self.singleton_method_added(name); end
615
- def type_error_message(*args, &blk); end
616
- def valid_props(*args, &blk); end
617
- def validate_type(*args, &blk); end
618
- extend T::Sig
619
- end
620
- class T::InexactStruct
621
- extend T::Props::ClassMethods
622
- extend T::Props::ClassMethods
623
- extend T::Props::ClassMethods
624
- extend T::Props::Plugin::ClassMethods
625
- extend T::Props::Plugin::ClassMethods
626
- extend T::Props::Plugin::ClassMethods
627
- extend T::Props::Plugin::ClassMethods
628
- extend T::Props::Plugin::ClassMethods
629
- extend T::Props::Serializable::ClassMethods
630
- include T::Props
631
- include T::Props::Constructor
632
- include T::Props::Serializable
633
- end
634
- class T::Struct < T::InexactStruct
635
- def self.inherited(subclass); end
636
- extend T::Props::ClassMethods
637
- extend T::Props::Plugin::ClassMethods
638
- extend T::Props::Plugin::ClassMethods
639
- extend T::Props::Plugin::ClassMethods
640
- extend T::Props::Plugin::ClassMethods
641
- extend T::Props::Plugin::ClassMethods
642
- extend T::Props::Serializable::ClassMethods
643
- end
644
- module T::Private::Abstract
645
- end
646
- module T::Private::Types
647
- end