leftovers 0.7.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +39 -0
- data/README.md +8 -7
- data/docs/Configuration.md +187 -93
- data/docs/Custom-Precompilers.md +44 -0
- data/leftovers.gemspec +2 -1
- data/lib/config/actioncable.yml +36 -0
- data/lib/config/actionmailbox.yml +28 -0
- data/lib/config/actionmailer.yml +87 -11
- data/lib/config/actionpack.yml +130 -32
- data/lib/config/actiontext.yml +56 -0
- data/lib/config/actionview.yml +194 -44
- data/lib/config/activejob.yml +15 -8
- data/lib/config/activemodel.yml +175 -18
- data/lib/config/activerecord.yml +422 -89
- data/lib/config/activestorage.yml +26 -0
- data/lib/config/activesupport.yml +167 -24
- data/lib/config/haml.yml +4 -2
- data/lib/config/leftovers.yml +48 -0
- data/lib/config/rails.yml +7 -3
- data/lib/config/railties.yml +7 -0
- data/lib/config/ruby.yml +439 -95
- data/lib/config/slim.yml +4 -2
- data/lib/config/test-unit.yml +8 -0
- data/lib/leftovers/ast/array_node.rb +12 -0
- data/lib/leftovers/ast/block_node.rb +12 -0
- data/lib/leftovers/ast/builder.rb +24 -5
- data/lib/leftovers/ast/casgn_node.rb +20 -0
- data/lib/leftovers/ast/const_node.rb +15 -0
- data/lib/leftovers/ast/def_node.rb +15 -0
- data/lib/leftovers/ast/defs_node.rb +15 -0
- data/lib/leftovers/ast/false_node.rb +24 -0
- data/lib/leftovers/ast/has_arguments.rb +31 -0
- data/lib/leftovers/ast/hash_node.rb +17 -0
- data/lib/leftovers/ast/module_node.rb +16 -0
- data/lib/leftovers/ast/nil_node.rb +23 -0
- data/lib/leftovers/ast/node.rb +33 -90
- data/lib/leftovers/ast/numeric_node.rb +22 -0
- data/lib/leftovers/ast/send_node.rb +25 -0
- data/lib/leftovers/ast/str_node.rb +24 -0
- data/lib/leftovers/ast/sym_node.rb +25 -0
- data/lib/leftovers/ast/true_node.rb +24 -0
- data/lib/leftovers/ast/var_node.rb +14 -0
- data/lib/leftovers/ast/vasgn_node.rb +20 -0
- data/lib/leftovers/ast.rb +18 -0
- data/lib/leftovers/cli.rb +12 -1
- data/lib/leftovers/collector.rb +2 -1
- data/lib/leftovers/comparable_instance.rb +18 -0
- data/lib/leftovers/config.rb +2 -18
- data/lib/leftovers/config_loader/argument_position_schema.rb +5 -3
- data/lib/leftovers/config_loader/array_schema.rb +53 -0
- data/lib/leftovers/config_loader/attribute.rb +36 -10
- data/lib/leftovers/config_loader/built_in_precompiler_schema.rb +13 -0
- data/lib/leftovers/config_loader/document_schema.rb +33 -5
- data/lib/leftovers/config_loader/dynamic_schema.rb +1 -0
- data/lib/leftovers/config_loader/has_argument_schema.rb +2 -2
- data/lib/leftovers/config_loader/has_receiver_schema.rb +15 -0
- data/lib/leftovers/config_loader/has_value_schema.rb +7 -3
- data/lib/leftovers/config_loader/inherit_schema_attributes.rb +22 -0
- data/lib/leftovers/config_loader/keep_test_only_schema.rb +2 -2
- data/lib/leftovers/config_loader/keyword_argument_schema.rb +13 -0
- data/lib/leftovers/config_loader/object_schema.rb +33 -105
- data/lib/leftovers/config_loader/precompile_schema.rb +12 -0
- data/lib/leftovers/config_loader/precompiler_schema.rb +11 -0
- data/lib/leftovers/config_loader/privacy_processor_schema.rb +0 -2
- data/lib/leftovers/config_loader/regexp_schema.rb +27 -0
- data/lib/leftovers/config_loader/require_schema.rb +3 -3
- data/lib/leftovers/config_loader/rule_pattern_schema.rb +3 -1
- data/lib/leftovers/config_loader/scalar_value_schema.rb +8 -0
- data/lib/leftovers/config_loader/schema.rb +12 -0
- data/lib/leftovers/config_loader/string_enum_schema.rb +1 -1
- data/lib/leftovers/config_loader/string_pattern_schema.rb +3 -3
- data/lib/leftovers/config_loader/string_value_processor_schema.rb +2 -2
- data/lib/leftovers/config_loader/transform_schema.rb +10 -6
- data/lib/leftovers/config_loader/value_matcher_condition_schema.rb +13 -0
- data/lib/leftovers/config_loader/value_matcher_schema.rb +6 -3
- data/lib/leftovers/config_loader/value_or_array_schema.rb +2 -32
- data/lib/leftovers/config_loader/value_or_object_schema.rb +40 -0
- data/lib/leftovers/config_loader/value_processor_schema.rb +4 -4
- data/lib/leftovers/config_loader.rb +15 -3
- data/lib/leftovers/definition_collection.rb +37 -0
- data/lib/leftovers/definition_node.rb +8 -14
- data/lib/leftovers/definition_node_set.rb +10 -2
- data/lib/leftovers/file.rb +8 -54
- data/lib/leftovers/file_collector/comments_processor.rb +57 -0
- data/lib/leftovers/file_collector/node_processor.rb +131 -0
- data/lib/leftovers/file_collector.rb +56 -223
- data/lib/leftovers/file_list.rb +3 -2
- data/lib/leftovers/matcher_builders/and.rb +26 -9
- data/lib/leftovers/matcher_builders/and_not.rb +7 -5
- data/lib/leftovers/matcher_builders/name.rb +18 -17
- data/lib/leftovers/matcher_builders/node.rb +60 -34
- data/lib/leftovers/matcher_builders/node_has_argument.rb +48 -52
- data/lib/leftovers/matcher_builders/node_has_keyword_argument.rb +16 -11
- data/lib/leftovers/matcher_builders/node_has_positional_argument.rb +29 -15
- data/lib/leftovers/matcher_builders/node_has_receiver.rb +12 -3
- data/lib/leftovers/matcher_builders/node_pair_key.rb +16 -0
- data/lib/leftovers/matcher_builders/node_type.rb +10 -10
- data/lib/leftovers/matcher_builders/node_value.rb +46 -25
- data/lib/leftovers/matcher_builders/or.rb +64 -49
- data/lib/leftovers/matcher_builders/path.rb +3 -1
- data/lib/leftovers/matcher_builders/string_pattern.rb +1 -1
- data/lib/leftovers/matcher_builders.rb +1 -1
- data/lib/leftovers/matchers/all.rb +4 -0
- data/lib/leftovers/matchers/and.rb +4 -0
- data/lib/leftovers/matchers/any.rb +2 -0
- data/lib/leftovers/matchers/node_has_any_keyword_argument.rb +7 -4
- data/lib/leftovers/matchers/node_has_any_positional_argument_with_value.rb +5 -4
- data/lib/leftovers/matchers/node_has_any_receiver.rb +13 -0
- data/lib/leftovers/matchers/node_has_positional_argument.rb +5 -1
- data/lib/leftovers/matchers/node_has_positional_argument_with_value.rb +6 -1
- data/lib/leftovers/matchers/node_has_receiver.rb +4 -0
- data/lib/leftovers/matchers/node_is_proc.rb +13 -0
- data/lib/leftovers/matchers/node_name.rb +9 -3
- data/lib/leftovers/matchers/node_pair_key.rb +23 -0
- data/lib/leftovers/matchers/node_pair_value.rb +7 -3
- data/lib/leftovers/matchers/node_path.rb +7 -3
- data/lib/leftovers/matchers/node_privacy.rb +7 -3
- data/lib/leftovers/matchers/node_scalar_value.rb +6 -1
- data/lib/leftovers/matchers/node_type.rb +7 -3
- data/lib/leftovers/matchers/not.rb +2 -0
- data/lib/leftovers/matchers/or.rb +2 -0
- data/lib/leftovers/matchers/path.rb +21 -0
- data/lib/leftovers/matchers.rb +4 -1
- data/lib/leftovers/merged_config.rb +28 -47
- data/lib/leftovers/parser.rb +7 -4
- data/lib/leftovers/precompilers/erb.rb +22 -0
- data/lib/leftovers/precompilers/haml.rb +15 -0
- data/lib/leftovers/precompilers/json.rb +27 -0
- data/lib/leftovers/precompilers/precompiler.rb +28 -0
- data/lib/leftovers/precompilers/slim.rb +15 -0
- data/lib/leftovers/precompilers/yaml.rb +75 -0
- data/lib/leftovers/precompilers.rb +50 -0
- data/lib/leftovers/processor_builders/action.rb +69 -42
- data/lib/leftovers/processor_builders/add_prefix.rb +18 -10
- data/lib/leftovers/processor_builders/add_suffix.rb +18 -10
- data/lib/leftovers/processor_builders/argument.rb +28 -14
- data/lib/leftovers/processor_builders/dynamic.rb +37 -31
- data/lib/leftovers/processor_builders/each.rb +83 -11
- data/lib/leftovers/processor_builders/itself.rb +2 -2
- data/lib/leftovers/processor_builders/keyword.rb +9 -9
- data/lib/leftovers/processor_builders/keyword_argument.rb +4 -2
- data/lib/leftovers/processor_builders/receiver.rb +13 -0
- data/lib/leftovers/processor_builders/transform.rb +55 -44
- data/lib/leftovers/processor_builders/transform_chain.rb +16 -8
- data/lib/leftovers/processor_builders/transform_set.rb +16 -32
- data/lib/leftovers/processor_builders/value.rb +4 -4
- data/lib/leftovers/processor_builders.rb +1 -3
- data/lib/leftovers/processors/add_call.rb +14 -0
- data/lib/leftovers/processors/add_definition_node.rb +16 -0
- data/lib/leftovers/processors/add_dynamic_prefix.rb +29 -0
- data/lib/leftovers/processors/add_dynamic_suffix.rb +29 -0
- data/lib/leftovers/{value_processors → processors}/add_prefix.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/add_suffix.rb +7 -3
- data/lib/leftovers/processors/append_sym.rb +13 -0
- data/lib/leftovers/{value_processors → processors}/camelize.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/capitalize.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/deconstantize.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/delete_after.rb +9 -5
- data/lib/leftovers/processors/delete_after_last.rb +26 -0
- data/lib/leftovers/processors/delete_before.rb +27 -0
- data/lib/leftovers/processors/delete_before_last.rb +27 -0
- data/lib/leftovers/{value_processors → processors}/delete_prefix.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/delete_suffix.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/demodulize.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/downcase.rb +7 -3
- data/lib/leftovers/processors/each.rb +25 -0
- data/lib/leftovers/processors/each_for_definition_set.rb +33 -0
- data/lib/leftovers/processors/each_keyword.rb +29 -0
- data/lib/leftovers/processors/each_keyword_argument.rb +29 -0
- data/lib/leftovers/processors/each_positional_argument.rb +27 -0
- data/lib/leftovers/processors/each_positional_argument_from.rb +30 -0
- data/lib/leftovers/processors/eval.rb +16 -0
- data/lib/leftovers/processors/itself.rb +21 -0
- data/lib/leftovers/{value_processors → processors}/keyword_argument.rb +9 -11
- data/lib/leftovers/processors/match_current_node.rb +26 -0
- data/lib/leftovers/processors/match_matched_node.rb +26 -0
- data/lib/leftovers/{value_processors → processors}/parameterize.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/placeholder.rb +5 -4
- data/lib/leftovers/{value_processors → processors}/pluralize.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/positional_argument.rb +8 -6
- data/lib/leftovers/processors/receiver.rb +24 -0
- data/lib/leftovers/{value_processors → processors}/replace_value.rb +7 -3
- data/lib/leftovers/processors/set_default_privacy.rb +21 -0
- data/lib/leftovers/processors/set_privacy.rb +23 -0
- data/lib/leftovers/{value_processors → processors}/singularize.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/split.rb +8 -4
- data/lib/leftovers/{value_processors → processors}/swapcase.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/titleize.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/underscore.rb +7 -3
- data/lib/leftovers/{value_processors → processors}/upcase.rb +7 -3
- data/lib/leftovers/processors.rb +49 -0
- data/lib/leftovers/rake_task.rb +1 -1
- data/lib/leftovers/version.rb +1 -1
- data/lib/leftovers.rb +34 -8
- metadata +116 -58
- data/lib/leftovers/dynamic_processors/call.rb +0 -22
- data/lib/leftovers/dynamic_processors/call_definition.rb +0 -34
- data/lib/leftovers/dynamic_processors/definition.rb +0 -27
- data/lib/leftovers/dynamic_processors/each.rb +0 -19
- data/lib/leftovers/dynamic_processors/null.rb +0 -9
- data/lib/leftovers/dynamic_processors/set_default_privacy.rb +0 -18
- data/lib/leftovers/dynamic_processors/set_privacy.rb +0 -23
- data/lib/leftovers/dynamic_processors.rb +0 -13
- data/lib/leftovers/erb.rb +0 -20
- data/lib/leftovers/haml.rb +0 -21
- data/lib/leftovers/json.rb +0 -28
- data/lib/leftovers/matcher_builders/node_pair_name.rb +0 -18
- data/lib/leftovers/matchers/predicate.rb +0 -19
- data/lib/leftovers/processor_builders/each_action.rb +0 -51
- data/lib/leftovers/processor_builders/each_dynamic.rb +0 -54
- data/lib/leftovers/processor_builders/each_for_definition_set.rb +0 -36
- data/lib/leftovers/slim.rb +0 -21
- data/lib/leftovers/value_processors/add_dynamic_prefix.rb +0 -31
- data/lib/leftovers/value_processors/add_dynamic_suffix.rb +0 -31
- data/lib/leftovers/value_processors/delete_before.rb +0 -22
- data/lib/leftovers/value_processors/each.rb +0 -21
- data/lib/leftovers/value_processors/each_for_definition_set.rb +0 -26
- data/lib/leftovers/value_processors/each_keyword.rb +0 -27
- data/lib/leftovers/value_processors/each_keyword_argument.rb +0 -27
- data/lib/leftovers/value_processors/each_positional_argument.rb +0 -24
- data/lib/leftovers/value_processors/itself.rb +0 -17
- data/lib/leftovers/value_processors/keyword.rb +0 -32
- data/lib/leftovers/value_processors/return_definition_node.rb +0 -14
- data/lib/leftovers/value_processors/return_sym.rb +0 -14
- data/lib/leftovers/value_processors.rb +0 -40
- data/lib/leftovers/yaml.rb +0 -73
data/lib/config/actionview.yml
CHANGED
@@ -1,64 +1,214 @@
|
|
1
|
-
# THIS IS INCOMPLETE (you can help by expanding it)
|
2
|
-
# rails is _really complicated_ and has a lot of magic which calls methods for you.
|
3
|
-
# some is currently impossible to handle (with_options).
|
4
|
-
# Some is just corners of rails I haven't hit yet.
|
5
1
|
keep:
|
6
|
-
-
|
7
|
-
|
2
|
+
# https://guides.rubyonrails.org/layouts_and_rendering.html#rendering-objects
|
3
|
+
- render_in
|
8
4
|
|
9
5
|
dynamic:
|
6
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Base.html
|
7
|
+
- name: render
|
8
|
+
has_argument: 0
|
9
|
+
defines:
|
10
|
+
keywords:
|
11
|
+
unless:
|
12
|
+
# https://guides.rubyonrails.org/layouts_and_rendering.html#options-for-render
|
13
|
+
- content_type
|
14
|
+
- layout
|
15
|
+
- location
|
16
|
+
- status
|
17
|
+
- formats
|
18
|
+
- variants
|
19
|
+
|
20
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/PartialRenderer.html
|
21
|
+
- name: render
|
22
|
+
has_argument: [object, collection]
|
23
|
+
unless:
|
24
|
+
has_argument: as
|
25
|
+
defines:
|
26
|
+
argument: partial
|
27
|
+
delete_before_last: '/'
|
28
|
+
|
29
|
+
- name: render
|
30
|
+
all:
|
31
|
+
- has_argument: [object, collection]
|
32
|
+
- has_argument: as
|
33
|
+
defines: as
|
34
|
+
|
35
|
+
- name: render
|
36
|
+
defines:
|
37
|
+
argument: locals
|
38
|
+
nested:
|
39
|
+
keywords: '**'
|
40
|
+
|
41
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Template.html#method-i-local_assigns
|
42
|
+
- name: '[]'
|
43
|
+
has_receiver: local_assigns
|
44
|
+
calls: 0
|
45
|
+
|
46
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html
|
10
47
|
- name:
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
48
|
+
- check_box
|
49
|
+
- color_field
|
50
|
+
- date_field
|
51
|
+
- date_select
|
52
|
+
- datetime_field
|
53
|
+
- datetime_local_field
|
54
|
+
- datetime_select
|
55
|
+
- email_field
|
56
|
+
- file_field
|
57
|
+
- hidden_field
|
58
|
+
- month_field
|
59
|
+
- number_field
|
60
|
+
- password_field
|
61
|
+
- phone_field
|
62
|
+
- radio_button
|
63
|
+
- range_field
|
64
|
+
- search_field
|
65
|
+
- select
|
66
|
+
- telephone_field
|
67
|
+
- text_area
|
68
|
+
- text_field
|
69
|
+
- time_field
|
70
|
+
- time_select
|
71
|
+
- time_zone_select
|
72
|
+
- url_field
|
73
|
+
- week_field
|
74
|
+
- weekday_select
|
75
|
+
has_receiver: true
|
38
76
|
calls:
|
39
|
-
-
|
40
|
-
|
41
|
-
|
77
|
+
- argument: 0
|
78
|
+
transforms:
|
79
|
+
- original
|
80
|
+
- add_suffix: '='
|
81
|
+
|
82
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-fields_for
|
83
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for
|
42
84
|
- name: fields_for
|
85
|
+
has_receiver: true
|
43
86
|
calls:
|
44
|
-
argument:
|
45
|
-
|
46
|
-
|
87
|
+
argument: 0
|
88
|
+
transforms:
|
89
|
+
add_suffix: _attributes=
|
90
|
+
|
91
|
+
- name: fields_for
|
92
|
+
unless:
|
93
|
+
any:
|
94
|
+
- has_receiver: true
|
95
|
+
- has_argument: 1
|
47
96
|
calls:
|
48
|
-
|
97
|
+
argument: 0
|
98
|
+
add_prefix: '@'
|
99
|
+
|
100
|
+
- name: form_for
|
101
|
+
has_argument:
|
102
|
+
at: 0
|
103
|
+
has_value:
|
104
|
+
type: [String, Symbol]
|
105
|
+
calls:
|
106
|
+
argument: 0
|
107
|
+
add_prefix: '@'
|
108
|
+
|
109
|
+
|
110
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html
|
111
|
+
- name:
|
112
|
+
- check_box
|
113
|
+
- color_field
|
114
|
+
- date_field
|
115
|
+
- date_select
|
116
|
+
- datetime_field
|
117
|
+
- datetime_local_field
|
118
|
+
- datetime_select
|
119
|
+
- email_field
|
120
|
+
- file_field
|
121
|
+
- hidden_field
|
122
|
+
- month_field
|
123
|
+
- number_field
|
124
|
+
- password_field
|
125
|
+
- phone_field
|
126
|
+
- radio_button
|
127
|
+
- range_field
|
128
|
+
- search_field
|
129
|
+
- select
|
130
|
+
- telephone_field
|
131
|
+
- text_area
|
132
|
+
- text_field
|
133
|
+
- time_field
|
134
|
+
- time_select
|
135
|
+
- time_zone_select
|
136
|
+
- url_field
|
137
|
+
- week_field
|
138
|
+
- weekday_select
|
139
|
+
unless:
|
140
|
+
has_receiver: true
|
141
|
+
calls:
|
142
|
+
- argument: 1
|
143
|
+
transforms:
|
144
|
+
- original
|
145
|
+
- add_suffix: '='
|
146
|
+
- argument: 0
|
147
|
+
add_prefix: '@'
|
148
|
+
|
149
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-collection_check_boxes
|
49
150
|
- name:
|
50
151
|
- collection_select
|
51
152
|
- collection_check_boxes
|
52
153
|
- collection_radio_buttons
|
154
|
+
has_receiver: true
|
155
|
+
calls:
|
156
|
+
- argument: 0
|
157
|
+
transforms:
|
158
|
+
- original
|
159
|
+
- add_suffix: '='
|
160
|
+
- arguments: [2,3]
|
161
|
+
|
162
|
+
- name:
|
163
|
+
- collection_select
|
164
|
+
- collection_check_boxes
|
165
|
+
- collection_radio_buttons
|
166
|
+
unless:
|
167
|
+
has_receiver: true
|
53
168
|
calls:
|
54
169
|
- argument: 1
|
55
|
-
|
170
|
+
transforms:
|
171
|
+
- original
|
172
|
+
- add_suffix: '='
|
56
173
|
- arguments: [3,4]
|
174
|
+
- argument: 0
|
175
|
+
add_prefix: '@'
|
176
|
+
|
177
|
+
- name: grouped_collection_select
|
178
|
+
has_receiver: true
|
179
|
+
calls:
|
180
|
+
- argument: 0
|
181
|
+
transforms:
|
182
|
+
- original
|
183
|
+
- add_suffix: '='
|
184
|
+
- arguments: [2,3,4,5]
|
185
|
+
|
57
186
|
- name: grouped_collection_select
|
187
|
+
unless:
|
188
|
+
has_receiver: true
|
58
189
|
calls:
|
59
190
|
- argument: 1
|
60
|
-
|
191
|
+
transforms:
|
192
|
+
- original
|
193
|
+
- add_suffix: '='
|
61
194
|
- arguments: [3,4,5,6]
|
195
|
+
- argument: 0
|
196
|
+
add_prefix: '@'
|
197
|
+
|
198
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-option_groups_from_collection_for_select
|
62
199
|
- name: option_groups_from_collection_for_select
|
63
|
-
calls:
|
64
|
-
|
200
|
+
calls: [1,2,3,4]
|
201
|
+
|
202
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select
|
203
|
+
- name: options_from_collection_for_select
|
204
|
+
calls: [1,2]
|
205
|
+
|
206
|
+
|
207
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Layouts.html
|
208
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Layouts/ClassMethods.html#method-i-layout
|
209
|
+
- name: layout
|
210
|
+
has_argument:
|
211
|
+
at: 0
|
212
|
+
has_value:
|
213
|
+
type: Symbol
|
214
|
+
calls: 0
|
data/lib/config/activejob.yml
CHANGED
@@ -1,17 +1,20 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
# Some is just corners of rails I haven't hit yet.
|
1
|
+
gem:
|
2
|
+
- activesupport
|
3
|
+
|
5
4
|
keep:
|
5
|
+
# https://guides.rubyonrails.org/active_job_basics.html#serializers
|
6
6
|
- serialize?
|
7
7
|
- serialize
|
8
8
|
- deserialize
|
9
9
|
dynamic:
|
10
|
+
# https://guides.rubyonrails.org/active_job_basics.html#enqueue-the-job
|
10
11
|
- name:
|
11
12
|
- perform_later
|
12
|
-
-
|
13
|
+
- perform_now
|
13
14
|
calls:
|
14
15
|
- value: perform
|
16
|
+
# https://api.rubyonrails.org/v7.0.2.2/classes/ActiveJob/Callbacks/ClassMethods.html
|
17
|
+
# These all use if/unless because they call set_callback, though this isn't documented
|
15
18
|
- names:
|
16
19
|
- before_enqueue
|
17
20
|
- around_enqueue
|
@@ -20,10 +23,14 @@ dynamic:
|
|
20
23
|
- around_perform
|
21
24
|
- after_perform
|
22
25
|
calls:
|
23
|
-
- arguments:
|
26
|
+
- arguments: 0
|
24
27
|
- arguments: [if, unless]
|
25
28
|
nested:
|
26
29
|
arguments: '*'
|
27
|
-
|
30
|
+
|
31
|
+
# https://api.rubyonrails.org/v7.0.2.2/classes/ActiveJob/Exceptions/ClassMethods.html#method-i-discard_on
|
32
|
+
# https://api.rubyonrails.org/v7.0.2.2/classes/ActiveJob/Exceptions/ClassMethods.html#method-i-retry_on
|
33
|
+
- names: [discard_on, retry_on]
|
28
34
|
calls:
|
29
|
-
|
35
|
+
- argument: '*'
|
36
|
+
split: '::'
|
data/lib/config/activemodel.yml
CHANGED
@@ -1,11 +1,82 @@
|
|
1
|
-
# THIS IS INCOMPLETE (you can help by expanding it)
|
2
|
-
# rails is _really complicated_ and has a lot of magic which calls methods for you.
|
3
|
-
# some is currently impossible to handle (with_options).
|
4
|
-
# Some is just corners of rails I haven't hit yet.
|
5
1
|
keep:
|
6
|
-
|
2
|
+
# https://api.rubyonrails.org/classes/ActiveModel/EachValidator.html#method-i-validate_each
|
3
|
+
- validate_each
|
4
|
+
|
5
|
+
# https://api.rubyonrails.org/classes/ActiveModel/Validator.html#method-i-validate
|
6
|
+
- validate
|
7
|
+
|
8
|
+
# https://api.rubyonrails.org/classes/ActiveModel/API.html
|
9
|
+
# ActiveModel::API implements persisted? to return false, which is the most common case. You may want to override it in your class
|
10
|
+
- persisted?
|
11
|
+
|
12
|
+
# https://edgeapi.rubyonrails.org/classes/ActiveModel/Type/Value.html
|
13
|
+
- cast
|
14
|
+
- serialize
|
15
|
+
- deserialize
|
16
|
+
- serializable?
|
17
|
+
- type
|
18
|
+
- changed_in_place?
|
19
|
+
|
20
|
+
gems:
|
21
|
+
- activesupport
|
7
22
|
|
8
23
|
dynamic:
|
24
|
+
|
25
|
+
# https://api.rubyonrails.org/classes/ActiveModel/API.html#method-c-new
|
26
|
+
# https://api.rubyonrails.org/classes/ActiveModel/AttributeAssignment.html#method-i-assign_attributes
|
27
|
+
- name: [new, assign_attributes, attributes=]
|
28
|
+
unless:
|
29
|
+
has_argument: 0
|
30
|
+
calls:
|
31
|
+
keyword: '**'
|
32
|
+
add_suffix: '='
|
33
|
+
|
34
|
+
# https://api.rubyonrails.org/classes/ActiveModel/Callbacks.html#method-i-define_model_callbacks
|
35
|
+
- name: define_model_callbacks
|
36
|
+
has_argument: only
|
37
|
+
defines:
|
38
|
+
argument: '*'
|
39
|
+
add_prefix:
|
40
|
+
- value: 'before_'
|
41
|
+
any:
|
42
|
+
- has_argument:
|
43
|
+
at: only
|
44
|
+
has_value: before
|
45
|
+
- has_argument:
|
46
|
+
at: only
|
47
|
+
has_value:
|
48
|
+
has_argument:
|
49
|
+
at: '*'
|
50
|
+
has_value: before
|
51
|
+
- unless:
|
52
|
+
has_argument: only
|
53
|
+
- value: 'after_'
|
54
|
+
any:
|
55
|
+
- has_argument:
|
56
|
+
at: only
|
57
|
+
has_value: after
|
58
|
+
- has_argument:
|
59
|
+
at: only
|
60
|
+
has_value:
|
61
|
+
has_argument:
|
62
|
+
at: '*'
|
63
|
+
has_value: after
|
64
|
+
- unless:
|
65
|
+
has_argument: only
|
66
|
+
- value: 'around_'
|
67
|
+
any:
|
68
|
+
- has_argument:
|
69
|
+
at: only
|
70
|
+
has_value: around
|
71
|
+
- has_argument:
|
72
|
+
at: only
|
73
|
+
has_value:
|
74
|
+
has_argument:
|
75
|
+
at: '*'
|
76
|
+
has_value: around
|
77
|
+
- unless:
|
78
|
+
has_argument: only
|
79
|
+
|
9
80
|
- names:
|
10
81
|
- after_initialize
|
11
82
|
- before_validation
|
@@ -19,45 +90,131 @@ dynamic:
|
|
19
90
|
- validates_associated
|
20
91
|
calls:
|
21
92
|
- arguments: ['*', if, unless]
|
22
|
-
-
|
93
|
+
# https://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validates
|
94
|
+
- name: [validates, validates!]
|
23
95
|
calls:
|
24
96
|
- arguments:
|
25
97
|
- '*'
|
26
98
|
- within
|
27
99
|
- inclusion
|
100
|
+
- exclusion
|
28
101
|
- scope
|
29
102
|
- if
|
30
103
|
- unless
|
31
|
-
- arguments:
|
104
|
+
- arguments: [if, unless]
|
105
|
+
nested: '*'
|
106
|
+
- arguments: [inclusion, exclusion]
|
107
|
+
nested:
|
108
|
+
arguments:
|
109
|
+
- 'in'
|
110
|
+
- within
|
111
|
+
- arguments: [comparison, numericality]
|
32
112
|
nested:
|
33
|
-
arguments:
|
113
|
+
arguments:
|
114
|
+
- greater_than
|
115
|
+
- greater_than_or_equal_to
|
116
|
+
- equal_to
|
117
|
+
- less_than
|
118
|
+
- less_than_or_equal_to
|
119
|
+
- other_than
|
34
120
|
- keywords:
|
35
121
|
unless: [if, unless]
|
36
122
|
camelize: true
|
37
123
|
add_suffix: Validator
|
38
124
|
split: '::'
|
125
|
+
eval:
|
126
|
+
- arguments: [if, unless]
|
127
|
+
- arguments: [if, unless]
|
128
|
+
nested: '*'
|
129
|
+
|
130
|
+
- name: validates_confirmation_of
|
131
|
+
calls:
|
132
|
+
argument: '*'
|
133
|
+
transforms:
|
134
|
+
- original
|
135
|
+
- add_suffix: '_confirmation'
|
136
|
+
- name: [validates, validates!]
|
137
|
+
has_argument: confirmation
|
138
|
+
calls:
|
139
|
+
argument: '*'
|
140
|
+
add_suffix: _confirmation
|
141
|
+
|
142
|
+
- name: validates_comparison_of
|
143
|
+
calls:
|
144
|
+
argument:
|
145
|
+
- '*'
|
146
|
+
- greater_than
|
147
|
+
- greater_than_or_equal_to
|
148
|
+
- equal_to
|
149
|
+
- less_than
|
150
|
+
- less_than_or_equal_to
|
151
|
+
- other_than
|
152
|
+
|
153
|
+
- name: [validates_exclusion_of, validates_inclusion_of]
|
154
|
+
calls:
|
155
|
+
argument:
|
156
|
+
- '*'
|
157
|
+
- 'in'
|
158
|
+
- within
|
159
|
+
|
160
|
+
- name:
|
161
|
+
- validates_absence_of
|
162
|
+
- validates_acceptance_of
|
163
|
+
- validates_comparison_of
|
164
|
+
- validates_confirmation_of
|
165
|
+
- validates_exclusion_of
|
166
|
+
- validates_format_of
|
167
|
+
- validates_inclusion_of
|
168
|
+
- validates_length_of
|
169
|
+
- validates_numericality_of
|
170
|
+
- validates_presence_of
|
171
|
+
- validates_size_of
|
172
|
+
calls:
|
173
|
+
- arguments: ['*', if, unless]
|
174
|
+
eval:
|
175
|
+
- arguments: [if, unless]
|
176
|
+
- arguments: [if, unless]
|
177
|
+
nested: '*'
|
178
|
+
|
39
179
|
- names:
|
180
|
+
# https://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validate
|
181
|
+
# https://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validates_each
|
40
182
|
- validate
|
41
183
|
- validate_associated
|
184
|
+
- validates_each
|
42
185
|
calls:
|
43
186
|
- arguments: ['*', if, unless]
|
44
|
-
|
45
|
-
-
|
46
|
-
-
|
47
|
-
|
187
|
+
eval:
|
188
|
+
- arguments: [if, unless]
|
189
|
+
- arguments: [if, unless]
|
190
|
+
nested: '*'
|
191
|
+
|
192
|
+
# https://api.rubyonrails.org/classes/ActiveModel/Validations/ClassMethods.html#method-i-validates_with
|
193
|
+
- name: validates_with
|
194
|
+
calls:
|
195
|
+
arguments: [if, unless]
|
196
|
+
eval:
|
197
|
+
- arguments: [if, unless]
|
198
|
+
- arguments: [if, unless]
|
199
|
+
nested: '*'
|
200
|
+
|
201
|
+
# https://api.rubyonrails.org/classes/ActiveModel/AttributeMethods/ClassMethods.html#method-i-alias_attribute
|
202
|
+
# https://api.rubyonrails.org/classes/ActiveModel/Dirty.html
|
203
|
+
- name: [attribute, alias_attribute]
|
48
204
|
defines:
|
49
205
|
argument: 0
|
50
206
|
transforms:
|
51
207
|
- original
|
52
|
-
- add_suffix: '?'
|
53
208
|
- add_suffix: '='
|
209
|
+
- add_suffix: '?'
|
210
|
+
- add_suffix: _was
|
211
|
+
- add_suffix: _changed?
|
212
|
+
- add_suffix: _previously_changed?
|
213
|
+
- add_suffix: _previously_was
|
214
|
+
- add_suffix: _will_change!
|
54
215
|
- name: alias_attribute
|
55
216
|
calls:
|
56
|
-
|
57
|
-
- argument: 1
|
58
|
-
add_suffix: '?'
|
59
|
-
- argument: 1
|
60
|
-
add_suffix: '='
|
217
|
+
argument: 1
|
61
218
|
- name: resource
|
62
219
|
calls:
|
63
220
|
- argument: 0
|