packwerk 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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