Class: RuboCop::Cop::Commsworld::UnspecifiedModelPrivacy

Inherits:
RuboCop::Cop
  • Object
show all
Defined in:
lib/rubocop/cop/commsworld/unspecified_model_privacy.rb

Constant Summary collapse

MSG =
"Specify an access modifier for namespaced class `%<class_name>s` with either " \
"`private_constant :%<class_name>s` or `public_constant :%<class_name>s`".freeze

Instance Method Summary collapse

Instance Method Details

#on_class(node) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/rubocop/cop/commsworld/unspecified_model_privacy.rb', line 16

def on_class(node)
  return unless module_scope?(node)

  klass_name = node.identifier.node_parts.last

  node.parent.each_child_node do |child|
    next unless private_constant_declaration?(child) || public_constant_declaration?(child)
    return if klass_name == child.arguments.first.value
  end

  add_offense(node, message: message(node))
end