packwerk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. checksums.yaml +7 -0
  2. data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  3. data/.github/probots.yml +2 -0
  4. data/.github/pull_request_template.md +27 -0
  5. data/.github/workflows/ci.yml +50 -0
  6. data/.gitignore +12 -0
  7. data/.rubocop.yml +46 -0
  8. data/.ruby-version +1 -0
  9. data/CODEOWNERS +1 -0
  10. data/CODE_OF_CONDUCT.md +76 -0
  11. data/CONTRIBUTING.md +17 -0
  12. data/Gemfile +22 -0
  13. data/Gemfile.lock +236 -0
  14. data/LICENSE.md +7 -0
  15. data/README.md +73 -0
  16. data/Rakefile +13 -0
  17. data/TROUBLESHOOT.md +67 -0
  18. data/USAGE.md +250 -0
  19. data/bin/console +15 -0
  20. data/bin/setup +8 -0
  21. data/dev.yml +32 -0
  22. data/docs/cohesion.png +0 -0
  23. data/exe/packwerk +6 -0
  24. data/lib/packwerk.rb +44 -0
  25. data/lib/packwerk/application_validator.rb +343 -0
  26. data/lib/packwerk/association_inspector.rb +44 -0
  27. data/lib/packwerk/checking_deprecated_references.rb +40 -0
  28. data/lib/packwerk/cli.rb +238 -0
  29. data/lib/packwerk/configuration.rb +82 -0
  30. data/lib/packwerk/const_node_inspector.rb +44 -0
  31. data/lib/packwerk/constant_discovery.rb +60 -0
  32. data/lib/packwerk/constant_name_inspector.rb +22 -0
  33. data/lib/packwerk/dependency_checker.rb +28 -0
  34. data/lib/packwerk/deprecated_references.rb +92 -0
  35. data/lib/packwerk/file_processor.rb +43 -0
  36. data/lib/packwerk/files_for_processing.rb +67 -0
  37. data/lib/packwerk/formatters/progress_formatter.rb +46 -0
  38. data/lib/packwerk/generators/application_validation.rb +62 -0
  39. data/lib/packwerk/generators/configuration_file.rb +69 -0
  40. data/lib/packwerk/generators/inflections_file.rb +43 -0
  41. data/lib/packwerk/generators/root_package.rb +37 -0
  42. data/lib/packwerk/generators/templates/inflections.yml +6 -0
  43. data/lib/packwerk/generators/templates/package.yml +17 -0
  44. data/lib/packwerk/generators/templates/packwerk +23 -0
  45. data/lib/packwerk/generators/templates/packwerk.yml.erb +23 -0
  46. data/lib/packwerk/generators/templates/packwerk_validator_test.rb +11 -0
  47. data/lib/packwerk/graph.rb +74 -0
  48. data/lib/packwerk/inflections/custom.rb +33 -0
  49. data/lib/packwerk/inflections/default.rb +73 -0
  50. data/lib/packwerk/inflector.rb +41 -0
  51. data/lib/packwerk/node.rb +259 -0
  52. data/lib/packwerk/node_processor.rb +49 -0
  53. data/lib/packwerk/node_visitor.rb +22 -0
  54. data/lib/packwerk/offense.rb +44 -0
  55. data/lib/packwerk/output_styles.rb +41 -0
  56. data/lib/packwerk/package.rb +56 -0
  57. data/lib/packwerk/package_set.rb +59 -0
  58. data/lib/packwerk/parsed_constant_definitions.rb +62 -0
  59. data/lib/packwerk/parsers.rb +23 -0
  60. data/lib/packwerk/parsers/erb.rb +66 -0
  61. data/lib/packwerk/parsers/factory.rb +34 -0
  62. data/lib/packwerk/parsers/ruby.rb +42 -0
  63. data/lib/packwerk/privacy_checker.rb +45 -0
  64. data/lib/packwerk/reference.rb +6 -0
  65. data/lib/packwerk/reference_extractor.rb +81 -0
  66. data/lib/packwerk/reference_lister.rb +23 -0
  67. data/lib/packwerk/run_context.rb +103 -0
  68. data/lib/packwerk/sanity_checker.rb +10 -0
  69. data/lib/packwerk/spring_command.rb +28 -0
  70. data/lib/packwerk/updating_deprecated_references.rb +51 -0
  71. data/lib/packwerk/version.rb +6 -0
  72. data/lib/packwerk/violation_type.rb +13 -0
  73. data/library.yml +6 -0
  74. data/packwerk.gemspec +58 -0
  75. data/service.yml +6 -0
  76. data/shipit.rubygems.yml +1 -0
  77. data/sorbet/config +2 -0
  78. data/sorbet/rbi/gems/actioncable@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +840 -0
  79. data/sorbet/rbi/gems/actionmailbox@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +571 -0
  80. data/sorbet/rbi/gems/actionmailer@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +568 -0
  81. data/sorbet/rbi/gems/actionpack@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +5216 -0
  82. data/sorbet/rbi/gems/actiontext@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +663 -0
  83. data/sorbet/rbi/gems/actionview@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +2504 -0
  84. data/sorbet/rbi/gems/activejob@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +635 -0
  85. data/sorbet/rbi/gems/activemodel@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +1201 -0
  86. data/sorbet/rbi/gems/activerecord@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +8011 -0
  87. data/sorbet/rbi/gems/activestorage@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +904 -0
  88. data/sorbet/rbi/gems/activesupport@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +3888 -0
  89. data/sorbet/rbi/gems/ast@2.4.1.rbi +54 -0
  90. data/sorbet/rbi/gems/better_html@1.0.15.rbi +317 -0
  91. data/sorbet/rbi/gems/builder@3.2.4.rbi +8 -0
  92. data/sorbet/rbi/gems/byebug@11.1.3.rbi +8 -0
  93. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  94. data/sorbet/rbi/gems/colorize@0.8.1.rbi +40 -0
  95. data/sorbet/rbi/gems/commander@4.5.2.rbi +8 -0
  96. data/sorbet/rbi/gems/concurrent-ruby@1.1.6.rbi +1966 -0
  97. data/sorbet/rbi/gems/constant_resolver@0.1.5.rbi +26 -0
  98. data/sorbet/rbi/gems/crass@1.0.6.rbi +138 -0
  99. data/sorbet/rbi/gems/erubi@1.9.0.rbi +39 -0
  100. data/sorbet/rbi/gems/globalid@0.4.2.rbi +178 -0
  101. data/sorbet/rbi/gems/highline@2.0.3.rbi +8 -0
  102. data/sorbet/rbi/gems/html_tokenizer@0.0.7.rbi +46 -0
  103. data/sorbet/rbi/gems/i18n@1.8.2.rbi +633 -0
  104. data/sorbet/rbi/gems/jaro_winkler@1.5.4.rbi +8 -0
  105. data/sorbet/rbi/gems/loofah@2.5.0.rbi +272 -0
  106. data/sorbet/rbi/gems/m@1.5.1.rbi +108 -0
  107. data/sorbet/rbi/gems/mail@2.7.1.rbi +2490 -0
  108. data/sorbet/rbi/gems/marcel@0.3.3.rbi +30 -0
  109. data/sorbet/rbi/gems/method_source@1.0.0.rbi +76 -0
  110. data/sorbet/rbi/gems/mimemagic@0.3.5.rbi +47 -0
  111. data/sorbet/rbi/gems/mini_mime@1.0.2.rbi +71 -0
  112. data/sorbet/rbi/gems/mini_portile2@2.4.0.rbi +8 -0
  113. data/sorbet/rbi/gems/minitest@5.14.0.rbi +542 -0
  114. data/sorbet/rbi/gems/mocha@1.11.2.rbi +964 -0
  115. data/sorbet/rbi/gems/nio4r@2.5.2.rbi +89 -0
  116. data/sorbet/rbi/gems/nokogiri@1.10.9.rbi +1608 -0
  117. data/sorbet/rbi/gems/parallel@1.19.1.rbi +8 -0
  118. data/sorbet/rbi/gems/parlour@4.0.1.rbi +561 -0
  119. data/sorbet/rbi/gems/parser@2.7.1.4.rbi +1632 -0
  120. data/sorbet/rbi/gems/pry@0.13.1.rbi +8 -0
  121. data/sorbet/rbi/gems/rack-test@1.1.0.rbi +335 -0
  122. data/sorbet/rbi/gems/rack@2.2.2.rbi +1730 -0
  123. data/sorbet/rbi/gems/rails-dom-testing@2.0.3.rbi +123 -0
  124. data/sorbet/rbi/gems/rails-html-sanitizer@1.3.0.rbi +213 -0
  125. data/sorbet/rbi/gems/rails@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +8 -0
  126. data/sorbet/rbi/gems/railties@6.1.0.alpha-d80c18a391e33552ae2d943e68af56946f883f65.rbi +869 -0
  127. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +155 -0
  128. data/sorbet/rbi/gems/rake@13.0.1.rbi +841 -0
  129. data/sorbet/rbi/gems/rexml@3.2.4.rbi +8 -0
  130. data/sorbet/rbi/gems/rubocop-performance@1.5.2.rbi +8 -0
  131. data/sorbet/rbi/gems/rubocop-shopify@1.0.2.rbi +8 -0
  132. data/sorbet/rbi/gems/rubocop-sorbet@0.3.7.rbi +8 -0
  133. data/sorbet/rbi/gems/rubocop@0.82.0.rbi +8 -0
  134. data/sorbet/rbi/gems/ruby-progressbar@1.10.1.rbi +8 -0
  135. data/sorbet/rbi/gems/smart_properties@1.15.0.rbi +168 -0
  136. data/sorbet/rbi/gems/spoom@1.0.4.rbi +418 -0
  137. data/sorbet/rbi/gems/spring@2.1.0.rbi +160 -0
  138. data/sorbet/rbi/gems/sprockets-rails@3.2.1.rbi +431 -0
  139. data/sorbet/rbi/gems/sprockets@4.0.0.rbi +1132 -0
  140. data/sorbet/rbi/gems/tapioca@0.4.5.rbi +518 -0
  141. data/sorbet/rbi/gems/thor@1.0.1.rbi +892 -0
  142. data/sorbet/rbi/gems/tzinfo@2.0.2.rbi +547 -0
  143. data/sorbet/rbi/gems/unicode-display_width@1.7.0.rbi +8 -0
  144. data/sorbet/rbi/gems/websocket-driver@0.7.1.rbi +438 -0
  145. data/sorbet/rbi/gems/websocket-extensions@0.1.4.rbi +71 -0
  146. data/sorbet/rbi/gems/zeitwerk@2.3.0.rbi +8 -0
  147. data/sorbet/tapioca/require.rb +25 -0
  148. data/static/packwerk-check-demo.png +0 -0
  149. data/static/packwerk_check.gif +0 -0
  150. data/static/packwerk_check_violation.gif +0 -0
  151. data/static/packwerk_update.gif +0 -0
  152. data/static/packwerk_validate.gif +0 -0
  153. metadata +341 -0
@@ -0,0 +1,663 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `actiontext` gem.
3
+ # Please instead update this file by running `dev typecheck update`.
4
+
5
+ # typed: true
6
+
7
+ module ActionText
8
+ extend(::ActiveSupport::Autoload)
9
+
10
+ class << self
11
+ def railtie_helpers_paths; end
12
+ def railtie_namespace; end
13
+ def railtie_routes_url_helpers(include_path_helpers = T.unsafe(nil)); end
14
+ def table_name_prefix; end
15
+ def use_relative_model_naming?; end
16
+ end
17
+ end
18
+
19
+ module ActionText::Attachable
20
+ extend(::ActiveSupport::Concern)
21
+
22
+ mixes_in_class_methods(::ActionText::Attachable::ClassMethods)
23
+
24
+ def as_json(*_); end
25
+ def attachable_content_type; end
26
+ def attachable_filename; end
27
+ def attachable_filesize; end
28
+ def attachable_metadata; end
29
+ def attachable_sgid; end
30
+ def previewable_attachable?; end
31
+ def to_rich_text_attributes(attributes = T.unsafe(nil)); end
32
+ def to_trix_content_attachment_partial_path; end
33
+
34
+ class << self
35
+ def from_attachable_sgid(sgid, options = T.unsafe(nil)); end
36
+ def from_node(node); end
37
+
38
+ private
39
+
40
+ def attachable_from_sgid(sgid); end
41
+ end
42
+ end
43
+
44
+ module ActionText::Attachable::ClassMethods
45
+ def from_attachable_sgid(sgid); end
46
+ end
47
+
48
+ ActionText::Attachable::LOCATOR_NAME = T.let(T.unsafe(nil), String)
49
+
50
+ module ActionText::Attachables
51
+ extend(::ActiveSupport::Autoload)
52
+ end
53
+
54
+ class ActionText::Attachables::ContentAttachment
55
+ include(::ActiveModel::Validations)
56
+ include(::ActiveSupport::Callbacks)
57
+ include(::ActiveModel::Validations::HelperMethods)
58
+ include(::ActiveModel::Conversion)
59
+ include(::ActiveModel::ForbiddenAttributesProtection)
60
+ include(::ActiveModel::AttributeAssignment)
61
+ include(::ActiveModel::Model)
62
+ extend(::ActiveModel::Validations::ClassMethods)
63
+ extend(::ActiveModel::Naming)
64
+ extend(::ActiveModel::Callbacks)
65
+ extend(::ActiveSupport::Callbacks::ClassMethods)
66
+ extend(::ActiveSupport::DescendantsTracker)
67
+ extend(::ActiveModel::Translation)
68
+ extend(::ActiveModel::Validations::HelperMethods)
69
+ extend(::ActiveModel::Conversion::ClassMethods)
70
+
71
+ def __callbacks; end
72
+ def __callbacks?; end
73
+ def _run_validate_callbacks(&block); end
74
+ def _validate_callbacks; end
75
+ def _validators; end
76
+ def _validators?; end
77
+ def attachable_plain_text_representation(caption); end
78
+ def model_name(*args, &block); end
79
+ def name; end
80
+ def name=(_); end
81
+ def to_partial_path; end
82
+ def to_trix_content_attachment_partial_path; end
83
+ def validation_context; end
84
+
85
+ private
86
+
87
+ def validation_context=(_); end
88
+
89
+ class << self
90
+ def __callbacks; end
91
+ def __callbacks=(value); end
92
+ def __callbacks?; end
93
+ def _validate_callbacks; end
94
+ def _validate_callbacks=(value); end
95
+ def _validators; end
96
+ def _validators=(value); end
97
+ def _validators?; end
98
+ def from_node(node); end
99
+ end
100
+ end
101
+
102
+ module ActionText::Attachables::MissingAttachable
103
+ extend(::ActiveModel::Naming)
104
+
105
+ def model_name(*args, &block); end
106
+
107
+ class << self
108
+ def to_partial_path; end
109
+ end
110
+ end
111
+
112
+ class ActionText::Attachables::RemoteImage
113
+ extend(::ActiveModel::Naming)
114
+
115
+ def initialize(attributes = T.unsafe(nil)); end
116
+
117
+ def attachable_plain_text_representation(caption); end
118
+ def content_type; end
119
+ def height; end
120
+ def model_name(*args, &block); end
121
+ def to_partial_path; end
122
+ def url; end
123
+ def width; end
124
+
125
+ class << self
126
+ def from_node(node); end
127
+
128
+ private
129
+
130
+ def attributes_from_node(node); end
131
+ def content_type_is_image?(content_type); end
132
+ end
133
+ end
134
+
135
+ class ActionText::Attachment
136
+ include(::ActionText::Attachments::Caching)
137
+ include(::ActionText::Attachments::Minification)
138
+ include(::ActionText::Attachments::TrixConversion)
139
+ extend(::ActionText::Attachments::Minification::ClassMethods)
140
+ extend(::ActionText::Attachments::TrixConversion::ClassMethods)
141
+
142
+ def initialize(node, attachable); end
143
+
144
+ def attachable; end
145
+ def caption; end
146
+ def full_attributes; end
147
+ def inspect; end
148
+ def method_missing(method, *args, &block); end
149
+ def node; end
150
+ def to_html; end
151
+ def to_param(*args, &block); end
152
+ def to_plain_text; end
153
+ def to_s; end
154
+ def with_full_attributes; end
155
+
156
+ private
157
+
158
+ def attachable_attributes; end
159
+ def node_attributes; end
160
+ def respond_to_missing?(name, include_private = T.unsafe(nil)); end
161
+ def sgid_attributes; end
162
+
163
+ class << self
164
+ def fragment_by_canonicalizing_attachments(content); end
165
+ def from_attachable(attachable, attributes = T.unsafe(nil)); end
166
+ def from_attachables(attachables); end
167
+ def from_attributes(attributes, attachable = T.unsafe(nil)); end
168
+ def from_node(node, attachable = T.unsafe(nil)); end
169
+
170
+ private
171
+
172
+ def node_from_attributes(attributes); end
173
+ def process_attributes(attributes); end
174
+ end
175
+ end
176
+
177
+ ActionText::Attachment::ATTRIBUTES = T.let(T.unsafe(nil), Array)
178
+
179
+ ActionText::Attachment::SELECTOR = T.let(T.unsafe(nil), String)
180
+
181
+ ActionText::Attachment::TAG_NAME = T.let(T.unsafe(nil), String)
182
+
183
+ class ActionText::AttachmentGallery
184
+ include(::ActiveModel::Validations)
185
+ include(::ActiveSupport::Callbacks)
186
+ include(::ActiveModel::Validations::HelperMethods)
187
+ include(::ActiveModel::Conversion)
188
+ include(::ActiveModel::ForbiddenAttributesProtection)
189
+ include(::ActiveModel::AttributeAssignment)
190
+ include(::ActiveModel::Model)
191
+ extend(::ActiveModel::Validations::ClassMethods)
192
+ extend(::ActiveModel::Naming)
193
+ extend(::ActiveModel::Callbacks)
194
+ extend(::ActiveSupport::Callbacks::ClassMethods)
195
+ extend(::ActiveSupport::DescendantsTracker)
196
+ extend(::ActiveModel::Translation)
197
+ extend(::ActiveModel::Validations::HelperMethods)
198
+ extend(::ActiveModel::Conversion::ClassMethods)
199
+
200
+ def initialize(node); end
201
+
202
+ def __callbacks; end
203
+ def __callbacks?; end
204
+ def _run_validate_callbacks(&block); end
205
+ def _validate_callbacks; end
206
+ def _validators; end
207
+ def _validators?; end
208
+ def attachments; end
209
+ def inspect; end
210
+ def model_name(*args, &block); end
211
+ def node; end
212
+ def size; end
213
+ def validation_context; end
214
+
215
+ private
216
+
217
+ def validation_context=(_); end
218
+
219
+ class << self
220
+ def __callbacks; end
221
+ def __callbacks=(value); end
222
+ def __callbacks?; end
223
+ def _validate_callbacks; end
224
+ def _validate_callbacks=(value); end
225
+ def _validators; end
226
+ def _validators=(value); end
227
+ def _validators?; end
228
+ def find_attachment_gallery_nodes(content); end
229
+ def fragment_by_canonicalizing_attachment_galleries(content); end
230
+ def fragment_by_replacing_attachment_gallery_nodes(content); end
231
+ def from_node(node); end
232
+ end
233
+ end
234
+
235
+ module ActionText::Attachments
236
+ extend(::ActiveSupport::Autoload)
237
+ end
238
+
239
+ module ActionText::Attachments::Caching
240
+ def cache_key(*args); end
241
+
242
+ private
243
+
244
+ def cache_digest; end
245
+ end
246
+
247
+ module ActionText::Attachments::Minification
248
+ extend(::ActiveSupport::Concern)
249
+
250
+ mixes_in_class_methods(::ActionText::Attachments::Minification::ClassMethods)
251
+ end
252
+
253
+ module ActionText::Attachments::Minification::ClassMethods
254
+ def fragment_by_minifying_attachments(content); end
255
+ end
256
+
257
+ module ActionText::Attachments::TrixConversion
258
+ extend(::ActiveSupport::Concern)
259
+
260
+ mixes_in_class_methods(::ActionText::Attachments::TrixConversion::ClassMethods)
261
+
262
+ def to_trix_attachment(content = T.unsafe(nil)); end
263
+
264
+ private
265
+
266
+ def trix_attachment_content; end
267
+ end
268
+
269
+ module ActionText::Attachments::TrixConversion::ClassMethods
270
+ def fragment_by_converting_trix_attachments(content); end
271
+ def from_trix_attachment(trix_attachment); end
272
+ end
273
+
274
+ module ActionText::Attribute
275
+ extend(::ActiveSupport::Concern)
276
+
277
+ mixes_in_class_methods(::ActionText::Attribute::ClassMethods)
278
+ end
279
+
280
+ module ActionText::Attribute::ClassMethods
281
+ def has_rich_text(name); end
282
+ end
283
+
284
+ class ActionText::Content
285
+ include(::ActionText::Serialization)
286
+ extend(::ActionText::Serialization::ClassMethods)
287
+
288
+ def initialize(content = T.unsafe(nil), options = T.unsafe(nil)); end
289
+
290
+ def ==(other); end
291
+ def append_attachables(attachables); end
292
+ def as_json(*_); end
293
+ def attachables; end
294
+ def attachment_galleries; end
295
+ def attachments; end
296
+ def blank?(*args, &block); end
297
+ def empty?(*args, &block); end
298
+ def fragment; end
299
+ def gallery_attachments; end
300
+ def html_safe(*args, &block); end
301
+ def inspect; end
302
+ def links; end
303
+ def present?(*args, &block); end
304
+ def render_attachment_galleries(&block); end
305
+ def render_attachments(**options, &block); end
306
+ def renderer; end
307
+ def renderer=(obj); end
308
+ def to_html; end
309
+ def to_plain_text; end
310
+ def to_rendered_html_with_layout; end
311
+ def to_s; end
312
+ def to_trix_html; end
313
+
314
+ private
315
+
316
+ def attachment_for_node(node, with_full_attributes: T.unsafe(nil)); end
317
+ def attachment_gallery_for_node(node); end
318
+ def attachment_gallery_nodes; end
319
+ def attachment_nodes; end
320
+
321
+ class << self
322
+ def fragment_by_canonicalizing_content(content); end
323
+ def renderer; end
324
+ def renderer=(obj); end
325
+ end
326
+ end
327
+
328
+ module ActionText::ContentHelper
329
+ def allowed_attributes; end
330
+ def allowed_attributes=(val); end
331
+ def allowed_tags; end
332
+ def allowed_tags=(val); end
333
+ def render_action_text_attachments(content); end
334
+ def render_action_text_content(content); end
335
+ def sanitize_action_text_content(content); end
336
+ def sanitizer; end
337
+ def sanitizer=(val); end
338
+ def scrubber; end
339
+ def scrubber=(val); end
340
+
341
+ class << self
342
+ def allowed_attributes; end
343
+ def allowed_attributes=(val); end
344
+ def allowed_tags; end
345
+ def allowed_tags=(val); end
346
+ def sanitizer; end
347
+ def sanitizer=(val); end
348
+ def scrubber; end
349
+ def scrubber=(val); end
350
+ end
351
+ end
352
+
353
+ class ActionText::Engine < ::Rails::Engine
354
+ end
355
+
356
+ class ActionText::Fragment
357
+ def initialize(source); end
358
+
359
+ def find_all(selector); end
360
+ def replace(selector); end
361
+ def source; end
362
+ def to_html; end
363
+ def to_plain_text; end
364
+ def to_s; end
365
+ def update; end
366
+
367
+ class << self
368
+ def from_html(html); end
369
+ def wrap(fragment_or_html); end
370
+ end
371
+ end
372
+
373
+ module ActionText::HtmlConversion
374
+ extend(::ActionText::HtmlConversion)
375
+
376
+ def create_element(tag_name, attributes = T.unsafe(nil)); end
377
+ def fragment_for_html(html); end
378
+ def node_to_html(node); end
379
+
380
+ private
381
+
382
+ def document; end
383
+ end
384
+
385
+ module ActionText::PlainTextConversion
386
+ extend(::ActionText::PlainTextConversion)
387
+
388
+ def node_to_plain_text(node); end
389
+
390
+ private
391
+
392
+ def bullet_for_li_node(node, index); end
393
+ def list_node_name_for_li_node(node); end
394
+ def plain_text_for_block(node, index = T.unsafe(nil)); end
395
+ def plain_text_for_blockquote_node(node, index); end
396
+ def plain_text_for_br_node(node, index); end
397
+ def plain_text_for_div_node(node, index); end
398
+ def plain_text_for_figcaption_node(node, index); end
399
+ def plain_text_for_h1_node(node, index = T.unsafe(nil)); end
400
+ def plain_text_for_li_node(node, index); end
401
+ def plain_text_for_node(node, index = T.unsafe(nil)); end
402
+ def plain_text_for_node_children(node); end
403
+ def plain_text_for_ol_node(node, index = T.unsafe(nil)); end
404
+ def plain_text_for_p_node(node, index = T.unsafe(nil)); end
405
+ def plain_text_for_text_node(node, index); end
406
+ def plain_text_for_ul_node(node, index = T.unsafe(nil)); end
407
+ def plain_text_method_for_node(node); end
408
+ def remove_trailing_newlines(text); end
409
+ end
410
+
411
+ class ActionText::RichText < ::ActiveRecord::Base
412
+ def autosave_associated_records_for_record(*args); end
413
+ def nil?(*args, &block); end
414
+ def to_s(*args, &block); end
415
+
416
+ class << self
417
+ def __callbacks; end
418
+ def _reflections; end
419
+ def _validators; end
420
+ def attribute_type_decorations; end
421
+ def defined_enums; end
422
+ end
423
+ end
424
+
425
+ module ActionText::Serialization
426
+ extend(::ActiveSupport::Concern)
427
+
428
+ mixes_in_class_methods(::ActionText::Serialization::ClassMethods)
429
+
430
+ def _dump(*_); end
431
+ end
432
+
433
+ module ActionText::Serialization::ClassMethods
434
+ def _load(content); end
435
+ def dump(content); end
436
+ def load(content); end
437
+ end
438
+
439
+ module ActionText::TagHelper
440
+ def rich_text_area_tag(name, value = T.unsafe(nil), options = T.unsafe(nil)); end
441
+
442
+ class << self
443
+ def id; end
444
+ def id=(val); end
445
+ end
446
+ end
447
+
448
+ class ActionText::TrixAttachment
449
+ def initialize(node); end
450
+
451
+ def attributes; end
452
+ def node; end
453
+ def to_html; end
454
+ def to_s; end
455
+
456
+ private
457
+
458
+ def attachment_attributes; end
459
+ def composed_attributes; end
460
+ def read_json_attribute(name); end
461
+ def read_json_object_attribute(name); end
462
+
463
+ class << self
464
+ def from_attributes(attributes); end
465
+
466
+ private
467
+
468
+ def process_attributes(attributes); end
469
+ def transform_attribute_keys(attributes); end
470
+ def typecast_attribute_values(attributes); end
471
+ end
472
+ end
473
+
474
+ ActionText::TrixAttachment::ATTRIBUTES = T.let(T.unsafe(nil), Array)
475
+
476
+ ActionText::TrixAttachment::ATTRIBUTE_TYPES = T.let(T.unsafe(nil), Hash)
477
+
478
+ ActionText::TrixAttachment::COMPOSED_ATTRIBUTES = T.let(T.unsafe(nil), Array)
479
+
480
+ ActionText::TrixAttachment::SELECTOR = T.let(T.unsafe(nil), String)
481
+
482
+ ActionText::TrixAttachment::TAG_NAME = T.let(T.unsafe(nil), String)
483
+
484
+ module ActionView::Helpers
485
+ include(::ActiveSupport::Benchmarkable)
486
+ include(::ActionView::Helpers::ActiveModelHelper)
487
+ include(::ActionView::Helpers::AssetUrlHelper)
488
+ include(::ActionView::Helpers::AtomFeedHelper)
489
+ include(::ActionView::Helpers::CacheHelper)
490
+ include(::ActionView::Helpers::SanitizeHelper)
491
+ include(::ActionView::Helpers::CaptureHelper)
492
+ include(::ActionView::Helpers::ControllerHelper)
493
+ include(::ActionView::Helpers::CspHelper)
494
+ include(::ActionView::Helpers::CsrfHelper)
495
+ include(::ActionView::Helpers::DateHelper)
496
+ include(::ActionView::Helpers::OutputSafetyHelper)
497
+ include(::ActionView::Helpers::TagHelper)
498
+ include(::ActionView::Helpers::DebugHelper)
499
+ include(::ActionView::Helpers::TextHelper)
500
+ include(::ActionView::Helpers::FormOptionsHelper)
501
+ include(::ActionView::Helpers::JavaScriptHelper)
502
+ include(::ActionView::Helpers::NumberHelper)
503
+ include(::ActionView::Helpers::RenderingHelper)
504
+ extend(::ActiveSupport::Autoload)
505
+ extend(::ActiveSupport::Concern)
506
+
507
+ include(::ActionView::Helpers::TagHelper)
508
+ include(::ActionView::Helpers::AssetTagHelper)
509
+ include(::ActionView::Helpers::UrlHelper)
510
+ include(::ActionView::Helpers::SanitizeHelper)
511
+ include(::ActionView::Helpers::TextHelper)
512
+ include(::ActionView::Helpers::FormTagHelper)
513
+ include(::ActionView::Helpers::FormHelper)
514
+ include(::ActionView::Helpers::TranslationHelper)
515
+
516
+ class << self
517
+ def eager_load!; end
518
+ end
519
+ end
520
+
521
+ class ActionView::Helpers::FormBuilder
522
+ include(::ActionView::ModelNaming)
523
+
524
+ def initialize(object_name, object, template, options); end
525
+
526
+ def button(value = T.unsafe(nil), options = T.unsafe(nil), &block); end
527
+ def check_box(method, options = T.unsafe(nil), checked_value = T.unsafe(nil), unchecked_value = T.unsafe(nil)); end
528
+ def collection_check_boxes(method, collection, value_method, text_method, options = T.unsafe(nil), html_options = T.unsafe(nil), &block); end
529
+ def collection_radio_buttons(method, collection, value_method, text_method, options = T.unsafe(nil), html_options = T.unsafe(nil), &block); end
530
+ def collection_select(method, collection, value_method, text_method, options = T.unsafe(nil), html_options = T.unsafe(nil)); end
531
+ def color_field(method, options = T.unsafe(nil)); end
532
+ def date_field(method, options = T.unsafe(nil)); end
533
+ def date_select(method, options = T.unsafe(nil), html_options = T.unsafe(nil)); end
534
+ def datetime_field(method, options = T.unsafe(nil)); end
535
+ def datetime_local_field(method, options = T.unsafe(nil)); end
536
+ def datetime_select(method, options = T.unsafe(nil), html_options = T.unsafe(nil)); end
537
+ def email_field(method, options = T.unsafe(nil)); end
538
+ def emitted_hidden_id?; end
539
+ def field_helpers; end
540
+ def field_helpers=(_); end
541
+ def field_helpers?; end
542
+ def fields(scope = T.unsafe(nil), model: T.unsafe(nil), **options, &block); end
543
+ def fields_for(record_name, record_object = T.unsafe(nil), fields_options = T.unsafe(nil), &block); end
544
+ def file_field(method, options = T.unsafe(nil)); end
545
+ def grouped_collection_select(method, collection, group_method, group_label_method, option_key_method, option_value_method, options = T.unsafe(nil), html_options = T.unsafe(nil)); end
546
+ def hidden_field(method, options = T.unsafe(nil)); end
547
+ def index; end
548
+ def label(method, text = T.unsafe(nil), options = T.unsafe(nil), &block); end
549
+ def month_field(method, options = T.unsafe(nil)); end
550
+ def multipart; end
551
+ def multipart=(multipart); end
552
+ def multipart?; end
553
+ def number_field(method, options = T.unsafe(nil)); end
554
+ def object; end
555
+ def object=(_); end
556
+ def object_name; end
557
+ def object_name=(_); end
558
+ def options; end
559
+ def options=(_); end
560
+ def password_field(method, options = T.unsafe(nil)); end
561
+ def phone_field(method, options = T.unsafe(nil)); end
562
+ def radio_button(method, tag_value, options = T.unsafe(nil)); end
563
+ def range_field(method, options = T.unsafe(nil)); end
564
+ def rich_text_area(method, options = T.unsafe(nil)); end
565
+ def search_field(method, options = T.unsafe(nil)); end
566
+ def select(method, choices = T.unsafe(nil), options = T.unsafe(nil), html_options = T.unsafe(nil), &block); end
567
+ def submit(value = T.unsafe(nil), options = T.unsafe(nil)); end
568
+ def telephone_field(method, options = T.unsafe(nil)); end
569
+ def text_area(method, options = T.unsafe(nil)); end
570
+ def text_field(method, options = T.unsafe(nil)); end
571
+ def time_field(method, options = T.unsafe(nil)); end
572
+ def time_select(method, options = T.unsafe(nil), html_options = T.unsafe(nil)); end
573
+ def time_zone_select(method, priority_zones = T.unsafe(nil), options = T.unsafe(nil), html_options = T.unsafe(nil)); end
574
+ def to_model; end
575
+ def to_partial_path; end
576
+ def url_field(method, options = T.unsafe(nil)); end
577
+ def week_field(method, options = T.unsafe(nil)); end
578
+
579
+ private
580
+
581
+ def convert_to_legacy_options(options); end
582
+ def fields_for_nested_model(name, object, fields_options, block); end
583
+ def fields_for_with_nested_attributes(association_name, association, options, block); end
584
+ def nested_attributes_association?(association_name); end
585
+ def nested_child_index(name); end
586
+ def objectify_options(options); end
587
+ def submit_default_value; end
588
+
589
+ class << self
590
+ def _to_partial_path; end
591
+ def field_helpers; end
592
+ def field_helpers=(value); end
593
+ def field_helpers?; end
594
+ end
595
+ end
596
+
597
+ module ActionView::Helpers::FormHelper
598
+ include(::ActionView::ModelNaming)
599
+ include(::ActionView::RecordIdentifier)
600
+ extend(::ActiveSupport::Concern)
601
+
602
+ include(::ActionView::Helpers::TagHelper)
603
+ include(::ActionView::Helpers::UrlHelper)
604
+ include(::ActionView::Helpers::SanitizeHelper)
605
+ include(::ActionView::Helpers::TextHelper)
606
+ include(::ActionView::Helpers::FormTagHelper)
607
+
608
+ def check_box(object_name, method, options = T.unsafe(nil), checked_value = T.unsafe(nil), unchecked_value = T.unsafe(nil)); end
609
+ def color_field(object_name, method, options = T.unsafe(nil)); end
610
+ def date_field(object_name, method, options = T.unsafe(nil)); end
611
+ def datetime_field(object_name, method, options = T.unsafe(nil)); end
612
+ def datetime_local_field(object_name, method, options = T.unsafe(nil)); end
613
+ def default_form_builder; end
614
+ def default_form_builder=(_); end
615
+ def email_field(object_name, method, options = T.unsafe(nil)); end
616
+ def fields(scope = T.unsafe(nil), model: T.unsafe(nil), **options, &block); end
617
+ def fields_for(record_name, record_object = T.unsafe(nil), options = T.unsafe(nil), &block); end
618
+ def file_field(object_name, method, options = T.unsafe(nil)); end
619
+ def form_for(record, options = T.unsafe(nil), &block); end
620
+ def form_with(model: T.unsafe(nil), scope: T.unsafe(nil), url: T.unsafe(nil), format: T.unsafe(nil), **options, &block); end
621
+ def form_with_generates_ids; end
622
+ def form_with_generates_ids=(val); end
623
+ def form_with_generates_remote_forms; end
624
+ def form_with_generates_remote_forms=(val); end
625
+ def hidden_field(object_name, method, options = T.unsafe(nil)); end
626
+ def label(object_name, method, content_or_options = T.unsafe(nil), options = T.unsafe(nil), &block); end
627
+ def month_field(object_name, method, options = T.unsafe(nil)); end
628
+ def number_field(object_name, method, options = T.unsafe(nil)); end
629
+ def password_field(object_name, method, options = T.unsafe(nil)); end
630
+ def phone_field(object_name, method, options = T.unsafe(nil)); end
631
+ def radio_button(object_name, method, tag_value, options = T.unsafe(nil)); end
632
+ def range_field(object_name, method, options = T.unsafe(nil)); end
633
+ def rich_text_area(object_name, method, options = T.unsafe(nil)); end
634
+ def search_field(object_name, method, options = T.unsafe(nil)); end
635
+ def telephone_field(object_name, method, options = T.unsafe(nil)); end
636
+ def text_area(object_name, method, options = T.unsafe(nil)); end
637
+ def text_field(object_name, method, options = T.unsafe(nil)); end
638
+ def time_field(object_name, method, options = T.unsafe(nil)); end
639
+ def url_field(object_name, method, options = T.unsafe(nil)); end
640
+ def week_field(object_name, method, options = T.unsafe(nil)); end
641
+
642
+ private
643
+
644
+ def apply_form_for_options!(record, object, options); end
645
+ def default_form_builder_class; end
646
+ def html_options_for_form_with(url_for_options = T.unsafe(nil), model = T.unsafe(nil), html: T.unsafe(nil), local: T.unsafe(nil), skip_enforcing_utf8: T.unsafe(nil), **options); end
647
+ def instantiate_builder(record_name, record_object, options); end
648
+
649
+ class << self
650
+ def form_with_generates_ids; end
651
+ def form_with_generates_ids=(val); end
652
+ def form_with_generates_remote_forms; end
653
+ def form_with_generates_remote_forms=(val); end
654
+ end
655
+ end
656
+
657
+ class ActionView::Helpers::Tags::ActionText < ::ActionView::Helpers::Tags::Base
658
+ include(::ActionView::Helpers::Tags::Placeholderable)
659
+
660
+ def dom_id(*args, &block); end
661
+ def editable_value; end
662
+ def render; end
663
+ end