class RuboCop::Cop::Mirego::ExplicitReturnValue

Constants

MESSAGE

Public Instance Methods

on_def(node) click to toggle source
# File lib/rubocop/cop/mirego/explicit_return_value.rb, line 7
def on_def(node)
  _, _, body = *node
  check(node: body)
end
on_defs(node) click to toggle source
# File lib/rubocop/cop/mirego/explicit_return_value.rb, line 12
def on_defs(node)
  _, _, _, body = *node
  check(node: body)
end

Protected Instance Methods

check(node:) click to toggle source
# File lib/rubocop/cop/mirego/explicit_return_value.rb, line 19
def check(node:)
  expressions = *node
  return nil unless node

  if expressions.empty?
    validate_expression(expression: node)
  else
    expressions.compact.each { |expression| validate_expression(expression: expression) }
  end
end
check_return_node(node:, children:) click to toggle source
# File lib/rubocop/cop/mirego/explicit_return_value.rb, line 40
def check_return_node(node:, children:)
  return nil unless children.empty?

  add_offense(node, :expression, MESSAGE)
end
return_node_type(node:) click to toggle source
# File lib/rubocop/cop/mirego/explicit_return_value.rb, line 46
def return_node_type(node:)
  node.respond_to?(:type) && node.type == :return
end
validate_expression(expression:) click to toggle source
# File lib/rubocop/cop/mirego/explicit_return_value.rb, line 30
def validate_expression(expression:)
  if return_node_type(node: expression)
    check_return_node(node: expression, children: expression.children)
  elsif expression.respond_to?(:children)
    children = expression.children.compact

    check_return_node(node: expression, children: children.last.to_a) if children.last && return_node_type(node: children.last)
  end
end