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,904 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `activestorage` gem.
3
+ # Please instead update this file by running `dev typecheck update`.
4
+
5
+ # typed: true
6
+
7
+ module ActiveStorage
8
+ extend(::ActiveSupport::Autoload)
9
+
10
+ def analyzers; end
11
+ def analyzers=(val); end
12
+ def binary_content_type; end
13
+ def binary_content_type=(val); end
14
+ def content_types_allowed_inline; end
15
+ def content_types_allowed_inline=(val); end
16
+ def content_types_to_serve_as_binary; end
17
+ def content_types_to_serve_as_binary=(val); end
18
+ def draw_routes; end
19
+ def draw_routes=(val); end
20
+ def logger; end
21
+ def logger=(val); end
22
+ def paths; end
23
+ def paths=(val); end
24
+ def previewers; end
25
+ def previewers=(val); end
26
+ def queues; end
27
+ def queues=(val); end
28
+ def replace_on_assign_to_many; end
29
+ def replace_on_assign_to_many=(val); end
30
+ def routes_prefix; end
31
+ def routes_prefix=(val); end
32
+ def service_urls_expire_in; end
33
+ def service_urls_expire_in=(val); end
34
+ def track_variants; end
35
+ def track_variants=(val); end
36
+ def variable_content_types; end
37
+ def variable_content_types=(val); end
38
+ def variant_processor; end
39
+ def variant_processor=(val); end
40
+ def verifier; end
41
+ def verifier=(val); end
42
+ def web_image_content_types; end
43
+ def web_image_content_types=(val); end
44
+
45
+ class << self
46
+ def analyzers; end
47
+ def analyzers=(val); end
48
+ def binary_content_type; end
49
+ def binary_content_type=(val); end
50
+ def content_types_allowed_inline; end
51
+ def content_types_allowed_inline=(val); end
52
+ def content_types_to_serve_as_binary; end
53
+ def content_types_to_serve_as_binary=(val); end
54
+ def draw_routes; end
55
+ def draw_routes=(val); end
56
+ def gem_version; end
57
+ def logger; end
58
+ def logger=(val); end
59
+ def paths; end
60
+ def paths=(val); end
61
+ def previewers; end
62
+ def previewers=(val); end
63
+ def queues; end
64
+ def queues=(val); end
65
+ def railtie_helpers_paths; end
66
+ def railtie_namespace; end
67
+ def railtie_routes_url_helpers(include_path_helpers = T.unsafe(nil)); end
68
+ def replace_on_assign_to_many; end
69
+ def replace_on_assign_to_many=(val); end
70
+ def routes_prefix; end
71
+ def routes_prefix=(val); end
72
+ def service_urls_expire_in; end
73
+ def service_urls_expire_in=(val); end
74
+ def table_name_prefix; end
75
+ def track_variants; end
76
+ def track_variants=(val); end
77
+ def use_relative_model_naming?; end
78
+ def variable_content_types; end
79
+ def variable_content_types=(val); end
80
+ def variant_processor; end
81
+ def variant_processor=(val); end
82
+ def verifier; end
83
+ def verifier=(val); end
84
+ def version; end
85
+ def web_image_content_types; end
86
+ def web_image_content_types=(val); end
87
+ end
88
+ end
89
+
90
+ class ActiveStorage::AnalyzeJob < ::ActiveStorage::BaseJob
91
+ def perform(blob); end
92
+
93
+ class << self
94
+ def queue_name; end
95
+ def rescue_handlers; end
96
+ end
97
+ end
98
+
99
+ class ActiveStorage::Analyzer
100
+ def initialize(blob); end
101
+
102
+ def blob; end
103
+ def metadata; end
104
+
105
+ private
106
+
107
+ def download_blob_to_tempfile(&block); end
108
+ def logger; end
109
+ def tmpdir; end
110
+
111
+ class << self
112
+ def accept?(blob); end
113
+ def analyze_later?; end
114
+ end
115
+ end
116
+
117
+ class ActiveStorage::Analyzer::ImageAnalyzer < ::ActiveStorage::Analyzer
118
+ def metadata; end
119
+
120
+ private
121
+
122
+ def read_image; end
123
+ def rotated_image?(image); end
124
+
125
+ class << self
126
+ def accept?(blob); end
127
+ end
128
+ end
129
+
130
+ class ActiveStorage::Analyzer::NullAnalyzer < ::ActiveStorage::Analyzer
131
+ def metadata; end
132
+
133
+ class << self
134
+ def accept?(blob); end
135
+ def analyze_later?; end
136
+ end
137
+ end
138
+
139
+ class ActiveStorage::Analyzer::VideoAnalyzer < ::ActiveStorage::Analyzer
140
+ def metadata; end
141
+
142
+ private
143
+
144
+ def angle; end
145
+ def computed_height; end
146
+ def display_aspect_ratio; end
147
+ def display_height_scale; end
148
+ def duration; end
149
+ def encoded_height; end
150
+ def encoded_width; end
151
+ def ffprobe_path; end
152
+ def height; end
153
+ def probe; end
154
+ def probe_from(file); end
155
+ def rotated?; end
156
+ def streams; end
157
+ def tags; end
158
+ def video_stream; end
159
+ def width; end
160
+
161
+ class << self
162
+ def accept?(blob); end
163
+ end
164
+ end
165
+
166
+ class ActiveStorage::Attached
167
+ def initialize(name, record); end
168
+
169
+ def name; end
170
+ def record; end
171
+
172
+ private
173
+
174
+ def change; end
175
+ end
176
+
177
+ module ActiveStorage::Attached::Changes
178
+ extend(::ActiveSupport::Autoload)
179
+ end
180
+
181
+ class ActiveStorage::Attached::Changes::CreateMany
182
+ def initialize(name, record, attachables); end
183
+
184
+ def attachables; end
185
+ def attachments; end
186
+ def blobs; end
187
+ def name; end
188
+ def record; end
189
+ def save; end
190
+ def upload; end
191
+
192
+ private
193
+
194
+ def assign_associated_attachments; end
195
+ def build_subchange_from(attachable); end
196
+ def reset_associated_blobs; end
197
+ def subchanges; end
198
+ end
199
+
200
+ class ActiveStorage::Attached::Changes::CreateOne
201
+ def initialize(name, record, attachable); end
202
+
203
+ def attachable; end
204
+ def attachment; end
205
+ def blob; end
206
+ def name; end
207
+ def record; end
208
+ def save; end
209
+ def upload; end
210
+
211
+ private
212
+
213
+ def attachment_service_name; end
214
+ def build_attachment; end
215
+ def find_attachment; end
216
+ def find_or_build_attachment; end
217
+ def find_or_build_blob; end
218
+ end
219
+
220
+ class ActiveStorage::Attached::Changes::CreateOneOfMany < ::ActiveStorage::Attached::Changes::CreateOne
221
+
222
+ private
223
+
224
+ def find_attachment; end
225
+ end
226
+
227
+ class ActiveStorage::Attached::Changes::DeleteMany
228
+ def initialize(name, record); end
229
+
230
+ def attachables; end
231
+ def attachments; end
232
+ def blobs; end
233
+ def name; end
234
+ def record; end
235
+ def save; end
236
+ end
237
+
238
+ class ActiveStorage::Attached::Changes::DeleteOne
239
+ def initialize(name, record); end
240
+
241
+ def attachment; end
242
+ def name; end
243
+ def record; end
244
+ def save; end
245
+ end
246
+
247
+ class ActiveStorage::Attached::Many < ::ActiveStorage::Attached
248
+ def attach(*attachables); end
249
+ def attached?; end
250
+ def attachments; end
251
+ def blobs; end
252
+ def detach; end
253
+ def method_missing(method, *args, &block); end
254
+
255
+ private
256
+
257
+ def respond_to_missing?(name, include_private = T.unsafe(nil)); end
258
+ end
259
+
260
+ module ActiveStorage::Attached::Model
261
+ extend(::ActiveSupport::Concern)
262
+
263
+ mixes_in_class_methods(::ActiveStorage::Attached::Model::ClassMethods)
264
+
265
+ def attachment_changes; end
266
+ def changed_for_autosave?; end
267
+ def reload(*_); end
268
+ end
269
+
270
+ module ActiveStorage::Attached::Model::ClassMethods
271
+ def has_many_attached(name, dependent: T.unsafe(nil), service: T.unsafe(nil)); end
272
+ def has_one_attached(name, dependent: T.unsafe(nil), service: T.unsafe(nil)); end
273
+
274
+ private
275
+
276
+ def validate_service_configuration(association_name, service); end
277
+ end
278
+
279
+ class ActiveStorage::Attached::One < ::ActiveStorage::Attached
280
+ def attach(attachable); end
281
+ def attached?; end
282
+ def attachment; end
283
+ def blank?; end
284
+ def detach; end
285
+ def method_missing(method, *args, &block); end
286
+ def purge; end
287
+ def purge_later; end
288
+
289
+ private
290
+
291
+ def respond_to_missing?(name, include_private = T.unsafe(nil)); end
292
+ def write_attachment(attachment); end
293
+ end
294
+
295
+ class ActiveStorage::Attachment < ::ActiveRecord::Base
296
+ def autosave_associated_records_for_blob(*args); end
297
+ def autosave_associated_records_for_record(*args); end
298
+ def method_missing(method, *args, &block); end
299
+ def purge; end
300
+ def purge_later; end
301
+
302
+ private
303
+
304
+ def analyze_blob_later; end
305
+ def dependent; end
306
+ def identify_blob; end
307
+ def mirror_blob_later; end
308
+ def purge_dependent_blob_later; end
309
+ def respond_to_missing?(name, include_private = T.unsafe(nil)); end
310
+
311
+ class << self
312
+ def __callbacks; end
313
+ def _reflections; end
314
+ def _validators; end
315
+ def attribute_type_decorations; end
316
+ def defined_enums; end
317
+ end
318
+ end
319
+
320
+ class ActiveStorage::BaseController < ::ActionController::Base
321
+ include(::ActiveStorage::SetCurrent)
322
+
323
+
324
+ private
325
+
326
+ def _layout(lookup_context, formats); end
327
+
328
+ class << self
329
+ def __callbacks; end
330
+ def _helpers; end
331
+ def middleware_stack; end
332
+ end
333
+ end
334
+
335
+ module ActiveStorage::BaseController::HelperMethods
336
+ include(::ActionController::Base::HelperMethods)
337
+ end
338
+
339
+ class ActiveStorage::BaseJob < ::ActiveJob::Base
340
+ end
341
+
342
+ class ActiveStorage::Blob < ::ActiveRecord::Base
343
+ include(::ActiveStorage::Blob::Analyzable)
344
+ include(::ActiveStorage::Blob::Identifiable)
345
+ include(::ActiveStorage::Blob::Representable)
346
+
347
+ def after_add_for_variant_records; end
348
+ def after_add_for_variant_records=(_); end
349
+ def after_add_for_variant_records?; end
350
+ def after_remove_for_variant_records; end
351
+ def after_remove_for_variant_records=(_); end
352
+ def after_remove_for_variant_records?; end
353
+ def autosave_associated_records_for_variant_records(*args); end
354
+ def before_add_for_variant_records; end
355
+ def before_add_for_variant_records=(_); end
356
+ def before_add_for_variant_records?; end
357
+ def before_remove_for_variant_records; end
358
+ def before_remove_for_variant_records=(_); end
359
+ def before_remove_for_variant_records?; end
360
+ def validate_associated_records_for_variant_records(*args); end
361
+
362
+ class << self
363
+ def __callbacks; end
364
+ def _reflections; end
365
+ def _validators; end
366
+ def after_add_for_variant_records; end
367
+ def after_add_for_variant_records=(value); end
368
+ def after_add_for_variant_records?; end
369
+ def after_remove_for_variant_records; end
370
+ def after_remove_for_variant_records=(value); end
371
+ def after_remove_for_variant_records?; end
372
+ def attribute_type_decorations; end
373
+ def before_add_for_variant_records; end
374
+ def before_add_for_variant_records=(value); end
375
+ def before_add_for_variant_records?; end
376
+ def before_remove_for_variant_records; end
377
+ def before_remove_for_variant_records=(value); end
378
+ def before_remove_for_variant_records?; end
379
+ def defined_enums; end
380
+ end
381
+ end
382
+
383
+ module ActiveStorage::Blob::Analyzable
384
+ def analyze; end
385
+ def analyze_later; end
386
+ def analyzed?; end
387
+
388
+ private
389
+
390
+ def analyzer; end
391
+ def analyzer_class; end
392
+ def extract_metadata_via_analyzer; end
393
+ end
394
+
395
+ module ActiveStorage::Blob::Identifiable
396
+ def identified?; end
397
+ def identify; end
398
+
399
+ private
400
+
401
+ def download_identifiable_chunk; end
402
+ def identify_content_type; end
403
+ def update_service_metadata; end
404
+ end
405
+
406
+ module ActiveStorage::Blob::Representable
407
+ extend(::ActiveSupport::Concern)
408
+
409
+ def preview(transformations); end
410
+ def previewable?; end
411
+ def representable?; end
412
+ def representation(transformations); end
413
+ def variable?; end
414
+ def variant(transformations); end
415
+
416
+ private
417
+
418
+ def variant_class; end
419
+ end
420
+
421
+ class ActiveStorage::BlobsController < ::ActiveStorage::BaseController
422
+ include(::ActiveStorage::SetBlob)
423
+
424
+ def show; end
425
+
426
+ private
427
+
428
+ def _layout(lookup_context, formats); end
429
+
430
+ class << self
431
+ def __callbacks; end
432
+ def _helpers; end
433
+ def middleware_stack; end
434
+ end
435
+ end
436
+
437
+ module ActiveStorage::BlobsController::HelperMethods
438
+ include(::ActionController::Base::HelperMethods)
439
+ include(::ActiveStorage::BaseController::HelperMethods)
440
+ end
441
+
442
+ class ActiveStorage::Current < ::ActiveSupport::CurrentAttributes
443
+ class << self
444
+ def host; end
445
+ def host=(attribute); end
446
+ end
447
+ end
448
+
449
+ class ActiveStorage::DirectUploadsController < ::ActiveStorage::BaseController
450
+ def create; end
451
+
452
+ private
453
+
454
+ def _layout(lookup_context, formats); end
455
+ def blob_args; end
456
+ def direct_upload_json(blob); end
457
+
458
+ class << self
459
+ def __callbacks; end
460
+ def _helpers; end
461
+ def middleware_stack; end
462
+ end
463
+ end
464
+
465
+ module ActiveStorage::DirectUploadsController::HelperMethods
466
+ include(::ActionController::Base::HelperMethods)
467
+ include(::ActiveStorage::BaseController::HelperMethods)
468
+ end
469
+
470
+ class ActiveStorage::DiskController < ::ActiveStorage::BaseController
471
+ include(::ActiveStorage::FileServer)
472
+
473
+ def show; end
474
+ def update; end
475
+
476
+ private
477
+
478
+ def _layout(lookup_context, formats); end
479
+ def acceptable_content?(token); end
480
+ def decode_verified_key; end
481
+ def decode_verified_token; end
482
+ def named_disk_service(name); end
483
+
484
+ class << self
485
+ def __callbacks; end
486
+ def _helpers; end
487
+ def middleware_stack; end
488
+ end
489
+ end
490
+
491
+ module ActiveStorage::DiskController::HelperMethods
492
+ include(::ActionController::Base::HelperMethods)
493
+ include(::ActiveStorage::BaseController::HelperMethods)
494
+ end
495
+
496
+ class ActiveStorage::Downloader
497
+ def initialize(service); end
498
+
499
+ def open(key, checksum:, name: T.unsafe(nil), tmpdir: T.unsafe(nil)); end
500
+ def service; end
501
+
502
+ private
503
+
504
+ def download(key, file); end
505
+ def open_tempfile(name, tmpdir = T.unsafe(nil)); end
506
+ def verify_integrity_of(file, checksum:); end
507
+ end
508
+
509
+ class ActiveStorage::Engine < ::Rails::Engine
510
+ end
511
+
512
+ class ActiveStorage::Error < ::StandardError
513
+ end
514
+
515
+ class ActiveStorage::FileNotFoundError < ::ActiveStorage::Error
516
+ end
517
+
518
+ module ActiveStorage::FileServer
519
+
520
+ private
521
+
522
+ def serve_file(path, content_type:, disposition:); end
523
+ end
524
+
525
+ class ActiveStorage::Filename
526
+ include(::Comparable)
527
+
528
+ def initialize(filename); end
529
+
530
+ def <=>(other); end
531
+ def as_json(*_); end
532
+ def base; end
533
+ def extension; end
534
+ def extension_with_delimiter; end
535
+ def extension_without_delimiter; end
536
+ def sanitized; end
537
+ def to_json; end
538
+ def to_s; end
539
+
540
+ class << self
541
+ def wrap(filename); end
542
+ end
543
+ end
544
+
545
+ class ActiveStorage::IntegrityError < ::ActiveStorage::Error
546
+ end
547
+
548
+ class ActiveStorage::InvariableError < ::ActiveStorage::Error
549
+ end
550
+
551
+ class ActiveStorage::LogSubscriber < ::ActiveSupport::LogSubscriber
552
+ def logger; end
553
+ def service_delete(event); end
554
+ def service_delete_prefixed(event); end
555
+ def service_download(event); end
556
+ def service_exist(event); end
557
+ def service_mirror(event); end
558
+ def service_streaming_download(event); end
559
+ def service_upload(event); end
560
+ def service_url(event); end
561
+
562
+ private
563
+
564
+ def debug(event, colored_message); end
565
+ def info(event, colored_message); end
566
+ def key_in(event); end
567
+ def log_prefix_for_service(event); end
568
+ end
569
+
570
+ class ActiveStorage::MirrorJob < ::ActiveStorage::BaseJob
571
+ def perform(key, checksum:); end
572
+
573
+ class << self
574
+ def queue_name; end
575
+ def rescue_handlers; end
576
+ end
577
+ end
578
+
579
+ class ActiveStorage::Preview
580
+ def initialize(blob, variation_or_variation_key); end
581
+
582
+ def blob; end
583
+ def image; end
584
+ def processed; end
585
+ def service_url(*args, &block); end
586
+ def url(**options); end
587
+ def variation; end
588
+
589
+ private
590
+
591
+ def previewer; end
592
+ def previewer_class; end
593
+ def process; end
594
+ def processed?; end
595
+ def variant; end
596
+ end
597
+
598
+ class ActiveStorage::Preview::UnprocessedError < ::StandardError
599
+ end
600
+
601
+ class ActiveStorage::Previewer
602
+ def initialize(blob); end
603
+
604
+ def blob; end
605
+ def preview(**options); end
606
+
607
+ private
608
+
609
+ def capture(*argv, to:); end
610
+ def download_blob_to_tempfile(&block); end
611
+ def draw(*argv); end
612
+ def instrument(operation, payload = T.unsafe(nil), &block); end
613
+ def logger; end
614
+ def open_tempfile; end
615
+ def tmpdir; end
616
+
617
+ class << self
618
+ def accept?(blob); end
619
+ end
620
+ end
621
+
622
+ class ActiveStorage::Previewer::MuPDFPreviewer < ::ActiveStorage::Previewer
623
+ def preview(**options); end
624
+
625
+ private
626
+
627
+ def draw_first_page_from(file, &block); end
628
+
629
+ class << self
630
+ def accept?(blob); end
631
+ def mutool_exists?; end
632
+ def mutool_path; end
633
+ end
634
+ end
635
+
636
+ class ActiveStorage::Previewer::PopplerPDFPreviewer < ::ActiveStorage::Previewer
637
+ def preview(**options); end
638
+
639
+ private
640
+
641
+ def draw_first_page_from(file, &block); end
642
+
643
+ class << self
644
+ def accept?(blob); end
645
+ def pdftoppm_exists?; end
646
+ def pdftoppm_path; end
647
+ end
648
+ end
649
+
650
+ class ActiveStorage::Previewer::VideoPreviewer < ::ActiveStorage::Previewer
651
+ def preview(**options); end
652
+
653
+ private
654
+
655
+ def draw_relevant_frame_from(file, &block); end
656
+
657
+ class << self
658
+ def accept?(blob); end
659
+ def ffmpeg_exists?; end
660
+ def ffmpeg_path; end
661
+ end
662
+ end
663
+
664
+ class ActiveStorage::PurgeJob < ::ActiveStorage::BaseJob
665
+ def perform(blob); end
666
+
667
+ class << self
668
+ def queue_name; end
669
+ def rescue_handlers; end
670
+ end
671
+ end
672
+
673
+ module ActiveStorage::Reflection
674
+ end
675
+
676
+ module ActiveStorage::Reflection::ActiveRecordExtensions
677
+ extend(::ActiveSupport::Concern)
678
+
679
+ mixes_in_class_methods(::ActiveStorage::Reflection::ActiveRecordExtensions::ClassMethods)
680
+ end
681
+
682
+ module ActiveStorage::Reflection::ActiveRecordExtensions::ClassMethods
683
+ def reflect_on_all_attachments; end
684
+ def reflect_on_attachment(attachment); end
685
+ end
686
+
687
+ class ActiveStorage::Reflection::HasManyAttachedReflection < ::ActiveRecord::Reflection::MacroReflection
688
+ def macro; end
689
+ end
690
+
691
+ class ActiveStorage::Reflection::HasOneAttachedReflection < ::ActiveRecord::Reflection::MacroReflection
692
+ def macro; end
693
+ end
694
+
695
+ module ActiveStorage::Reflection::ReflectionExtension
696
+ def add_attachment_reflection(model, name, reflection); end
697
+
698
+ private
699
+
700
+ def reflection_class_for(macro); end
701
+ end
702
+
703
+ class ActiveStorage::RepresentationsController < ::ActiveStorage::BaseController
704
+ include(::ActiveStorage::SetBlob)
705
+
706
+ def show; end
707
+
708
+ private
709
+
710
+ def _layout(lookup_context, formats); end
711
+
712
+ class << self
713
+ def __callbacks; end
714
+ def _helpers; end
715
+ def middleware_stack; end
716
+ end
717
+ end
718
+
719
+ module ActiveStorage::RepresentationsController::HelperMethods
720
+ include(::ActionController::Base::HelperMethods)
721
+ include(::ActiveStorage::BaseController::HelperMethods)
722
+ end
723
+
724
+ class ActiveStorage::Service
725
+ extend(::ActiveSupport::Autoload)
726
+
727
+ def delete(key); end
728
+ def delete_prefixed(prefix); end
729
+ def download(key); end
730
+ def download_chunk(key, range); end
731
+ def exist?(key); end
732
+ def headers_for_direct_upload(key, filename:, content_type:, content_length:, checksum:); end
733
+ def name; end
734
+ def name=(_); end
735
+ def open(*args, **options, &block); end
736
+ def public?; end
737
+ def update_metadata(key, **metadata); end
738
+ def upload(key, io, checksum: T.unsafe(nil), **options); end
739
+ def url(key, **options); end
740
+ def url_for_direct_upload(key, expires_in:, content_type:, content_length:, checksum:); end
741
+
742
+ private
743
+
744
+ def content_disposition_with(filename:, type: T.unsafe(nil)); end
745
+ def instrument(operation, payload = T.unsafe(nil), &block); end
746
+ def private_url(key, expires_in:, filename:, disposition:, content_type:, **_); end
747
+ def public_url(key, **_); end
748
+ def service_name; end
749
+
750
+ class << self
751
+ def build(configurator:, name:, service: T.unsafe(nil), **service_config); end
752
+ def configure(service_name, configurations); end
753
+ end
754
+ end
755
+
756
+ class ActiveStorage::Service::Configurator
757
+ def initialize(configurations); end
758
+
759
+ def build(service_name); end
760
+ def configurations; end
761
+
762
+ private
763
+
764
+ def config_for(name); end
765
+ def resolve(class_name); end
766
+
767
+ class << self
768
+ def build(service_name, configurations); end
769
+ end
770
+ end
771
+
772
+ class ActiveStorage::Service::Registry
773
+ def initialize(configurations); end
774
+
775
+ def fetch(name); end
776
+
777
+ private
778
+
779
+ def configurations; end
780
+ def configurator; end
781
+ def services; end
782
+ end
783
+
784
+ module ActiveStorage::SetBlob
785
+ extend(::ActiveSupport::Concern)
786
+
787
+
788
+ private
789
+
790
+ def set_blob; end
791
+ end
792
+
793
+ module ActiveStorage::SetCurrent
794
+ extend(::ActiveSupport::Concern)
795
+ end
796
+
797
+ module ActiveStorage::Transformers
798
+ extend(::ActiveSupport::Autoload)
799
+ end
800
+
801
+ class ActiveStorage::Transformers::Transformer
802
+ def initialize(transformations); end
803
+
804
+ def transform(file, format:); end
805
+ def transformations; end
806
+
807
+ private
808
+
809
+ def process(file, format:); end
810
+ end
811
+
812
+ class ActiveStorage::UnpreviewableError < ::ActiveStorage::Error
813
+ end
814
+
815
+ class ActiveStorage::UnrepresentableError < ::ActiveStorage::Error
816
+ end
817
+
818
+ module ActiveStorage::VERSION
819
+ end
820
+
821
+ ActiveStorage::VERSION::MAJOR = T.let(T.unsafe(nil), Integer)
822
+
823
+ ActiveStorage::VERSION::MINOR = T.let(T.unsafe(nil), Integer)
824
+
825
+ ActiveStorage::VERSION::PRE = T.let(T.unsafe(nil), String)
826
+
827
+ ActiveStorage::VERSION::STRING = T.let(T.unsafe(nil), String)
828
+
829
+ ActiveStorage::VERSION::TINY = T.let(T.unsafe(nil), Integer)
830
+
831
+ class ActiveStorage::Variant
832
+ def initialize(blob, variation_or_variation_key); end
833
+
834
+ def blob; end
835
+ def content_type(*args, &block); end
836
+ def filename(*args, &block); end
837
+ def format(*args, &block); end
838
+ def image; end
839
+ def key; end
840
+ def processed; end
841
+ def service(*args, &block); end
842
+ def service_url(*args, &block); end
843
+ def url(expires_in: T.unsafe(nil), disposition: T.unsafe(nil)); end
844
+ def variation; end
845
+
846
+ private
847
+
848
+ def process; end
849
+ def processed?; end
850
+ def specification; end
851
+ end
852
+
853
+ class ActiveStorage::Variant::Specification < ::OpenStruct
854
+ end
855
+
856
+ class ActiveStorage::VariantRecord < ::ActiveRecord::Base
857
+ def autosave_associated_records_for_blob(*args); end
858
+
859
+ class << self
860
+ def __callbacks; end
861
+ def _reflections; end
862
+ def _validators; end
863
+ def attribute_type_decorations; end
864
+ def defined_enums; end
865
+ end
866
+ end
867
+
868
+ class ActiveStorage::VariantWithRecord
869
+ def initialize(blob, variation); end
870
+
871
+ def blob; end
872
+ def image; end
873
+ def process; end
874
+ def processed; end
875
+ def processed?; end
876
+ def service_url(*args, &block); end
877
+ def url(**options); end
878
+ def variation; end
879
+
880
+ private
881
+
882
+ def create_or_find_record(image:); end
883
+ def record; end
884
+ def transform_blob; end
885
+ end
886
+
887
+ class ActiveStorage::Variation
888
+ def initialize(transformations); end
889
+
890
+ def digest; end
891
+ def key; end
892
+ def transform(file, format: T.unsafe(nil), &block); end
893
+ def transformations; end
894
+
895
+ private
896
+
897
+ def transformer; end
898
+
899
+ class << self
900
+ def decode(key); end
901
+ def encode(transformations); end
902
+ def wrap(variator); end
903
+ end
904
+ end