Class: Solargraph::Pin::Namespace

Inherits:
Pin::Base
  • Object
show all
Includes:
NodeMethods
Defined in:
lib/solargraph/pin/namespace.rb

Instance Method Summary collapse

Methods included from NodeMethods

#const_from, #infer_literal_node_type, #pack_name, #resolve_node_signature, #unpack_name

Instance Method Details

#kind ⇒ Object



14
15
16
# File 'lib/solargraph/pin/namespace.rb', line 14

def kind
  @kind ||= (node.type == :class ? Solargraph::Suggestion::CLASS : Solargraph::Suggestion::MODULE)
end

#name ⇒ Object



6
7
8
# File 'lib/solargraph/pin/namespace.rb', line 6

def name
  @name ||= pack_name(node.children[0]).last.to_s
end

#path ⇒ Object



10
11
12
# File 'lib/solargraph/pin/namespace.rb', line 10

def path
  @path ||= (namespace.empty? ? '' : "#{namespace}::") + name
end

#return_type ⇒ Object



18
19
20
# File 'lib/solargraph/pin/namespace.rb', line 18

def return_type
  @return_type ||= (node.type == :class ? 'Class' : 'Module') + "<#{path}>"
end