module RuboCop::SketchUp::ToolChecker

Public Instance Methods

on_class(node) click to toggle source
# File lib/rubocop/sketchup/tool_checker.rb, line 7
def on_class(node)
  name, _base_class, body = *node
  return unless name.const_name.end_with?('Tool')

  check_body(body, node)
end

Private Instance Methods

body_methods(body) click to toggle source

rubocop:enable Lint/UnusedMethodArgument

# File lib/rubocop/sketchup/tool_checker.rb, line 22
def body_methods(body)
  return [body] if body.def_type?
  return unless body.begin_type?

  body.each_child_node(:def)
end
check_body(body, class_node) click to toggle source
# File lib/rubocop/sketchup/tool_checker.rb, line 29
def check_body(body, class_node)
  return if body.nil? # Empty class etc.

  body_methods = body_methods(body)

  on_tool_class(class_node, body_methods)
end
find_method(defs, method_name) click to toggle source
# File lib/rubocop/sketchup/tool_checker.rb, line 37
def find_method(defs, method_name)
  defs.find { |def_node| def_node.method?(method_name) }
end
on_tool_class(class_node, body, body_methods) click to toggle source

rubocop:disable Lint/UnusedMethodArgument

# File lib/rubocop/sketchup/tool_checker.rb, line 17
def on_tool_class(class_node, body, body_methods)
  raise NotImplementedError, 'Implement this method'
end