Class: RuboCop::Cop::Rails::ActionOrder
- Inherits:
-
Base
- Object
- Base
- RuboCop::Cop::Rails::ActionOrder
- Extended by:
- AutoCorrector
- Includes:
- DefNode, RangeHelp, VisibilityHelp
- Defined in:
- lib/rubocop/cop/rails/action_order.rb
Overview
Enforces consistent ordering of the standard Rails RESTful controller actions.
The cop is configurable and can enforce any ordering of the standard actions.
All other methods are ignored. So, the actions specified in ExpectedOrder should be
defined before actions not specified.
[source,yaml]
Rails/ActionOrder: ExpectedOrder: - index - show - new - edit - create - update - destroy
Constant Summary collapse
- MSG =
'Action `%<current>s` should appear before `%<previous>s`.'
Instance Method Summary collapse
Instance Method Details
#on_class(node) ⇒ Object
45 46 47 48 49 50 51 52 |
# File 'lib/rubocop/cop/rails/action_order.rb', line 45 def on_class(node) action_declarations(node, actions).each_cons(2) do |previous, current| next if node_visibility(current) != :public || non_public?(current) next if find_index(current) >= find_index(previous) register_offense(previous, current) end end |