class Ducalis::OnlyDefs

Constants

DETAILS
OFFENSE

Public Instance Methods

on_class(node) click to toggle source
# File lib/ducalis/cops/only_defs.rb, line 17
def on_class(node)
  _name, inheritance, body = *node
  return if !inheritance.nil? || body.nil?
  return unless !instance_methods_definitions?(body) &&
                class_methods_defintions?(body)

  add_offense(node, :expression, OFFENSE)
end

Private Instance Methods

children(body) click to toggle source
# File lib/ducalis/cops/only_defs.rb, line 49
def children(body)
  (body.type != :begin ? s(:begin, body) : body).children
end
class_method_definition?() click to toggle source
# File lib/ducalis/cops/only_defs.rb, line 43
def class_method_definition?
  lambda do |node|
    node.type == :defs && !non_public?(node) && !initialize?(node)
  end
end
class_methods_defintions?(body) click to toggle source
# File lib/ducalis/cops/only_defs.rb, line 32
def class_methods_defintions?(body)
  children(body).any?(&class_method_definition?) ||
    children(body).any?(&method(:self_class_defs?))
end
instance_methods_definitions?(body) click to toggle source
# File lib/ducalis/cops/only_defs.rb, line 28
def instance_methods_definitions?(body)
  children(body).any?(&public_method_definition?)
end
public_method_definition?() click to toggle source
# File lib/ducalis/cops/only_defs.rb, line 37
def public_method_definition?
  lambda do |node|
    node.type == :def && !non_public?(node) && !initialize?(node)
  end
end