Class: Rucoa::Definitions::ConstantDefinition

Inherits:
Base
  • Object
show all
Defined in:
lib/rucoa/definitions/constant_definition.rb

Overview

Represents class definition, module definition, or constant assignment.

Direct Known Subclasses

ModuleDefinition

Instance Attribute Summary collapse

Attributes inherited from Base

#description, #location

Instance Method Summary collapse

Constructor Details

#initialize(qualified_name:, **keyword_arguments) ⇒ ConstantDefinition



11
12
13
14
15
16
17
# File 'lib/rucoa/definitions/constant_definition.rb', line 11

def initialize(
  qualified_name:,
  **keyword_arguments
)
  super(**keyword_arguments)
  @qualified_name = qualified_name
end

Instance Attribute Details

#qualified_name ⇒ String (readonly)



8
9
10
# File 'lib/rucoa/definitions/constant_definition.rb', line 8

def qualified_name
  @qualified_name
end

Instance Method Details

#name ⇒ String

Examples:

returns non-full-qualified name

definition = Rucoa::Source.new(
  content: "    module Foo\n      module Bar\n        class Baz\n        end\n      end\n    end\n  RUBY\n  uri: 'file:///path/to/foo/bar/baz.rb',\n).definitions[2]\nexpect(definition.name).to eq('Baz')\n",


33
34
35
# File 'lib/rucoa/definitions/constant_definition.rb', line 33

def name
  names.last
end

#namespace ⇒ String

Examples:

returns namespace

definition = Rucoa::Source.new(
  content: "    module Foo\n      module Bar\n        class Baz\n        end\n      end\n    end\n  RUBY\n  uri: 'file:///path/to/foo/bar/baz.rb',\n).definitions[2]\nexpect(definition.namespace).to eq('Foo::Bar')\n",


51
52
53
# File 'lib/rucoa/definitions/constant_definition.rb', line 51

def namespace
  names[..-2].join('::')
end