lib/nmap/cpe.rb in ruby-nmap-0.8.0 vs lib/nmap/cpe.rb in ruby-nmap-0.9.0

- old
+ new

@@ -1,2 +1,45 @@ require 'nmap/cpe/url' -require 'nmap/cpe/cpe' + +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