class RubyVM::AbstractSyntaxTree::NodeWrapper

Wrapper for RubyVM::AbstractSyntaxTree::Node. for return character based column

Attributes

code[R]

Public Class Methods

from(node, code) click to toggle source
# File lib/solargraph/parser/rubyvm/node_wrapper.rb, line 14
def self.from(node, code)
  return node unless node.is_a?(RubyVM::AbstractSyntaxTree::Node) and !node.kind_of?(SimpleDelegator)

  new(node, code)
end
new(node, code) click to toggle source

@param node [RubyVM::AbstractSyntaxTree::Node] wrapped node to return character based column @param code [Array<String>] source code lines for generated this node

Calls superclass method
# File lib/solargraph/parser/rubyvm/node_wrapper.rb, line 9
def initialize(node, code)
  @code = code
  super(node)
end

Public Instance Methods

children() click to toggle source
# File lib/solargraph/parser/rubyvm/node_wrapper.rb, line 43
def children
  @children ||= __getobj__.children.map do |node| NodeWrapper.from(node, @code) end
end
class() click to toggle source
# File lib/solargraph/parser/rubyvm/node_wrapper.rb, line 24
def class
  __getobj__.class
end
first_column() click to toggle source
# File lib/solargraph/parser/rubyvm/node_wrapper.rb, line 29
def first_column
  @first_column ||= begin
    line = @code[__getobj__.first_lineno - 1] || ""
    line.byteslice(0, __getobj__.first_column).length
  end
end
is_a?(type) click to toggle source
Calls superclass method
# File lib/solargraph/parser/rubyvm/node_wrapper.rb, line 20
def is_a?(type)
  __getobj__.is_a?(type) || super.is_a?(type)
end
last_column() click to toggle source
# File lib/solargraph/parser/rubyvm/node_wrapper.rb, line 36
def last_column
  @last_column ||= begin
    line = @code[__getobj__.last_lineno - 1] || ""
    line.byteslice(0, __getobj__.last_column).length
  end
end