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