class RubyDetective::AST::Nodes::ClassDeclarationNode
Constants
- CLASS_NAME_NODE_INDEX
- INHERITANCE_CLASS_NAME_NODE_INDEX
- PREPENDED_NAMESPACE_NODE_INDEX
Public Instance Methods
class_name()
click to toggle source
# File lib/ruby_detective/ast/nodes/class_declaration_node.rb, line 6 def class_name children[CLASS_NAME_NODE_INDEX].constant_name end
declared_namespace()
click to toggle source
# File lib/ruby_detective/ast/nodes/class_declaration_node.rb, line 21 def declared_namespace prepended_namespace = children[CLASS_NAME_NODE_INDEX] .children[PREPENDED_NAMESPACE_NODE_INDEX] return [class_name] unless prepended_namespace.constant_reference_node? # This scenario happens when we have a class declaration with inline # namespace, like this: class MyNamespace::MyClass prepended_namespace.constant_path + [class_name] end
inheritance_class_name()
click to toggle source
# File lib/ruby_detective/ast/nodes/class_declaration_node.rb, line 11 def inheritance_class_name inherited_class_constant = children[INHERITANCE_CLASS_NAME_NODE_INDEX] # If this child isn't a ConstantReference node it means it doesn't # have a declared class inheritance like "class Foo::Bar" return unless inherited_class_constant.constant_reference_node? inherited_class_constant.constant_name end
type()
click to toggle source
# File lib/ruby_detective/ast/nodes/class_declaration_node.rb, line 32 def type :class end