leftovers 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +7 -7
  4. data/docs/Configuration.md +141 -32
  5. data/docs/Custom-Precompilers.md +6 -0
  6. data/leftovers.gemspec +2 -1
  7. data/lib/config/actioncable.yml +36 -0
  8. data/lib/config/actionmailbox.yml +28 -0
  9. data/lib/config/actionmailer.yml +87 -11
  10. data/lib/config/actionpack.yml +130 -34
  11. data/lib/config/actiontext.yml +56 -0
  12. data/lib/config/actionview.yml +194 -44
  13. data/lib/config/activejob.yml +15 -8
  14. data/lib/config/activemodel.yml +175 -18
  15. data/lib/config/activerecord.yml +397 -86
  16. data/lib/config/activestorage.yml +26 -0
  17. data/lib/config/activesupport.yml +167 -24
  18. data/lib/config/leftovers.yml +48 -0
  19. data/lib/config/rails.yml +7 -3
  20. data/lib/config/railties.yml +7 -0
  21. data/lib/config/ruby.yml +438 -83
  22. data/lib/config/test-unit.yml +8 -0
  23. data/lib/leftovers/ast/array_node.rb +12 -0
  24. data/lib/leftovers/ast/block_node.rb +12 -0
  25. data/lib/leftovers/ast/builder.rb +24 -5
  26. data/lib/leftovers/ast/casgn_node.rb +20 -0
  27. data/lib/leftovers/ast/const_node.rb +15 -0
  28. data/lib/leftovers/ast/def_node.rb +15 -0
  29. data/lib/leftovers/ast/defs_node.rb +15 -0
  30. data/lib/leftovers/ast/false_node.rb +24 -0
  31. data/lib/leftovers/ast/has_arguments.rb +31 -0
  32. data/lib/leftovers/ast/hash_node.rb +17 -0
  33. data/lib/leftovers/ast/module_node.rb +16 -0
  34. data/lib/leftovers/ast/nil_node.rb +23 -0
  35. data/lib/leftovers/ast/node.rb +33 -90
  36. data/lib/leftovers/ast/numeric_node.rb +22 -0
  37. data/lib/leftovers/ast/send_node.rb +25 -0
  38. data/lib/leftovers/ast/str_node.rb +24 -0
  39. data/lib/leftovers/ast/sym_node.rb +25 -0
  40. data/lib/leftovers/ast/true_node.rb +24 -0
  41. data/lib/leftovers/ast/var_node.rb +14 -0
  42. data/lib/leftovers/ast/vasgn_node.rb +20 -0
  43. data/lib/leftovers/ast.rb +18 -0
  44. data/lib/leftovers/cli.rb +7 -1
  45. data/lib/leftovers/comparable_instance.rb +18 -0
  46. data/lib/leftovers/config_loader/argument_position_schema.rb +3 -1
  47. data/lib/leftovers/config_loader/array_schema.rb +53 -0
  48. data/lib/leftovers/config_loader/document_schema.rb +3 -2
  49. data/lib/leftovers/config_loader/dynamic_schema.rb +1 -0
  50. data/lib/leftovers/config_loader/has_value_schema.rb +4 -0
  51. data/lib/leftovers/config_loader/keyword_argument_schema.rb +13 -0
  52. data/lib/leftovers/config_loader/regexp_schema.rb +27 -0
  53. data/lib/leftovers/config_loader/rule_pattern_schema.rb +2 -0
  54. data/lib/leftovers/config_loader/scalar_value_schema.rb +8 -0
  55. data/lib/leftovers/config_loader/schema.rb +10 -0
  56. data/lib/leftovers/config_loader/string_enum_schema.rb +1 -1
  57. data/lib/leftovers/config_loader/string_pattern_schema.rb +1 -1
  58. data/lib/leftovers/config_loader/transform_schema.rb +12 -6
  59. data/lib/leftovers/config_loader/value_matcher_condition_schema.rb +13 -0
  60. data/lib/leftovers/config_loader/value_matcher_schema.rb +4 -1
  61. data/lib/leftovers/config_loader/value_or_array_schema.rb +2 -34
  62. data/lib/leftovers/config_loader/value_processor_schema.rb +2 -2
  63. data/lib/leftovers/config_loader.rb +11 -4
  64. data/lib/leftovers/definition_collection.rb +37 -0
  65. data/lib/leftovers/definition_node_set.rb +10 -2
  66. data/lib/leftovers/file.rb +1 -1
  67. data/lib/leftovers/file_collector/comments_processor.rb +1 -1
  68. data/lib/leftovers/file_collector/node_processor.rb +7 -7
  69. data/lib/leftovers/file_collector.rb +26 -32
  70. data/lib/leftovers/file_list.rb +3 -2
  71. data/lib/leftovers/matcher_builders/and.rb +26 -9
  72. data/lib/leftovers/matcher_builders/node.rb +32 -20
  73. data/lib/leftovers/matcher_builders/node_has_keyword_argument.rb +3 -1
  74. data/lib/leftovers/matcher_builders/node_pair_key.rb +16 -0
  75. data/lib/leftovers/matcher_builders/node_type.rb +9 -9
  76. data/lib/leftovers/matcher_builders/node_value.rb +23 -9
  77. data/lib/leftovers/matcher_builders/or.rb +22 -7
  78. data/lib/leftovers/matcher_builders/path.rb +3 -1
  79. data/lib/leftovers/matcher_builders.rb +1 -1
  80. data/lib/leftovers/matchers/all.rb +4 -0
  81. data/lib/leftovers/matchers/and.rb +4 -0
  82. data/lib/leftovers/matchers/any.rb +2 -0
  83. data/lib/leftovers/matchers/node_has_any_keyword_argument.rb +7 -4
  84. data/lib/leftovers/matchers/node_has_any_positional_argument_with_value.rb +5 -4
  85. data/lib/leftovers/matchers/node_has_positional_argument.rb +5 -1
  86. data/lib/leftovers/matchers/node_has_positional_argument_with_value.rb +6 -1
  87. data/lib/leftovers/matchers/node_has_receiver.rb +4 -0
  88. data/lib/leftovers/matchers/node_is_proc.rb +13 -0
  89. data/lib/leftovers/matchers/node_name.rb +9 -3
  90. data/lib/leftovers/matchers/node_pair_key.rb +23 -0
  91. data/lib/leftovers/matchers/node_pair_value.rb +7 -3
  92. data/lib/leftovers/matchers/node_path.rb +7 -3
  93. data/lib/leftovers/matchers/node_privacy.rb +7 -3
  94. data/lib/leftovers/matchers/node_scalar_value.rb +6 -1
  95. data/lib/leftovers/matchers/node_type.rb +7 -3
  96. data/lib/leftovers/matchers/not.rb +2 -0
  97. data/lib/leftovers/matchers/or.rb +2 -0
  98. data/lib/leftovers/matchers/path.rb +21 -0
  99. data/lib/leftovers/matchers.rb +3 -1
  100. data/lib/leftovers/merged_config.rb +26 -25
  101. data/lib/leftovers/parser.rb +7 -4
  102. data/lib/leftovers/precompilers.rb +5 -5
  103. data/lib/leftovers/processor_builders/action.rb +55 -37
  104. data/lib/leftovers/processor_builders/add_prefix.rb +18 -10
  105. data/lib/leftovers/processor_builders/add_suffix.rb +18 -10
  106. data/lib/leftovers/processor_builders/argument.rb +28 -11
  107. data/lib/leftovers/processor_builders/dynamic.rb +37 -31
  108. data/lib/leftovers/processor_builders/each.rb +82 -10
  109. data/lib/leftovers/processor_builders/itself.rb +2 -2
  110. data/lib/leftovers/processor_builders/keyword.rb +7 -6
  111. data/lib/leftovers/processor_builders/keyword_argument.rb +4 -2
  112. data/lib/leftovers/processor_builders/receiver.rb +13 -0
  113. data/lib/leftovers/processor_builders/transform.rb +55 -44
  114. data/lib/leftovers/processor_builders/transform_chain.rb +1 -1
  115. data/lib/leftovers/processor_builders/transform_set.rb +9 -29
  116. data/lib/leftovers/processor_builders/value.rb +4 -4
  117. data/lib/leftovers/processor_builders.rb +1 -3
  118. data/lib/leftovers/processors/add_call.rb +14 -0
  119. data/lib/leftovers/processors/add_definition_node.rb +16 -0
  120. data/lib/leftovers/processors/add_dynamic_prefix.rb +29 -0
  121. data/lib/leftovers/processors/add_dynamic_suffix.rb +29 -0
  122. data/lib/leftovers/{value_processors → processors}/add_prefix.rb +7 -3
  123. data/lib/leftovers/{value_processors → processors}/add_suffix.rb +7 -3
  124. data/lib/leftovers/processors/append_sym.rb +13 -0
  125. data/lib/leftovers/{value_processors → processors}/camelize.rb +7 -3
  126. data/lib/leftovers/{value_processors → processors}/capitalize.rb +7 -3
  127. data/lib/leftovers/{value_processors → processors}/deconstantize.rb +7 -3
  128. data/lib/leftovers/{value_processors → processors}/delete_after.rb +9 -5
  129. data/lib/leftovers/processors/delete_after_last.rb +26 -0
  130. data/lib/leftovers/processors/delete_before.rb +27 -0
  131. data/lib/leftovers/processors/delete_before_last.rb +27 -0
  132. data/lib/leftovers/{value_processors → processors}/delete_prefix.rb +7 -3
  133. data/lib/leftovers/{value_processors → processors}/delete_suffix.rb +7 -3
  134. data/lib/leftovers/{value_processors → processors}/demodulize.rb +7 -3
  135. data/lib/leftovers/{value_processors → processors}/downcase.rb +7 -3
  136. data/lib/leftovers/processors/each.rb +25 -0
  137. data/lib/leftovers/processors/each_for_definition_set.rb +33 -0
  138. data/lib/leftovers/processors/each_keyword.rb +29 -0
  139. data/lib/leftovers/processors/each_keyword_argument.rb +29 -0
  140. data/lib/leftovers/processors/each_positional_argument.rb +27 -0
  141. data/lib/leftovers/processors/each_positional_argument_from.rb +30 -0
  142. data/lib/leftovers/processors/eval.rb +16 -0
  143. data/lib/leftovers/processors/itself.rb +21 -0
  144. data/lib/leftovers/processors/keyword_argument.rb +30 -0
  145. data/lib/leftovers/processors/match_current_node.rb +26 -0
  146. data/lib/leftovers/processors/match_matched_node.rb +26 -0
  147. data/lib/leftovers/{value_processors → processors}/parameterize.rb +7 -3
  148. data/lib/leftovers/{value_processors → processors}/placeholder.rb +5 -4
  149. data/lib/leftovers/{value_processors → processors}/pluralize.rb +7 -3
  150. data/lib/leftovers/{value_processors → processors}/positional_argument.rb +8 -6
  151. data/lib/leftovers/processors/receiver.rb +24 -0
  152. data/lib/leftovers/{value_processors → processors}/replace_value.rb +7 -3
  153. data/lib/leftovers/processors/set_default_privacy.rb +21 -0
  154. data/lib/leftovers/processors/set_privacy.rb +23 -0
  155. data/lib/leftovers/{value_processors → processors}/singularize.rb +7 -3
  156. data/lib/leftovers/{value_processors → processors}/split.rb +8 -4
  157. data/lib/leftovers/{value_processors → processors}/swapcase.rb +7 -3
  158. data/lib/leftovers/{value_processors → processors}/titleize.rb +7 -3
  159. data/lib/leftovers/{value_processors → processors}/underscore.rb +7 -3
  160. data/lib/leftovers/{value_processors → processors}/upcase.rb +7 -3
  161. data/lib/leftovers/processors.rb +49 -0
  162. data/lib/leftovers/version.rb +1 -1
  163. data/lib/leftovers.rb +3 -12
  164. metadata +97 -52
  165. data/lib/leftovers/dynamic_processors/call.rb +0 -22
  166. data/lib/leftovers/dynamic_processors/call_definition.rb +0 -34
  167. data/lib/leftovers/dynamic_processors/definition.rb +0 -27
  168. data/lib/leftovers/dynamic_processors/each.rb +0 -19
  169. data/lib/leftovers/dynamic_processors/null.rb +0 -9
  170. data/lib/leftovers/dynamic_processors/set_default_privacy.rb +0 -18
  171. data/lib/leftovers/dynamic_processors/set_privacy.rb +0 -23
  172. data/lib/leftovers/dynamic_processors.rb +0 -13
  173. data/lib/leftovers/matcher_builders/node_pair_name.rb +0 -18
  174. data/lib/leftovers/matchers/predicate.rb +0 -19
  175. data/lib/leftovers/processor_builders/each_action.rb +0 -51
  176. data/lib/leftovers/processor_builders/each_dynamic.rb +0 -50
  177. data/lib/leftovers/processor_builders/each_for_definition_set.rb +0 -40
  178. data/lib/leftovers/value_processors/add_dynamic_prefix.rb +0 -24
  179. data/lib/leftovers/value_processors/add_dynamic_suffix.rb +0 -24
  180. data/lib/leftovers/value_processors/delete_before.rb +0 -22
  181. data/lib/leftovers/value_processors/each.rb +0 -21
  182. data/lib/leftovers/value_processors/each_for_definition_set.rb +0 -23
  183. data/lib/leftovers/value_processors/each_keyword.rb +0 -27
  184. data/lib/leftovers/value_processors/each_keyword_argument.rb +0 -27
  185. data/lib/leftovers/value_processors/each_positional_argument.rb +0 -25
  186. data/lib/leftovers/value_processors/itself.rb +0 -17
  187. data/lib/leftovers/value_processors/keyword.rb +0 -28
  188. data/lib/leftovers/value_processors/keyword_argument.rb +0 -28
  189. data/lib/leftovers/value_processors/return_definition_node.rb +0 -14
  190. data/lib/leftovers/value_processors/return_sym.rb +0 -14
  191. data/lib/leftovers/value_processors.rb +0 -40
@@ -1,3 +1,8 @@
1
+ # currently doesn't handle with_options at all
2
+ # probably never will
3
+
4
+
5
+
1
6
  requires:
2
7
  - 'active_support'
3
8
  - 'active_support/core_ext/string'
@@ -9,13 +14,73 @@ requires:
9
14
  # some is currently impossible to handle (with_options).
10
15
  # Some is just corners of rails I haven't hit yet.
11
16
  keep:
12
- - ClassMethods # ActiveSupport::Concern
13
- - process_action # ActiveSupport::LogSubscriber
14
- - format_message # ActiveSupport::Logger
15
17
  - APP_PATH
16
18
  - APP_ROOT
17
19
 
20
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#to-param
21
+ # you're expected to redefine this as it's relevant
22
+ - to_param
23
+
18
24
  dynamic:
25
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#try
26
+ - name: [try, try!]
27
+ calls: 0
28
+
29
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#acts-like-questionmark-duck
30
+ - name: acts_like?
31
+ calls:
32
+ argument: 0
33
+ add_prefix: acts_like_
34
+ add_suffix: "?"
35
+
36
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#alias-attribute
37
+ - name: alias_attribute
38
+ calls:
39
+ argument: 1
40
+ transforms:
41
+ - original
42
+ - add_suffix: '?'
43
+ - add_prefix: '='
44
+ defines:
45
+ argument: 0
46
+ transforms:
47
+ - original
48
+ - add_suffix: '?'
49
+ - add_prefix: '='
50
+
51
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#internal-attributes
52
+ - name: [attr_internal, attr_internal_accessor, attr_internal_writer]
53
+ defines:
54
+ argument: '*'
55
+ add_suffix: '='
56
+
57
+ - name: [attr_internal, attr_internal_accessor, attr_internal_reader]
58
+ defines:
59
+ argument: '*'
60
+ calls:
61
+ argument: '*'
62
+ add_prefix: '@_'
63
+ # this ivar pattern is only the default.
64
+ # if it's overridden copy this into .leftovers.yml with
65
+ # whatever it was overridden as
66
+
67
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#module-attributes
68
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#cattr-reader-cattr-writer-and-cattr-accessor
69
+ - name: [mattr_accessor, mattr_writer, cattr_accessor, cattr_writer]
70
+ defines:
71
+ argument: '*'
72
+ add_suffix: '='
73
+
74
+ - name: [mattr_accessor, mattr_reader, cattr_accessor, cattr_reader]
75
+ defines:
76
+ argument: '*'
77
+ calls:
78
+ argument: '*'
79
+ add_prefix: '@@'
80
+
81
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#delegate
82
+ # skipping handling `private: true` because i don't yet support combining multiple has_argument with and
83
+ # also i expect to be able to run these in any order, and that would be order dependent
19
84
  - name: delegate
20
85
  has_argument:
21
86
  at: prefix
@@ -51,31 +116,101 @@ dynamic:
51
116
  type: [String, Symbol]
52
117
  calls:
53
118
  - argument: to
54
- - name:
55
- - cattr_accessor
56
- - mattr_accessor
57
- defines:
58
- - argument: '*'
59
- - argument: '*'
60
- add_suffix: '='
119
+
120
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#delegate-missing-to
121
+ - name: delegate_missing_to
61
122
  calls:
62
- - argument: '*'
63
- add_prefix: '@'
64
- - name:
65
- - cattr_reader
66
- - mattr_reader
123
+ argument: 0
124
+ split: '::'
125
+
126
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#redefining-methods
127
+ - name: redefine_method
128
+ define:
129
+ argument: 0
130
+
131
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#class-attribute
132
+ - name: class_attribute
67
133
  defines:
68
- - argument: '*'
134
+ argument: '*'
135
+ transforms:
136
+ - original
137
+ - add_suffix: '='
138
+ - add_suffix: '?'
139
+
140
+ # https://guides.rubyonrails.org/active_support_core_extensions.html#constantize
141
+ # https://api.rubyonrails.org/classes/String.html#method-i-safe_constantize
142
+ - name: [constantize, safe_constantize]
69
143
  calls:
70
- - argument: '*'
71
- add_prefix: '@'
72
- - name:
73
- - cattr_writer
74
- - mattr_writer
144
+ receiver: true
145
+ split: '::'
146
+
147
+ # https://api.rubyonrails.org/classes/ActiveSupport/Callbacks/ClassMethods.html#method-i-set_callback
148
+ - name: set_callback
149
+ calls: [2, if, unless]
150
+
151
+ - name: set_callback
152
+ calls: 1
153
+ unless:
154
+ - has_argument: 2
155
+ # - has_block_argument: true
156
+
157
+ # https://api.rubyonrails.org/classes/ActiveSupport/Callbacks/ClassMethods.html#method-i-skip_callback
158
+ - name: skip_callback
159
+ calls: [if, unless]
160
+
161
+ # https://api.rubyonrails.org/classes/ActiveSupport/Configurable/ClassMethods.html#method-i-config_accessor
162
+ - name: config_accessor
75
163
  defines:
164
+ argument: '*'
165
+ transforms:
166
+ - original
167
+ - add_suffix: '='
168
+
169
+ # https://api.rubyonrails.org/classes/ActiveSupport/Testing/Assertions.html#method-i-assert_changes
170
+ # https://api.rubyonrails.org/classes/ActiveSupport/Testing/Assertions.html#method-i-assert_no_changes
171
+ - name: [assert_changes, assert_no_changes]
172
+ eval: 0
173
+ has_argument:
174
+ at: 0
175
+ has_value:
176
+ type: String
177
+
178
+ # https://api.rubyonrails.org/classes/ActiveSupport/Testing/Assertions.html#method-i-assert_difference
179
+ - name: assert_difference
180
+ eval:
181
+ - argument: 0
182
+ - argument: 0
183
+ nested: '*'
184
+ - argument: 0
185
+ keywords: '**'
186
+
187
+ # https://api.rubyonrails.org/classes/ActiveSupport/Testing/Assertions.html#method-i-assert_no_difference
188
+ - name: assert_difference
189
+ eval:
190
+ - argument: 0
191
+ - argument: 0
192
+ nested: '*'
193
+
194
+ # https://api.rubyonrails.org/classes/ActiveSupport/Rescuable/ClassMethods.html#method-i-rescue_from
195
+ - name: rescue_from
196
+ calls:
76
197
  - argument: '*'
77
- add_suffix: '='
198
+ split: '::'
199
+ - argument: with
200
+
201
+ # https://api.rubyonrails.org/classes/ActiveSupport/Reloader.html#method-c-after_class_unload
202
+ # https://api.rubyonrails.org/classes/ActiveSupport/Reloader.html#method-c-before_class_unload
203
+ # https://api.rubyonrails.org/classes/ActiveSupport/Reloader.html#method-c-to_prepare
204
+ # this is not well documented but uses set_callback internally so we can just guess
205
+ - name: [before_class_unload, after_class_unload, to_prepare]
206
+ calls: [0, if, unless]
78
207
 
208
+ # https://api.rubyonrails.org/classes/Module/Concerning.html#method-i-concern
209
+ - name: concern
210
+ defines: 0
211
+
212
+ # https://api.rubyonrails.org/classes/Module.html#method-i-thread_mattr_accessor
213
+ # https://api.rubyonrails.org/classes/Module.html#method-i-thread_cattr_accessor
79
214
  - name:
80
215
  - thread_cattr_accessor
81
216
  - thread_mattr_accessor
@@ -83,17 +218,25 @@ dynamic:
83
218
  - argument: '*'
84
219
  - argument: '*'
85
220
  add_suffix: '='
221
+
222
+ # https://api.rubyonrails.org/classes/Module.html#method-i-thread_mattr_reader
223
+ # https://api.rubyonrails.org/classes/Module.html#method-i-thread_cattr_reader
86
224
  - name:
87
225
  - thread_cattr_reader
88
226
  - thread_mattr_reader
89
227
  defines:
90
228
  argument: '*'
229
+
230
+ # https://api.rubyonrails.org/classes/Module.html#method-i-thread_mattr_writer
231
+ # https://api.rubyonrails.org/classes/Module.html#method-i-thread_cattr_writer
91
232
  - name:
92
233
  - thread_cattr_writer
93
234
  - thread_mattr_writer
94
235
  defines:
95
236
  argument: '*'
96
237
  add_suffix: '='
97
- - name: delegate_missing_to
238
+
239
+ # https://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html
240
+ - name: to_json
98
241
  calls:
99
- argument: 0
242
+ value: as_json
@@ -0,0 +1,48 @@
1
+ precompile:
2
+ - { paths: ['*.yml', '*.yaml'], format: 'yaml' }
3
+ - { paths: '*.json', format: 'json' }
4
+
5
+ include_paths:
6
+ .leftovers.yml
7
+
8
+ dynamic:
9
+ - document: true
10
+ path: '.leftovers.yml'
11
+ has_argument:
12
+ at: precompile
13
+ has_value:
14
+ has_argument:
15
+ at: '*'
16
+ has_value:
17
+ has_argument:
18
+ at: 'format'
19
+ has_value:
20
+ has_argument: custom
21
+ calls:
22
+ - value: precompile
23
+ - argument: precompile
24
+ nested:
25
+ - argument: '*'
26
+ nested:
27
+ argument: format
28
+ nested:
29
+ argument: custom
30
+ split: '::'
31
+
32
+ - document: true
33
+ path: '.leftovers.yml'
34
+ has_argument:
35
+ at: precompile
36
+ has_value:
37
+ has_argument:
38
+ at: 'format'
39
+ has_value:
40
+ has_argument: custom
41
+ calls:
42
+ - value: precompile
43
+ - argument: precompile
44
+ nested:
45
+ argument: format
46
+ nested:
47
+ argument: custom
48
+ split: '::'
data/lib/config/rails.yml CHANGED
@@ -3,13 +3,17 @@
3
3
  # some is currently impossible to handle (with_options).
4
4
  # Some is just corners of rails I haven't hit yet.
5
5
  gems:
6
- - actionmailer
6
+ - activesupport
7
7
  - actionpack
8
8
  - actionview
9
- - activejob
10
9
  - activemodel
11
10
  - activerecord
12
- - activesupport
11
+ - actionmailer
12
+ - activejob
13
+ - actioncable
14
+ - activestorage
15
+ - actionmailbox
16
+ - actiontext
13
17
  - railties
14
18
 
15
19
  keep:
@@ -1,3 +1,7 @@
1
+ gems:
2
+ - actionpack
3
+ - activesupport
4
+
1
5
  keep:
2
6
  - # https://guides.rubyonrails.org/generators.html#generators-lookup
3
7
  path: '**/generators/**/*_generator.rb'
@@ -9,3 +13,6 @@ keep:
9
13
  privacy: public
10
14
  type: Method
11
15
 
16
+ - path: '**/generators/**/*_generator.rb'
17
+ name: { has_suffix: Generator }
18
+