Sha256: e96a11b357c43591522ea2a5e2b93ef5961ddea0180cb6d0df6432f5ee41e377
Contents?: true
Size: 1.65 KB
Versions: 3
Compression:
Stored size: 1.65 KB
Contents
module Nmap class XML module CPE # # Represents a [Common Platform Enumeration (CPE)][CPE] URL. # # [CPE]: http://nmap.org/book/output-formats-cpe.html # # @since 1.0.0 # class URL < Struct.new(:part,:vendor,:product,:version,:update,:edition, :language) # CPE part codes PARTS = { '/a' => :application, '/h' => :hardware, '/o' => :os } # # Parses a CPE URL. # # @param [String] url # The raw URL. # # @return [URL] # The parsed URL. # def self.parse(url) scheme, part, vendor, product, version, update, edition, language = url.split(':',8) unless scheme == 'cpe' raise(ArgumentError,"CPE URLs must begin with 'cpe:'") end vendor = vendor.to_sym product = product.to_sym language = language.to_sym if language return new( PARTS[part], vendor, product, version, update, edition, language ) end # # Converts the CPE URL back into a String. # # @return [String] # The raw CPE URL. # def to_s 'cpe:' + [ PARTS.invert[part], vendor, product, version, update, edition, language ].compact.join(':') end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ruby-nmap-1.0.2 | lib/nmap/xml/cpe/url.rb |
ruby-nmap-1.0.1 | lib/nmap/xml/cpe/url.rb |
ruby-nmap-1.0.0 | lib/nmap/xml/cpe/url.rb |