Class: Risu::Parsers::Nexpose::SimpleNexpose
- Inherits:
-
Object
- Object
- Risu::Parsers::Nexpose::SimpleNexpose
- Includes:
- LibXML::XML::SaxParser::Callbacks
- Defined in:
- lib/risu/parsers/nexpose/simple_nexpose.rb
Constant Summary collapse
- VALID_FINGERPRINTS =
{ "description" => :os, "vendor" => nil, "family" => nil, "product" => nil, "version" => nil, "device-class" => :system_type, "architecture" => nil }
Instance Method Summary collapse
-
#initialize ⇒ SimpleNexpose
constructor
A new instance of SimpleNexpose.
-
#on_characters(text) ⇒ Object
Called when the inner text of a element is reached.
-
#on_end_element(element) ⇒ Object
Called when the end of the XML element is reached.
- #on_start_element(element, attributes) ⇒ Object
Constructor Details
#initialize ⇒ SimpleNexpose
Returns a new instance of SimpleNexpose.
42 43 44 45 46 |
# File 'lib/risu/parsers/nexpose/simple_nexpose.rb', line 42 def initialize @vals = Hash.new @report = Report.create end |
Instance Method Details
#on_characters(text) ⇒ Object
Called when the inner text of a element is reached
71 72 73 74 75 76 77 |
# File 'lib/risu/parsers/nexpose/simple_nexpose.rb', line 71 def on_characters(text) if @vals[@tag] == nil then @vals[@tag] = text else @vals[@tag] << text end end |
#on_end_element(element) ⇒ Object
Called when the end of the XML element is reached
82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/risu/parsers/nexpose/simple_nexpose.rb', line 82 def on_end_element(element) @tag = nil case element when "device" @in_device = false when "description" if @in_device && @in_fingerprint @rh.attributes = { VALID_FINGERPRINTS[element] => @vals[element].gsub("\n", ",") } if VALID_FINGERPRINTS.key?(element) @rh.save end when "fingerprint" @in_fingerprint = false end end |
#on_start_element(element, attributes) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/risu/parsers/nexpose/simple_nexpose.rb', line 50 def on_start_element(element, attributes) @tag = element @vals[@tag] = "" puts element case element when "device" @in_device = true @rh = @report.hosts.create @rh.name = attributes["address"] @rh.ip = attributes["address"] @rh.save when "fingerprint" @in_fingerprint = true end end |