Class: Risu::Parsers::Nexpose::NexposeDocument

Inherits:
Object
  • Object
show all
Defined in:
lib/risu/parsers/nexpose/nexpose_document.rb

Overview

A Object to represent the Nexpose xml file in memory

Instance Method Summary collapse

Constructor Details

#initialize(document) ⇒ NexposeDocument

Creates a instance of the NexposeDocument class



31
32
33
# File 'lib/risu/parsers/nexpose/nexpose_document.rb', line 31

def initialize document
	@document = document
end

Instance Method Details

#fix_ipsObject

Fixes the ip field if nil and replaces it with the name if its an ip



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/risu/parsers/nexpose/nexpose_document.rb', line 65

def fix_ips
	@hosts = Host.all

	@hosts.each do |host|
		if host.ip == nil
			begin
				ip = IPAddr.new host.name
				host.ip = ip.to_string
				host.save
			rescue ArgumentError
				next
			end
		end
	end
end

#parseObject

Invokes the SAX parser on the XML document



58
59
60
61
62
# File 'lib/risu/parsers/nexpose/nexpose_document.rb', line 58

def parse
	@parser = LibXML::XML::SaxParser.file @document
	@parser.callbacks = SimpleNexpose.new
	@parser.parse
end

#valid?Boolean

Checks the validness of a Nexpose

Returns:

  • (Boolean)

    True if valid, False if invalid



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/risu/parsers/nexpose/nexpose_document.rb', line 38

def valid?
	if File.exist?(@document)
		@parser = LibXML::XML::Parser.file @document
		doc = @parser.parse

		if doc.root.name == nil
			return false
		end

		if doc.root.name == "NeXposeSimpleXML"
			return true
		else
			return false
		end
	else
		return false
	end
end