Sha256: 005927dbd3b1fd5f5f82abbd9e91f0260e6230af08ea5345225caf6c2130d065

Contents?: true

Size: 907 Bytes

Versions: 2

Compression:

Stored size: 907 Bytes

Contents

require 'nmap/cpe/url'

module Nmap
  #
  # Mixins that adds methods for parsing [Common Platform Enumeration
  # (CPE)][CPE] information.
  #
  # [CPE]: http://nmap.org/book/output-formats-cpe.html
  #
  # @since 0.7.0
  #
  module CPE
    #
    # Parses each Common Platform Enumeration (CPE) String.
    #
    # @yield [cpe]
    #   Passes each CPE URL to the given block.
    #
    # @yieldparam [URL] cpe
    #   The CPE URL.
    #
    # @return [Enumerator]
    #   If no block is given, an enumerator object will be returned.
    #
    def each_cpe
      return enum_for(__method__) unless block_given?

      @node.xpath('//cpe').each do |cpe|
        yield URL.parse(cpe.inner_text)
      end

      return self
    end

    #
    # Parses each Common Platform Enumeration (CPE) String.
    #
    # @return [Array<URL>]
    #   The CPE URLs.
    #
    def cpe
      each_cpe.to_a
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-nmap-0.8.0 lib/nmap/cpe/cpe.rb
ruby-nmap-0.7.0 lib/nmap/cpe/cpe.rb