Class: RailsLens::Parsers::NodeInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_lens/parsers/node_info.rb

Overview

Shared metadata for a parsed class or module definition.

Direct Known Subclasses

ClassInfo, ModuleInfo

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, line_number:, column:, end_line:, namespace: nil) ⇒ NodeInfo

Returns a new instance of NodeInfo.



9
10
11
12
13
14
15
# File 'lib/rails_lens/parsers/node_info.rb', line 9

def initialize(name:, line_number:, column:, end_line:, namespace: nil)
  @name = name
  @line_number = line_number
  @column = column
  @end_line = end_line
  @namespace = namespace
end

Instance Attribute Details

#columnObject (readonly)

Returns the value of attribute column.



7
8
9
# File 'lib/rails_lens/parsers/node_info.rb', line 7

def column
  @column
end

#end_lineObject (readonly)

Returns the value of attribute end_line.



7
8
9
# File 'lib/rails_lens/parsers/node_info.rb', line 7

def end_line
  @end_line
end

#line_numberObject (readonly)

Returns the value of attribute line_number.



7
8
9
# File 'lib/rails_lens/parsers/node_info.rb', line 7

def line_number
  @line_number
end

#nameObject (readonly)

Returns the value of attribute name.



7
8
9
# File 'lib/rails_lens/parsers/node_info.rb', line 7

def name
  @name
end

#namespaceObject (readonly)

Returns the value of attribute namespace.



7
8
9
# File 'lib/rails_lens/parsers/node_info.rb', line 7

def namespace
  @namespace
end

Instance Method Details

#full_nameObject



17
18
19
20
21
22
23
# File 'lib/rails_lens/parsers/node_info.rb', line 17

def full_name
  if namespace.present?
    "#{namespace}::#{name}"
  else
    name
  end
end

#inspectObject



29
30
31
# File 'lib/rails_lens/parsers/node_info.rb', line 29

def inspect
  "#<#{self.class.name.split('::').last} name=#{name} line=#{line_number} namespace=#{namespace}>"
end

#to_sObject



25
26
27
# File 'lib/rails_lens/parsers/node_info.rb', line 25

def to_s
  full_name
end