Sha256: d29a27c0aa2bef7e1a40e223d672507adab70703553da3caa699f452a940534b
Contents?: true
Size: 1.62 KB
Versions: 3
Compression:
Stored size: 1.62 KB
Contents
module CMSScanner module Finders # Unique Finders container # # This class is designed to return a unique result such as a version # Note: Finders contained can return multiple results but the #run will only # returned the best finding class UniqueFinders < IndependentFinders # @param [ Hash ] opts # @option opts [ Symbol ] :mode :mixed, :passive or :aggressive # @option opts [ Int ] :confidence_threshold If a finding's confidence reaches this value, # it will be returned as the best finding. # Default is 100. # If <= 0, all finders will be ran. # # @return [ Object, false ] The best finding or false if none def run(opts = {}) opts[:confidence_threshold] ||= 100 symbols_from_mode(opts[:mode]).each do |symbol| each do |finder| run_finder(finder, symbol, opts) next if opts[:confidence_threshold] <= 0 findings.each { |f| return f if f.confidence >= opts[:confidence_threshold] } end end filter_findings end protected # @return [ Object, false ] The best finding or false if none def filter_findings # results are sorted by confidence ASC findings.sort_by!(&:confidence) # If all findings have the same confidence, false is returned return false if findings.size > 1 && findings.first.confidence == findings.last.confidence findings.last || false end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
cms_scanner-0.0.35.1 | lib/cms_scanner/finders/unique_finders.rb |
cms_scanner-0.0.35 | lib/cms_scanner/finders/unique_finders.rb |
cms_scanner-0.0.34 | lib/cms_scanner/finders/unique_finders.rb |