Module: BEL::LibBEL::NodeTransformation

Defined in:
lib/bel/libbel/node_transformation.rb

Instance Method Summary collapse

Instance Method Details

#transform(transforms, options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/bel/libbel/node_transformation.rb', line 5

def transform(transforms, options = {})
  if options[:mutate] == true
    ast_node = self
  else
    ast_node = LibBEL::copy_ast_node(self)
  end

  transforms.each do |transform|
    transform.call(ast_node)
  end
  ast_node
end

#transform_tree(transforms, traversal = :depth_first, options = {}) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/bel/libbel/node_transformation.rb', line 18

def transform_tree(transforms, traversal = :depth_first, options = {})
  if options[:mutate] == true
    ast_node = self
  else
    ast_node = LibBEL::copy_ast_node(self)
  end

  transforms.each do |transform|
    self.traversal_method(ast_node, traversal).call(transform)
  end

  ast_node
end