Class: Nasl::Tree

Inherits:
Array
  • Object
show all
Defined in:
lib/nasl/parser/tree.rb

Instance Method Summary collapse

Constructor Details

#initialize(parent = nil) ⇒ Tree

Returns a new instance of Tree.



40
41
42
43
# File 'lib/nasl/parser/tree.rb', line 40

def initialize(parent=nil)
  @parent = parent
  @all = {}
end

Instance Method Details

#all(cls) ⇒ Object



31
32
33
# File 'lib/nasl/parser/tree.rb', line 31

def all(cls)
  (@all[Nasl.const_get(cls).to_s] ||= [])
end

#register(node) ⇒ Object



35
36
37
38
# File 'lib/nasl/parser/tree.rb', line 35

def register(node)
  (@all[node.class.name] ||= []) << node
  @parent.register(node) unless @parent.nil?
end

#to_sObject



45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/nasl/parser/tree.rb', line 45

def to_s
  text = ''

  xml = Builder::XmlMarkup.new(:target=>text, :indent=>2)

  if empty?
    xml.tree
  else
    xml.tree { self.map { |node| node.to_xml(xml) } }
  end

  text
end