leftovers 0.8.0 → 0.9.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 (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
+