Class: Lkml::Visitors::BasicTransformer

Inherits:
Object
  • Object
show all
Includes:
Tree::Visitor
Defined in:
lib/lkml/visitors.rb

Instance Method Summary collapse

Instance Method Details

#_visit_items(node) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/lkml/visitors.rb', line 54

def _visit_items(node)
  ch = node.children
  return node unless ch && !ch.empty?

  new_children = ch.map { |child| child.accept(self) }
  case node
  when Tree::ContainerNode, Tree::ListNode
    node.with(items: new_children.freeze)
  else
    node
  end
end

#visit(document) ⇒ Object



67
68
69
70
71
# File 'lib/lkml/visitors.rb', line 67

def visit(document)
  return document unless document.container

  document.with(container: document.container.accept(self))
end

#visit_block(node) ⇒ Object



81
82
83
84
85
# File 'lib/lkml/visitors.rb', line 81

def visit_block(node)
  return node unless node.container

  node.with(container: node.container.accept(self))
end

#visit_container(node) ⇒ Object



73
74
75
# File 'lib/lkml/visitors.rb', line 73

def visit_container(node)
  _visit_items(node)
end

#visit_list(node) ⇒ Object



77
78
79
# File 'lib/lkml/visitors.rb', line 77

def visit_list(node)
  _visit_items(node)
end

#visit_pair(node) ⇒ Object



87
88
89
# File 'lib/lkml/visitors.rb', line 87

def visit_pair(node)
  node
end

#visit_token(token) ⇒ Object



91
92
93
# File 'lib/lkml/visitors.rb', line 91

def visit_token(token)
  token
end