leftovers 0.4.3 → 0.5.3
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -0
- data/docs/Configuration.md +46 -11
- data/lib/.DS_Store +0 -0
- data/lib/config/actioncable.yml +4 -0
- data/lib/config/actionmailer.yml +22 -0
- data/lib/config/actionpack.yml +190 -0
- data/lib/config/actionview.yml +64 -0
- data/lib/config/activejob.yml +29 -0
- data/lib/config/activemodel.yml +74 -0
- data/lib/config/activerecord.yml +179 -0
- data/lib/config/activesupport.yml +99 -0
- data/lib/config/haml.yml +2 -0
- data/lib/config/rails.yml +11 -450
- data/lib/config/ruby.yml +6 -0
- data/lib/leftovers/ast/node.rb +14 -0
- data/lib/leftovers/config.rb +8 -0
- data/lib/leftovers/config_validator/schema_hash.rb +62 -29
- data/lib/leftovers/erb.rb +2 -2
- data/lib/leftovers/file.rb +2 -3
- data/lib/leftovers/matcher_builders/node.rb +2 -0
- data/lib/leftovers/matcher_builders/node_has_argument.rb +11 -7
- data/lib/leftovers/matcher_builders/node_has_keyword_argument.rb +14 -10
- data/lib/leftovers/matcher_builders/node_has_positional_argument.rb +17 -13
- data/lib/leftovers/matcher_builders/node_has_receiver.rb +15 -0
- data/lib/leftovers/matcher_builders/node_type.rb +7 -6
- data/lib/leftovers/matcher_builders/node_value.rb +50 -0
- data/lib/leftovers/matcher_builders.rb +3 -2
- data/lib/leftovers/matchers/node_has_any_positional_argument_with_value.rb +4 -1
- data/lib/leftovers/matchers/node_has_positional_argument.rb +0 -4
- data/lib/leftovers/matchers/node_has_receiver.rb +20 -0
- data/lib/leftovers/matchers/predicate.rb +19 -0
- data/lib/leftovers/matchers.rb +2 -0
- data/lib/leftovers/merged_config.rb +19 -1
- data/lib/leftovers/todo_reporter.rb +9 -6
- data/lib/leftovers/value_processors/camelize.rb +1 -1
- data/lib/leftovers/value_processors/deconstantize.rb +1 -1
- data/lib/leftovers/value_processors/demodulize.rb +1 -1
- data/lib/leftovers/value_processors/parameterize.rb +1 -1
- data/lib/leftovers/value_processors/pluralize.rb +1 -1
- data/lib/leftovers/value_processors/singularize.rb +1 -1
- data/lib/leftovers/value_processors/titleize.rb +1 -1
- data/lib/leftovers/value_processors/underscore.rb +1 -1
- data/lib/leftovers/version.rb +1 -1
- data/lib/leftovers.rb +95 -92
- metadata +16 -4
- data/lib/leftovers/matcher_builders/argument_node_value.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8bd5a1759f2b1f26facd015571005bb0bbc3a015ad6feeb28a5b79ec368edf73
|
4
|
+
data.tar.gz: dbebde9858cd4566a8ca0b2d3770ae97d7904934fe735cce07a287a1c99c55a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e81ea69d2763105ba675d36a60c09b6274c625426f92088c2b560cf2890dffb714d56574af91dc51bbdaa64c6e419fff497415a847dc86c239fc19db3c4b026
|
7
|
+
data.tar.gz: db7bf18379a515c2b53bcc912b7e97e7b44e8bbb75ee1f76db2c729f08f6617852df69c0d7dce4a16d284b31026d5d8da07ec1ff5c655693bf0dfc9ea4ebc523
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,32 @@
|
|
1
|
+
# v0.5.3
|
2
|
+
- fix incompatibility with activesupport 7.
|
3
|
+
|
4
|
+
# v0.5.2
|
5
|
+
- allow config entries to have duplicates (especially as --write-todo) can write a file with duplicates)
|
6
|
+
|
7
|
+
# v0.5.1
|
8
|
+
- fixed a bug with the erb parsing where it was incorrectly compiling comments:
|
9
|
+
```
|
10
|
+
<% # Comment %>
|
11
|
+
<% if query? %>
|
12
|
+
<%= content %>
|
13
|
+
<% end %>
|
14
|
+
```
|
15
|
+
|
16
|
+
# v0.5.0
|
17
|
+
- `has_receiver:` will match the receiver for methods and the namespace for constants.
|
18
|
+
- `has_value_type:` is now `has_value: type:`
|
19
|
+
- `has_value:` can be nested with `at:` and `has_value:`.
|
20
|
+
- `has_argument:` can be given `at:` with `'*'` or `'**'` which matches all positional arguments or keyword arguments respectively
|
21
|
+
- the rails.yml config has been broken up into e.g. activerecord, actionpack, etc
|
22
|
+
- `haml_paths:` and `erb_paths:` are now configurable.
|
23
|
+
- `type:` can match on `'Array'`, `'Hash'`, and `'Proc'` literals.
|
24
|
+
- rails.yml config determines which `scope` is which by its shape rather than its path: (ActiveRecord#scope has a proc as the second parameter)
|
25
|
+
- `--write--todo` now correctly handles grouped definitions (like activemodel attributes)
|
26
|
+
|
27
|
+
# v0.4.4
|
28
|
+
- don't hard-wrap the --write-todo instructions it looks weird
|
29
|
+
|
1
30
|
# v0.4.3
|
2
31
|
- add --write-todo so you can add this to your project without
|
3
32
|
immediately fixing everything.
|
data/docs/Configuration.md
CHANGED
@@ -6,6 +6,8 @@ Its presence is optional and all of these settings are optional.
|
|
6
6
|
- [`include_paths:`](#include_paths)
|
7
7
|
- [`exclude_paths:`](#exclude_paths)
|
8
8
|
- [`test_paths:`](#test_paths)
|
9
|
+
- [`haml_paths:`](#haml_paths)
|
10
|
+
- [`erb_paths:`](#erb_paths)
|
9
11
|
- [`requires:`](#requires)
|
10
12
|
- [`gems:`](#gems)
|
11
13
|
- [`keep:`](#keep)
|
@@ -47,7 +49,7 @@ exclude_paths:
|
|
47
49
|
|
48
50
|
Arrays are not necessary for single values
|
49
51
|
|
50
|
-
## `requires:`
|
52
|
+
## `requires:`
|
51
53
|
_alias `require`_
|
52
54
|
|
53
55
|
List filenames/paths that you want to include
|
@@ -78,6 +80,30 @@ test_paths:
|
|
78
80
|
|
79
81
|
Arrays are not necessary for single values
|
80
82
|
|
83
|
+
## `haml_paths:`
|
84
|
+
|
85
|
+
list filenames/paths of test directories that are in the haml format
|
86
|
+
Defined using the [.gitignore pattern format](https://git-scm.com/docs/gitignore#_pattern_format)
|
87
|
+
|
88
|
+
```yml
|
89
|
+
haml_paths:
|
90
|
+
- '*.haml'
|
91
|
+
```
|
92
|
+
|
93
|
+
Arrays are not necessary for single values. `*.haml` is recognized by default
|
94
|
+
|
95
|
+
## `erb_paths:`
|
96
|
+
|
97
|
+
list filenames/paths of test directories that are in the erb format
|
98
|
+
Defined using the [.gitignore pattern format](https://git-scm.com/docs/gitignore#_pattern_format)
|
99
|
+
|
100
|
+
```yml
|
101
|
+
erb_paths:
|
102
|
+
- '*.erb'
|
103
|
+
```
|
104
|
+
|
105
|
+
Arrays are not necessary for single values. `*.erb` is recognized by default
|
106
|
+
|
81
107
|
## `gems:`
|
82
108
|
_alias `gem:`_
|
83
109
|
|
@@ -105,6 +131,7 @@ Each entry can be a string (an exact match for a method, constant, or variable n
|
|
105
131
|
- [`matches:`](#matches) (can't be used in the same entry as `has_prefix:` or `has_suffix:`)
|
106
132
|
- [`paths:`](#paths)
|
107
133
|
- [`has_arguments:`](#has_arguments)
|
134
|
+
- [`has_receiver:`](#has_receiver)
|
108
135
|
- [`unless`](#unless)
|
109
136
|
|
110
137
|
Arrays are not necessary for single values
|
@@ -161,6 +188,7 @@ Each entry must have at least one of the following properties to restrict which
|
|
161
188
|
- [`matches:`](#matches)
|
162
189
|
- [`paths:`](#paths)
|
163
190
|
- [`has_arguments:`](#has_arguments)
|
191
|
+
- [`has_receiver:`](#has_receiver)
|
164
192
|
- [`unless`](#unless)
|
165
193
|
|
166
194
|
And must have one or both of
|
@@ -323,8 +351,7 @@ and when used in:
|
|
323
351
|
|
324
352
|
It can have any of these properties:
|
325
353
|
- [`at:`](#at)
|
326
|
-
- [`has_value:`](#
|
327
|
-
- [`has_value_type:`](#has_value_type)
|
354
|
+
- [`has_value:`](#has_value_has_receiver)
|
328
355
|
|
329
356
|
Arrays are not necessary for single values and if the rule contains only `at:` it can be omitted, and the values moved up a level
|
330
357
|
|
@@ -340,8 +367,7 @@ The method call/constant variable/assignment will be considered matching if it h
|
|
340
367
|
|
341
368
|
It can have any of these properties:
|
342
369
|
- [`at:`](#at)
|
343
|
-
- [`has_value:`](#
|
344
|
-
- [`has_value_type:`](#has_value_type) # TODO
|
370
|
+
- [`has_value:`](#has_value_has_receiver)
|
345
371
|
|
346
372
|
Arrays are not necessary for single values and if the rule contains only `at:` it can be omitted, and the values moved up a level
|
347
373
|
|
@@ -383,9 +409,9 @@ Each entry can be any of:
|
|
383
409
|
|
384
410
|
Arrays are not necessary for single values
|
385
411
|
|
386
|
-
## `has_value:`
|
412
|
+
## `has_value:`, `has_receiver:`
|
387
413
|
|
388
|
-
filter [`arguments:`](#arguments), [`has_arguments:`](#has_arguments), and [`keywords:`](#keywords), by the argument/assigned value
|
414
|
+
filter [`arguments:`](#arguments), [`has_arguments:`](#has_arguments), and [`keywords:`](#keywords), by the argument/assigned/receiver value
|
389
415
|
|
390
416
|
Each entry can be one of
|
391
417
|
- `true`, `false`, `nil`, or an Integer. matches the literal value
|
@@ -394,16 +420,25 @@ Each entry can be one of
|
|
394
420
|
- [`has_prefix:`](#has_prefix)
|
395
421
|
- [`has_suffix:`](#has_suffix)
|
396
422
|
- [`matches:`](#matches) (this can't be used in the same entry as `has_prefix:` or `has_suffix:`)
|
423
|
+
- or have at least one of the following properties to match within an array or hash:
|
424
|
+
- [`at`](#at)
|
425
|
+
- [`has_value`](#has_value_has_receiver)
|
426
|
+
- or have the following property to match the value type
|
427
|
+
- [`type`](#type)
|
428
|
+
- or have the following property to match the receiver
|
429
|
+
- [`has_receiver`](#has_value_has_receiver)
|
397
430
|
|
398
|
-
## `
|
431
|
+
## `type:`
|
399
432
|
|
400
|
-
Filter [`
|
433
|
+
Filter [`has_value`](#has_value_has_receiver), by the argument/assigned value type
|
401
434
|
|
402
435
|
Each entry can be one of
|
403
436
|
- `'String'`
|
404
437
|
- `'Symbol'`
|
405
438
|
- `'Integer'`
|
406
439
|
- `'Float'`
|
440
|
+
- `'Array'`
|
441
|
+
- `'Hash'`
|
407
442
|
|
408
443
|
Arrays are not necessary for single values
|
409
444
|
|
@@ -613,9 +648,9 @@ Can be used in the [`transforms:`](#transforms) list (or anywhere `transforms:`
|
|
613
648
|
if used in a hash `true` can be used as a placeholder value
|
614
649
|
|
615
650
|
the incoming value will be transformed using the [active_support String core extensions](https://edgeguides.rubyonrails.org/active_support_core_extensions.html#inflections)
|
616
|
-
and if using [gems:](#gems) with `
|
651
|
+
and if using [gems:](#gems) with `activesupport` or `rails` then your `config/initializers/inflections.rb` will be loaded. if you have inflections in another file, then supply that to [`requires:`](#requires).
|
617
652
|
|
618
|
-
If the `
|
653
|
+
If the `activesupport` gem is not available this will raise an error.
|
619
654
|
|
620
655
|
## `unless:`
|
621
656
|
|
data/lib/.DS_Store
ADDED
Binary file
|
@@ -0,0 +1,22 @@
|
|
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
|
+
keep:
|
6
|
+
- has_suffix: Preview
|
7
|
+
path: '**/mailers/previews/**/*_preview.rb'
|
8
|
+
- delivering_email
|
9
|
+
- delivered_email
|
10
|
+
|
11
|
+
dynamic:
|
12
|
+
names:
|
13
|
+
- deliver_now
|
14
|
+
- deliver_later
|
15
|
+
calls:
|
16
|
+
value:
|
17
|
+
deliver
|
18
|
+
names:
|
19
|
+
- before_action
|
20
|
+
- after_action
|
21
|
+
- around_action
|
22
|
+
calls: ['*', if, unless]
|
@@ -0,0 +1,190 @@
|
|
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
|
+
|
6
|
+
include_paths:
|
7
|
+
- '*.rjs'
|
8
|
+
- '*.rhtml'
|
9
|
+
|
10
|
+
erb_paths:
|
11
|
+
- '*.rjs'
|
12
|
+
- '*.rhtml'
|
13
|
+
|
14
|
+
keep:
|
15
|
+
- ssl_configured? # ApplicationController
|
16
|
+
- default_url_options # called by url_for
|
17
|
+
- matches? # called by route constraints
|
18
|
+
- has_suffix: Helper
|
19
|
+
path: /app/helpers
|
20
|
+
|
21
|
+
dynamic:
|
22
|
+
- names:
|
23
|
+
- after_action
|
24
|
+
- append_after_action
|
25
|
+
- append_around_action
|
26
|
+
- append_before_action
|
27
|
+
- around_action
|
28
|
+
- before_action
|
29
|
+
- prepend_after_action
|
30
|
+
- prepend_around_action
|
31
|
+
- prepend_before_action
|
32
|
+
- skip_before_action
|
33
|
+
- skip_after_action
|
34
|
+
- skip_around_action
|
35
|
+
calls:
|
36
|
+
- arguments: ['*', if, unless]
|
37
|
+
- name: scope
|
38
|
+
unless:
|
39
|
+
has_argument:
|
40
|
+
at: 1
|
41
|
+
has_value:
|
42
|
+
type: Proc
|
43
|
+
calls:
|
44
|
+
argument: module # routes
|
45
|
+
camelize: true
|
46
|
+
split: '::'
|
47
|
+
- name: namespace
|
48
|
+
calls:
|
49
|
+
- argument: 0
|
50
|
+
camelize: true
|
51
|
+
split: '::'
|
52
|
+
- name:
|
53
|
+
- rescue_from
|
54
|
+
calls:
|
55
|
+
- argument: [1, with]
|
56
|
+
- name:
|
57
|
+
- match
|
58
|
+
- delete
|
59
|
+
- get
|
60
|
+
- patch
|
61
|
+
- post
|
62
|
+
- put
|
63
|
+
- root
|
64
|
+
calls:
|
65
|
+
- arguments: [0, action]
|
66
|
+
- argument: '**'
|
67
|
+
delete_before: '#'
|
68
|
+
- argument: '**'
|
69
|
+
delete_after: '#'
|
70
|
+
camelize: true
|
71
|
+
add_suffix: Controller
|
72
|
+
split: '::'
|
73
|
+
- name:
|
74
|
+
- resource
|
75
|
+
- resources
|
76
|
+
calls:
|
77
|
+
- argument: only
|
78
|
+
- argument: controller
|
79
|
+
camelize: true
|
80
|
+
add_suffix: Controller
|
81
|
+
split: '::'
|
82
|
+
- name:
|
83
|
+
- resource
|
84
|
+
- resources
|
85
|
+
unless:
|
86
|
+
has_argument:
|
87
|
+
- at: only
|
88
|
+
- at: except
|
89
|
+
has_value: index
|
90
|
+
- at: except
|
91
|
+
has_value:
|
92
|
+
at: '*'
|
93
|
+
has_value: index
|
94
|
+
calls:
|
95
|
+
- value: index
|
96
|
+
- name:
|
97
|
+
- resource
|
98
|
+
- resources
|
99
|
+
unless:
|
100
|
+
has_argument:
|
101
|
+
- at: only
|
102
|
+
- at: except
|
103
|
+
has_value: new
|
104
|
+
- at: except
|
105
|
+
has_value:
|
106
|
+
at: '*'
|
107
|
+
has_value: new
|
108
|
+
calls:
|
109
|
+
- value: new
|
110
|
+
- name:
|
111
|
+
- resource
|
112
|
+
- resources
|
113
|
+
unless:
|
114
|
+
has_argument:
|
115
|
+
- at: only
|
116
|
+
- at: except
|
117
|
+
has_value: create
|
118
|
+
- at: except
|
119
|
+
has_value:
|
120
|
+
at: '*'
|
121
|
+
has_value: create
|
122
|
+
calls:
|
123
|
+
- value: create
|
124
|
+
- name:
|
125
|
+
- resource
|
126
|
+
- resources
|
127
|
+
unless:
|
128
|
+
has_argument:
|
129
|
+
- at: only
|
130
|
+
- at: except
|
131
|
+
has_value: edit
|
132
|
+
- at: except
|
133
|
+
has_value:
|
134
|
+
at: '*'
|
135
|
+
has_value: edit
|
136
|
+
calls:
|
137
|
+
- value: edit
|
138
|
+
- name:
|
139
|
+
- resource
|
140
|
+
- resources
|
141
|
+
unless:
|
142
|
+
has_argument:
|
143
|
+
- at: only
|
144
|
+
- at: except
|
145
|
+
has_value: update
|
146
|
+
- at: except
|
147
|
+
has_value:
|
148
|
+
at: '*'
|
149
|
+
has_value: update
|
150
|
+
calls:
|
151
|
+
- value: update
|
152
|
+
- name:
|
153
|
+
- resource
|
154
|
+
- resources
|
155
|
+
unless:
|
156
|
+
has_argument:
|
157
|
+
- at: only
|
158
|
+
- at: except
|
159
|
+
has_value: destroy
|
160
|
+
- at: except
|
161
|
+
has_value:
|
162
|
+
at: '*'
|
163
|
+
has_value: destroy
|
164
|
+
calls:
|
165
|
+
- value: destroy
|
166
|
+
- name:
|
167
|
+
- resources
|
168
|
+
- controller
|
169
|
+
- namespace
|
170
|
+
calls:
|
171
|
+
- argument: 0
|
172
|
+
camelize: true
|
173
|
+
add_suffix: Controller
|
174
|
+
split: '::'
|
175
|
+
- name: resource
|
176
|
+
calls:
|
177
|
+
- argument: 0
|
178
|
+
camelize: true
|
179
|
+
pluralize: true
|
180
|
+
add_suffix: Controller
|
181
|
+
split: '::'
|
182
|
+
- name: permit
|
183
|
+
calls:
|
184
|
+
arguments: ['*', '**']
|
185
|
+
keywords: '**'
|
186
|
+
add_suffix: "="
|
187
|
+
recursive: true
|
188
|
+
- name: layout
|
189
|
+
calls:
|
190
|
+
argument: 0
|
@@ -0,0 +1,64 @@
|
|
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
|
+
keep:
|
6
|
+
- has_suffix: Helper
|
7
|
+
path: /app/helpers
|
8
|
+
|
9
|
+
dynamic:
|
10
|
+
- name:
|
11
|
+
- check_box
|
12
|
+
- date_select
|
13
|
+
- datetime_select
|
14
|
+
- file_field
|
15
|
+
- hidden_field
|
16
|
+
- label
|
17
|
+
- radio_button
|
18
|
+
- select
|
19
|
+
- time_select
|
20
|
+
- time_zone_select
|
21
|
+
- color_field
|
22
|
+
- date_field
|
23
|
+
- datetime_field
|
24
|
+
- datetime_local_field
|
25
|
+
- email_field
|
26
|
+
- month_field
|
27
|
+
- number_field
|
28
|
+
- password_field
|
29
|
+
- phone_field
|
30
|
+
- range_field
|
31
|
+
- search_field
|
32
|
+
- telephone_field
|
33
|
+
- text_area
|
34
|
+
- text_field
|
35
|
+
- time_field
|
36
|
+
- url_field
|
37
|
+
- week_field
|
38
|
+
calls:
|
39
|
+
- arguments: [0,1] # 0: with a receiver, 1: with no receiver
|
40
|
+
- arguments: [0,1]
|
41
|
+
add_suffix: '='
|
42
|
+
- name: fields_for
|
43
|
+
calls:
|
44
|
+
argument: 1
|
45
|
+
add_suffix: _attributes
|
46
|
+
- name: options_from_collection_for_select
|
47
|
+
calls:
|
48
|
+
- arguments: [1,2]
|
49
|
+
- name:
|
50
|
+
- collection_select
|
51
|
+
- collection_check_boxes
|
52
|
+
- collection_radio_buttons
|
53
|
+
calls:
|
54
|
+
- argument: 1
|
55
|
+
add_suffix: '='
|
56
|
+
- arguments: [3,4]
|
57
|
+
- name: grouped_collection_select
|
58
|
+
calls:
|
59
|
+
- argument: 1
|
60
|
+
add_suffix: '='
|
61
|
+
- arguments: [3,4,5,6]
|
62
|
+
- name: option_groups_from_collection_for_select
|
63
|
+
calls:
|
64
|
+
- arguments: [0,1,2,3]
|
@@ -0,0 +1,29 @@
|
|
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
|
+
keep:
|
6
|
+
- serialize?
|
7
|
+
- serialize
|
8
|
+
- deserialize
|
9
|
+
dynamic:
|
10
|
+
- name:
|
11
|
+
- perform_later
|
12
|
+
- perform
|
13
|
+
calls:
|
14
|
+
- value: perform
|
15
|
+
- names:
|
16
|
+
- before_enqueue
|
17
|
+
- around_enqueue
|
18
|
+
- after_enqueue
|
19
|
+
- before_perform
|
20
|
+
- around_perform
|
21
|
+
- after_perform
|
22
|
+
calls:
|
23
|
+
- arguments: 1
|
24
|
+
- arguments: [if, unless]
|
25
|
+
nested:
|
26
|
+
arguments: '*'
|
27
|
+
- name: rescue_from
|
28
|
+
calls:
|
29
|
+
- arguments: 1
|
@@ -0,0 +1,74 @@
|
|
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
|
+
keep:
|
6
|
+
- validate_each # ActiveModel::EachValidator
|
7
|
+
|
8
|
+
dynamic:
|
9
|
+
- names:
|
10
|
+
- after_initialize
|
11
|
+
- before_validation
|
12
|
+
- after_validation
|
13
|
+
calls:
|
14
|
+
- arguments: 0
|
15
|
+
- arguments: [if, unless]
|
16
|
+
nested:
|
17
|
+
arguments: '*'
|
18
|
+
- name:
|
19
|
+
- validates_associated
|
20
|
+
calls:
|
21
|
+
- arguments: ['*', if, unless]
|
22
|
+
- name: validates
|
23
|
+
calls:
|
24
|
+
- arguments:
|
25
|
+
- '*'
|
26
|
+
- within
|
27
|
+
- inclusion
|
28
|
+
- scope
|
29
|
+
- if
|
30
|
+
- unless
|
31
|
+
- arguments: inclusion
|
32
|
+
nested:
|
33
|
+
arguments: 'in'
|
34
|
+
- keywords:
|
35
|
+
unless: [if, unless]
|
36
|
+
camelize: true
|
37
|
+
add_suffix: Validator
|
38
|
+
split: '::'
|
39
|
+
- names:
|
40
|
+
- validate
|
41
|
+
- validate_associated
|
42
|
+
calls:
|
43
|
+
- arguments: ['*', if, unless]
|
44
|
+
- name:
|
45
|
+
- attribute
|
46
|
+
- alias_attribute
|
47
|
+
path: app/models/*
|
48
|
+
defines:
|
49
|
+
argument: 0
|
50
|
+
transforms:
|
51
|
+
- original
|
52
|
+
- add_suffix: '?'
|
53
|
+
- add_suffix: '='
|
54
|
+
- name: alias_attribute
|
55
|
+
calls:
|
56
|
+
- argument: 1
|
57
|
+
- argument: 1
|
58
|
+
add_suffix: '?'
|
59
|
+
- argument: 1
|
60
|
+
add_suffix: '='
|
61
|
+
- name: resource
|
62
|
+
calls:
|
63
|
+
- argument: 0
|
64
|
+
camelize: true
|
65
|
+
pluralize: true
|
66
|
+
add_suffix: Controller
|
67
|
+
split: '::'
|
68
|
+
|
69
|
+
- name:
|
70
|
+
- new
|
71
|
+
- assign_attributes
|
72
|
+
calls:
|
73
|
+
keyword: '**'
|
74
|
+
add_suffix: '='
|