Class: RuboCop::Cop::Grape::ParamsPosition

Inherits:
Base
  • Object
show all
Includes:
EndpointHelper
Defined in:
lib/rubocop/cop/grape/params_position.rb

Overview

Examples:

# bad
get do
  params do
    requires :user_id, Integer, desc: 'User ID'
  end
end

# good
params do
  requires :user_id, Integer, desc: 'User ID'
end
get do
end

Constant Summary collapse

MSG =
"It's no sense to define params in HTTP method's scope"

Instance Method Summary collapse

Instance Method Details

#collect_violating_nodes(node, collector = []) ⇒ Object



33
34
35
36
37
38
39
40
41
# File 'lib/rubocop/cop/grape/params_position.rb', line 33

def collect_violating_nodes(node, collector = [])
  collector.push(node) if node.type == :block && params_node?(node)

  node.children.each do |descendant|
    collect_violating_nodes(descendant, collector) if descendant.is_a?(Parser::AST::Node)
  end

  collector
end

#on_block(node) ⇒ Object



27
28
29
30
31
# File 'lib/rubocop/cop/grape/params_position.rb', line 27

def on_block(node)
  return unless http_method_node?(node)

  collect_violating_nodes(node).each(&method(:add_offense))
end