class CVE::Parser
Attributes
filters[R]
Public Class Methods
new(filters=nil)
click to toggle source
# File lib/cve_crawler/cve_parser.rb, line 7 def initialize(filters=nil) @filters = [] @filters << CVE::Filter.new if filters.is_a?(Array) filters.each do |filter| @filters << filter end elsif filters @filters << filters end end
Public Instance Methods
extract_cve_identifier(title)
click to toggle source
# File lib/cve_crawler/cve_parser.rb, line 58 def extract_cve_identifier(title) title.split(' ')[0] end
filter(results)
click to toggle source
# File lib/cve_crawler/cve_parser.rb, line 62 def filter(results) filtered_contents = [] results.each do |result| result_ok = true @filters.each do |filter| result_ok = result_ok && !filter.filter(result) end filtered_contents << result if result_ok end filtered_contents end
inspect()
click to toggle source
# File lib/cve_crawler/cve_parser.rb, line 78 def inspect "<CVE::Parser filters=#{@filters.inspect}>" end
parse(content)
click to toggle source
# File lib/cve_crawler/cve_parser.rb, line 22 def parse(content) results = parse_rss_feed(content) filter(results) end
parse_item(item)
click to toggle source
# File lib/cve_crawler/cve_parser.rb, line 48 def parse_item(item) CVE::Vulnerability.new({ :identifier => extract_cve_identifier(item.title), :title => item.title, :link => item.link, :description => item.description, :date => item.date }) end
parse_items(rss)
click to toggle source
# File lib/cve_crawler/cve_parser.rb, line 34 def parse_items(rss) items = [] if rss.nil? raise 'RSS object failed to parse, is it valid XML?' end rss.items.each do |item| items << parse_item(item) end items end
parse_rss_feed(content)
click to toggle source
# File lib/cve_crawler/cve_parser.rb, line 28 def parse_rss_feed(content) rss = RSS::Parser.parse(content) parse_items(rss) end