Class: Solargraph::SourceMap::NodeProcessor::AliasNode

Inherits:
Base
  • Object
show all
Defined in:
lib/solargraph/source_map/node_processor/alias_node.rb

Instance Attribute Summary

Attributes inherited from Base

#node, #pins, #region

Instance Method Summary collapse

Methods inherited from Base

#initialize

Methods included from Solargraph::Source::NodeMethods

const_from, drill_signature, get_node_end_position, get_node_start_position, infer_literal_node_type, pack_name, resolve_node_signature, returns_from, unpack_name

Constructor Details

This class inherits a constructor from Solargraph::SourceMap::NodeProcessor::Base

Instance Method Details

#processObject



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/solargraph/source_map/node_processor/alias_node.rb', line 5

def process
  pin = pins.select{|p| [Solargraph::Pin::Method, Solargraph::Pin::Attribute].include?(p.class) && p.name == node.children[1].children[0].to_s && p.namespace == region.namespace && p.scope == region.scope}.first
  if pin.nil?
    pins.push Solargraph::Pin::MethodAlias.new(get_node_location(node), region.namespace, node.children[0].children[0].to_s, region.scope, node.children[1].children[0].to_s)
  elsif pin.is_a?(Solargraph::Pin::Method)
    pins.push Solargraph::Pin::Method.new(get_node_location(node), pin.namespace, node.children[0].children[0].to_s, comments_for(node) || pin.comments, pin.scope, pin.visibility, pin.parameters, pin.node)
  elsif pin.is_a?(Solargraph::Pin::Attribute)
    pins.push Solargraph::Pin::Attribute.new(get_node_location(node), pin.namespace, node.children[0].children[0].to_s, comments_for(node) || pin.comments, pin.access, pin.scope, pin.visibility)
  end
  process_children
end