class Nmap::CPE::URL

Represets a [Common Platform Enumeration (CPE)] URL.

[CPE]: nmap.org/book/output-formats-cpe.html

@since 0.7.0

Constants

PARTS

CPE part codes

Public Class Methods

parse(url) click to toggle source

Parses a CPE URL.

@param [String] url

The raw URL.

@return [URL]

The parsed URL.
# File lib/nmap/cpe/url.rb, line 29
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

Public Instance Methods

to_s() click to toggle source

Converts the CPE URL back into a String.

@return [String]

The raw CPE URL.
# File lib/nmap/cpe/url.rb, line 64
def to_s
  'cpe:' + [
    PARTS.invert[part],
    vendor,
    product,
    version,
    update,
    edition,
    language
  ].compact.join(':')
end