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/leftovers.gemspec
CHANGED
@@ -44,6 +44,7 @@ Gem::Specification.new do |spec|
|
|
44
44
|
spec.add_development_dependency 'rubocop-performance'
|
45
45
|
spec.add_development_dependency 'rubocop-rake'
|
46
46
|
spec.add_development_dependency 'rubocop-rspec'
|
47
|
+
spec.add_development_dependency 'ruby-prof'
|
47
48
|
spec.add_development_dependency 'simplecov', '>= 0.18.5'
|
48
49
|
spec.add_development_dependency 'simplecov-console'
|
49
50
|
spec.add_development_dependency 'slim'
|
@@ -51,7 +52,7 @@ Gem::Specification.new do |spec|
|
|
51
52
|
spec.add_development_dependency 'tty_string', '>= 0.2.1'
|
52
53
|
|
53
54
|
spec.add_development_dependency 'spellr', '>= 0.8.1'
|
54
|
-
spec.add_dependency 'fast_ignore', '>= 0.
|
55
|
+
spec.add_dependency 'fast_ignore', '>= 0.17.0'
|
55
56
|
spec.add_dependency 'parallel'
|
56
57
|
spec.add_dependency 'parser'
|
57
58
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# https://guides.rubyonrails.org/action_cable_overview.html
|
2
|
+
gems:
|
3
|
+
- activesupport
|
4
|
+
- actionpack
|
5
|
+
|
6
|
+
keep:
|
7
|
+
# https://guides.rubyonrails.org/action_cable_overview.html#server-side-components-channels-subscriptions
|
8
|
+
# https://api.rubyonrails.org/v7.0.2.2/classes/ActionCable/Channel/Base.html#method-i-subscribed
|
9
|
+
# it's for overriding
|
10
|
+
- subscribed
|
11
|
+
# https://api.rubyonrails.org/v7.0.2.2/classes/ActionCable/Channel/Base.html#method-i-unsubscribed
|
12
|
+
# it's for overriding
|
13
|
+
- unsubscribed
|
14
|
+
|
15
|
+
# https://api.rubyonrails.org/v7.0.2.2/classes/ActionCable/Channel/Base.html
|
16
|
+
- type: Method
|
17
|
+
privacy: public
|
18
|
+
path: /app/channels/**/*_channel.rb
|
19
|
+
|
20
|
+
- path: /app/channels/**/*_channel.rb
|
21
|
+
has_suffix: Channel
|
22
|
+
|
23
|
+
|
24
|
+
dynamic:
|
25
|
+
# https://guides.rubyonrails.org/action_cable_overview.html#connection-setup
|
26
|
+
# it's just attr_accessor
|
27
|
+
- names: identified_by
|
28
|
+
define:
|
29
|
+
- argument: '*'
|
30
|
+
transforms:
|
31
|
+
- original
|
32
|
+
- add_suffix: '='
|
33
|
+
call:
|
34
|
+
- argument: '*'
|
35
|
+
add_prefix: '@'
|
36
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# https://guides.rubyonrails.org/action_mailbox_basics.html
|
2
|
+
|
3
|
+
gems:
|
4
|
+
- activesupport
|
5
|
+
- activerecord
|
6
|
+
- activestorage
|
7
|
+
- activejob
|
8
|
+
- actionpack
|
9
|
+
|
10
|
+
keep:
|
11
|
+
# https://api.rubyonrails.org/v7.0.2.2/classes/ActionMailbox/Base.html
|
12
|
+
# Overwrite in subclasses
|
13
|
+
- process
|
14
|
+
|
15
|
+
dynamic:
|
16
|
+
# https://api.rubyonrails.org/v7.0.2.2/classes/ActionMailbox/Base.html
|
17
|
+
- names: [before_processing, after_processing, around_processing]
|
18
|
+
calls: ['*', if, unless]
|
19
|
+
|
20
|
+
# https://guides.rubyonrails.org/action_mailbox_basics.html#examples
|
21
|
+
# i'm guessing a lot about how this is supposed to work
|
22
|
+
- names: routing
|
23
|
+
calls:
|
24
|
+
arguments: '**'
|
25
|
+
camelize: true
|
26
|
+
add_suffix: Mailbox
|
27
|
+
|
28
|
+
|
data/lib/config/actionmailer.yml
CHANGED
@@ -1,22 +1,98 @@
|
|
1
|
-
#
|
2
|
-
#
|
3
|
-
|
4
|
-
|
1
|
+
# https://edgeapi.rubyonrails.org/classes/ActionMailer/Base.html
|
2
|
+
# https://guides.rubyonrails.org/action_mailer_basics.html
|
3
|
+
gems:
|
4
|
+
- activesupport
|
5
|
+
- actionpack
|
6
|
+
- actionview
|
7
|
+
- activejob
|
8
|
+
|
5
9
|
keep:
|
10
|
+
# https://guides.rubyonrails.org/action_mailer_basics.html
|
6
11
|
- has_suffix: Preview
|
7
|
-
path: '
|
12
|
+
path: '/test/mailers/previews/**/*_preview.rb'
|
13
|
+
# this path is the default
|
14
|
+
# if it's overridden copy this into .leftovers.yml with
|
15
|
+
# whatever it was overridden as
|
16
|
+
|
17
|
+
# https://guides.rubyonrails.org/action_mailer_basics.html#intercepting-emails
|
8
18
|
- delivering_email
|
19
|
+
|
20
|
+
# https://guides.rubyonrails.org/action_mailer_basics.html#observing-emails
|
9
21
|
- delivered_email
|
10
22
|
|
11
23
|
dynamic:
|
12
|
-
-
|
13
|
-
- deliver_now
|
14
|
-
- deliver_later
|
15
|
-
calls:
|
16
|
-
value:
|
17
|
-
deliver
|
24
|
+
# https://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-callbacks
|
18
25
|
- names:
|
19
26
|
- before_action
|
20
27
|
- after_action
|
21
28
|
- around_action
|
22
29
|
calls: ['*', if, unless]
|
30
|
+
|
31
|
+
# https://guides.rubyonrails.org/action_mailer_basics.html#intercepting-emails
|
32
|
+
- names: interceptors=
|
33
|
+
has_receiver: action_mailer
|
34
|
+
calls:
|
35
|
+
argument: 0
|
36
|
+
nested: '*'
|
37
|
+
split: '::'
|
38
|
+
|
39
|
+
# https://edgeapi.rubyonrails.org/classes/ActionMailer/Base.html#method-c-register_interceptor
|
40
|
+
- names: register_interceptor
|
41
|
+
calls:
|
42
|
+
argument: 0
|
43
|
+
camelize: true
|
44
|
+
split: '::'
|
45
|
+
|
46
|
+
# https://edgeapi.rubyonrails.org/classes/ActionMailer/Base.html#method-c-register_interceptors
|
47
|
+
- names: register_interceptors
|
48
|
+
calls:
|
49
|
+
argument: '*'
|
50
|
+
camelize: true
|
51
|
+
split: '::'
|
52
|
+
|
53
|
+
|
54
|
+
# https://guides.rubyonrails.org/action_mailer_basics.html#observing-emails
|
55
|
+
- names: observers=
|
56
|
+
has_receiver: action_mailer
|
57
|
+
calls:
|
58
|
+
argument: 0
|
59
|
+
nested: '*'
|
60
|
+
split: '::'
|
61
|
+
|
62
|
+
# https://edgeapi.rubyonrails.org/classes/ActionMailer/Base.html#method-c-register_observer
|
63
|
+
- names: register_observer
|
64
|
+
calls:
|
65
|
+
argument: 0
|
66
|
+
camelize: true
|
67
|
+
split: '::'
|
68
|
+
|
69
|
+
# https://edgeapi.rubyonrails.org/classes/ActionMailer/Base.html#method-c-register_observers
|
70
|
+
- names: register_observers
|
71
|
+
calls:
|
72
|
+
argument: '*'
|
73
|
+
camelize: true
|
74
|
+
split: '::'
|
75
|
+
|
76
|
+
# https://edgeapi.rubyonrails.org/classes/ActionMailer/DeliveryMethods/ClassMethods.html#method-i-add_delivery_method
|
77
|
+
# i'm going to skip this because it immediately calls the method it creates
|
78
|
+
# - names: add_delivery_method
|
79
|
+
# defines:
|
80
|
+
# argument: 0
|
81
|
+
# transforms:
|
82
|
+
# - add_suffix: _settings=
|
83
|
+
# - add_suffix: _settings
|
84
|
+
# calls:
|
85
|
+
# argument: 0
|
86
|
+
# add_suffix: _settings=
|
87
|
+
|
88
|
+
# https://edgeapi.rubyonrails.org/classes/ActionMailer/Previews/ClassMethods.html#method-i-register_preview_interceptor
|
89
|
+
- names: register_preview_interceptor
|
90
|
+
calls:
|
91
|
+
argument: 0
|
92
|
+
split: '::'
|
93
|
+
|
94
|
+
# https://edgeapi.rubyonrails.org/classes/ActionMailer/Previews/ClassMethods.html#method-i-register_preview_interceptors
|
95
|
+
- names: register_preview_interceptors
|
96
|
+
calls:
|
97
|
+
argument: '*'
|
98
|
+
split: '::'
|
data/lib/config/actionpack.yml
CHANGED
@@ -1,24 +1,31 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
include_paths: '*.rjs'
|
2
|
+
precompile:
|
3
|
+
- paths: '*.rjs'
|
4
|
+
format: erb
|
5
5
|
|
6
|
-
|
7
|
-
-
|
8
|
-
-
|
6
|
+
gems:
|
7
|
+
- activesupport
|
8
|
+
- actionview
|
9
9
|
|
10
|
-
erb_paths:
|
11
|
-
- '*.rjs'
|
12
|
-
- '*.rhtml'
|
13
10
|
|
14
11
|
keep:
|
15
|
-
|
16
|
-
-
|
17
|
-
|
12
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html#method-i-constraints
|
13
|
+
- matches?
|
14
|
+
|
15
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Concerns.html#method-i-concern
|
16
|
+
- call
|
17
|
+
|
18
|
+
# https://edgeapi.rubyonrails.org/classes/AbstractController/Rendering.html#method-i-view_assigns
|
19
|
+
- view_assigns
|
20
|
+
|
21
|
+
# https://edgeapi.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html#method-i-protect_from_forgery
|
22
|
+
- handle_unverified_request
|
23
|
+
|
18
24
|
- has_suffix: Helper
|
19
25
|
path: /app/helpers
|
20
26
|
|
21
27
|
dynamic:
|
28
|
+
# https://edgeapi.rubyonrails.org/classes/AbstractController/Callbacks.html
|
22
29
|
- names:
|
23
30
|
- after_action
|
24
31
|
- append_after_action
|
@@ -29,11 +36,41 @@ dynamic:
|
|
29
36
|
- prepend_after_action
|
30
37
|
- prepend_around_action
|
31
38
|
- prepend_before_action
|
32
|
-
- skip_before_action
|
33
|
-
- skip_after_action
|
34
|
-
- skip_around_action
|
35
39
|
calls:
|
36
40
|
- arguments: ['*', if, unless]
|
41
|
+
|
42
|
+
- names:
|
43
|
+
- skip_after_action
|
44
|
+
- skip_around_action
|
45
|
+
- skip_before_action
|
46
|
+
calls: [if, unless]
|
47
|
+
|
48
|
+
- names: protect_from_forgery
|
49
|
+
calls: [if, unless]
|
50
|
+
|
51
|
+
|
52
|
+
# https://edgeapi.rubyonrails.org/classes/ActionController/Logging/ClassMethods.html#method-i-log_at
|
53
|
+
- names: log_at
|
54
|
+
calls: [if, unless]
|
55
|
+
|
56
|
+
|
57
|
+
- name: helper
|
58
|
+
calls:
|
59
|
+
- arguments: '*'
|
60
|
+
camelize: true
|
61
|
+
|
62
|
+
# https://edgeapi.rubyonrails.org/classes/ActionController/TestCase/Behavior.html
|
63
|
+
- names: [delete, get, head, patch, put, post]
|
64
|
+
unless:
|
65
|
+
has_argument: 1
|
66
|
+
calls: 0
|
67
|
+
|
68
|
+
- names: process
|
69
|
+
calls: 0
|
70
|
+
unless:
|
71
|
+
has_argument: 1
|
72
|
+
|
73
|
+
# https://edgeapi.rubyonrails.org/classes/AbstractController/Helpers/ClassMethods.html
|
37
74
|
- name: scope
|
38
75
|
unless:
|
39
76
|
has_argument:
|
@@ -44,32 +81,77 @@ dynamic:
|
|
44
81
|
argument: module # routes
|
45
82
|
camelize: true
|
46
83
|
split: '::'
|
47
|
-
|
48
|
-
calls:
|
49
|
-
- argument: 0
|
50
|
-
camelize: true
|
51
|
-
split: '::'
|
52
|
-
- name:
|
53
|
-
- rescue_from
|
54
|
-
calls:
|
55
|
-
- argument: [1, with]
|
84
|
+
|
56
85
|
- name:
|
86
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Base.html#method-i-match
|
57
87
|
- match
|
88
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/HttpHelpers.html
|
58
89
|
- delete
|
59
90
|
- get
|
91
|
+
- options
|
60
92
|
- patch
|
61
93
|
- post
|
62
94
|
- put
|
95
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Resources.html#method-i-namespace
|
63
96
|
- root
|
64
97
|
calls:
|
65
|
-
-
|
66
|
-
- argument:
|
98
|
+
- argument: action
|
99
|
+
- argument: controller
|
100
|
+
camelize: true
|
101
|
+
add_suffix: Controller
|
102
|
+
split: '::'
|
103
|
+
- argument: 'to'
|
67
104
|
delete_before: '#'
|
68
|
-
- argument: '
|
105
|
+
- argument: 'to'
|
69
106
|
delete_after: '#'
|
70
107
|
camelize: true
|
71
108
|
add_suffix: Controller
|
72
109
|
split: '::'
|
110
|
+
- argument: module
|
111
|
+
camelize: true
|
112
|
+
split: '::'
|
113
|
+
# these might not make sense for root
|
114
|
+
- argument: { type: String }
|
115
|
+
delete_before: '#'
|
116
|
+
- argument: { type: String }
|
117
|
+
delete_after: '#'
|
118
|
+
camelize: true
|
119
|
+
add_suffix: Controller
|
120
|
+
split: '::'
|
121
|
+
|
122
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Base.html#method-i-match
|
123
|
+
# defines:
|
124
|
+
# my logic is, `as:` generates a method you chose, everything else you might just be setting up the routes to be whatever.
|
125
|
+
# argument: as
|
126
|
+
# add_suffix: [_path, _url]
|
127
|
+
|
128
|
+
# unfortunately we can't do this as the method generated by as: depends on scope/namespace and we can't look up yet
|
129
|
+
|
130
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Resources.html#method-i-root
|
131
|
+
# in addition to the above nonsense, root can also have the to: as the first positional argument
|
132
|
+
- name: root
|
133
|
+
calls:
|
134
|
+
- argument: 0
|
135
|
+
delete_before: '#'
|
136
|
+
- argument: 0
|
137
|
+
delete_after: '#'
|
138
|
+
camelize: true
|
139
|
+
add_suffix: Controller
|
140
|
+
split: '::'
|
141
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/CustomUrls.html#method-i-direct
|
142
|
+
- name: direct
|
143
|
+
defines:
|
144
|
+
argument: 0
|
145
|
+
add_suffix: [_path, _url]
|
146
|
+
|
147
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/CustomUrls.html#method-i-resolve
|
148
|
+
- name: resolve
|
149
|
+
calls:
|
150
|
+
argument: 0
|
151
|
+
split: '::'
|
152
|
+
|
153
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Resources.html#method-i-resources
|
154
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Resources.html#method-i-resource
|
73
155
|
- name:
|
74
156
|
- resource
|
75
157
|
- resources
|
@@ -176,8 +258,8 @@ dynamic:
|
|
176
258
|
- name:
|
177
259
|
- resources
|
178
260
|
- resource
|
261
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html#method-i-controller
|
179
262
|
- controller
|
180
|
-
- namespace
|
181
263
|
calls:
|
182
264
|
- argument: 0
|
183
265
|
camelize: true
|
@@ -190,12 +272,28 @@ dynamic:
|
|
190
272
|
pluralize: true
|
191
273
|
add_suffix: Controller
|
192
274
|
split: '::'
|
275
|
+
|
276
|
+
# https://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Scoping.html#method-i-namespace
|
277
|
+
- name: namespace
|
278
|
+
has_argument: module
|
279
|
+
calls:
|
280
|
+
argument: module
|
281
|
+
camelize: true
|
282
|
+
split: '::'
|
283
|
+
- name: namespace
|
284
|
+
unless:
|
285
|
+
has_argument: module
|
286
|
+
calls:
|
287
|
+
argument: 0
|
288
|
+
camelize: true
|
289
|
+
split: '::'
|
290
|
+
|
291
|
+
# this is not technically calling these,
|
292
|
+
# but it feels useful nonetheless as permit will (generally) be used to process
|
293
|
+
# before calling AR or AM #create or #update
|
193
294
|
- name: permit
|
194
295
|
calls:
|
195
296
|
arguments: ['*', '**']
|
196
297
|
keywords: '**'
|
197
298
|
add_suffix: "="
|
198
299
|
recursive: true
|
199
|
-
- name: layout
|
200
|
-
calls:
|
201
|
-
argument: 0
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# https://edgeguides.rubyonrails.org/action_text_overview.html
|
2
|
+
|
3
|
+
gems:
|
4
|
+
- activesupport
|
5
|
+
- activerecord
|
6
|
+
- activestorage
|
7
|
+
- actionpack
|
8
|
+
|
9
|
+
keep:
|
10
|
+
# https://edgeguides.rubyonrails.org/action_text_overview.html#rendering-attachments
|
11
|
+
- to_attachable_partial_path
|
12
|
+
|
13
|
+
dynamic:
|
14
|
+
# https://edgeapi.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-rich_text_area
|
15
|
+
- name: rich_text_area
|
16
|
+
has_receiver: true
|
17
|
+
calls:
|
18
|
+
argument: 0
|
19
|
+
transforms:
|
20
|
+
- original
|
21
|
+
- add_suffix: '='
|
22
|
+
|
23
|
+
- name: rich_text_area
|
24
|
+
unless:
|
25
|
+
has_receiver: true
|
26
|
+
calls:
|
27
|
+
- argument: 1
|
28
|
+
transforms:
|
29
|
+
- original
|
30
|
+
- add_suffix: '='
|
31
|
+
- argument: 0
|
32
|
+
add_prefix: '@'
|
33
|
+
|
34
|
+
# https://edgeapi.rubyonrails.org/classes/ActionText/Attribute.html#method-i-has_rich_text
|
35
|
+
- name: has_rich_text
|
36
|
+
defines:
|
37
|
+
argument: 0
|
38
|
+
transforms:
|
39
|
+
# defines its own methods
|
40
|
+
- original
|
41
|
+
- add_suffix: '?'
|
42
|
+
- add_suffix: '='
|
43
|
+
# some scopes
|
44
|
+
- add_prefix: with_rich_text_
|
45
|
+
- { add_prefix: with_rich_text_, add_suffix: _and_embeds }
|
46
|
+
# and has_one with this prefix
|
47
|
+
- add_prefix: rich_text_
|
48
|
+
transforms:
|
49
|
+
# these are copied from has_one
|
50
|
+
- original
|
51
|
+
- add_suffix: '='
|
52
|
+
- add_prefix: build_
|
53
|
+
- add_prefix: create_
|
54
|
+
- { add_prefix: create_, add_suffix: '!' }
|
55
|
+
- add_prefix: reload_
|
56
|
+
|