Class: NodeQuery::SyntaxTreeAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/node_query/adapter/syntax_tree.rb

Instance Method Summary collapse

Instance Method Details

#get_children(node) ⇒ Object



19
20
21
22
# File 'lib/node_query/adapter/syntax_tree.rb', line 19

def get_children(node)
  node.deconstruct_keys([]).filter { |key, _value| ![:location, :comments].include?(key) }
      .values
end

#get_node_type(node) ⇒ Object



11
12
13
# File 'lib/node_query/adapter/syntax_tree.rb', line 11

def get_node_type(node)
  node.class.name.split('::').last.to_sym
end

#get_siblings(node) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/node_query/adapter/syntax_tree.rb', line 24

def get_siblings(node)
  child_nodes = get_children(node.parent_node)
  if child_nodes.is_a?(Array) && child_nodes.size == 1 && child_nodes.first.is_a?(Array)
    index = child_nodes.first.index(node)
    return child_nodes.first[index + 1...]
  end

  index = child_nodes.index(node)
  child_nodes[index + 1...]
end

#get_source(node) ⇒ Object



15
16
17
# File 'lib/node_query/adapter/syntax_tree.rb', line 15

def get_source(node)
  node.to_source
end

#is_node?(node) ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/node_query/adapter/syntax_tree.rb', line 7

def is_node?(node)
  node.is_a?(SyntaxTree::Node)
end