Class: Arachni::Report::Manager

Inherits:
Component::Manager show all
Extended by:
Utilities
Includes:
Utilities
Defined in:
lib/arachni/report/manager.rb

Overview

Arachni::Report::Manager class

Holds and manages the registry of the reports.

Author:

Constant Summary collapse

NAMESPACE =
Arachni::Reports

Constants inherited from Component::Manager

Component::Manager::EXCLUDE, Component::Manager::WILDCARD

Instance Attribute Summary

Attributes inherited from Component::Manager

#lib, #namespace

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Utilities

available_port, cookie_encode, cookies_from_document, cookies_from_file, cookies_from_response, exception_jail, exclude_path?, extract_domain, follow_protocol?, form_decode, form_encode, form_parse_request_body, forms_from_document, forms_from_response, generate_token, get_path, html_decode, html_encode, include_path?, links_from_document, links_from_response, normalize_url, page_from_response, page_from_url, parse_query, parse_set_cookie, parse_url_vars, path_in_domain?, path_too_deep?, port_available?, rand_port, redundant_path?, remove_constants, seed, skip_page?, skip_path?, skip_resource?, to_absolute, uri_decode, uri_encode, uri_parse, uri_parser, url_sanitize

Methods inherited from Component::Manager

#[], #available, #clear, #delete, #include?, #load, #load_all, #load_by_tags, #loaded, #name_to_path, #parse, #path_to_name, #prep_opts

Methods included from UI::Output

#debug?, #debug_off, #debug_on, #disable_only_positives, #error_logfile, #flush_buffer, #log_error, #mute, #muted?, old_reset_output_options, #only_positives, #only_positives?, #print_bad, #print_debug, #print_debug_backtrace, #print_debug_pp, #print_error, #print_error_backtrace, #print_info, #print_line, #print_ok, #print_status, #print_verbose, #reroute_to_file, #reroute_to_file?, reset_output_options, #set_buffer_cap, #set_error_logfile, #uncap_buffer, #unmute, #verbose, #verbose?

Methods inherited from Hash

#downcase, #find_symbol_keys_recursively, #recode, #stringify_keys, #symbolize_keys

Constructor Details

#initialize(opts) ⇒ Manager

Returns a new instance of Manager.



40
41
42
43
# File 'lib/arachni/report/manager.rb', line 40

def initialize( opts )
    super( opts.dir['reports'], NAMESPACE )
    @opts = opts
end

Class Method Details

.resetObject



72
73
74
# File 'lib/arachni/report/manager.rb', line 72

def self.reset
    remove_constants( NAMESPACE )
end

Instance Method Details

#resetObject



75
76
77
# File 'lib/arachni/report/manager.rb', line 75

def reset
    self.class.reset
end

#run(audit_store, run_afr = true) ⇒ Object

Takes care of report execution

Parameters:

See Also:



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/arachni/report/manager.rb', line 52

def run( audit_store, run_afr = true )
    if run_afr
        # run the default report first
        run_one( 'afr', audit_store.deep_clone )
        delete( 'afr' )
    end

    loaded.each do |name|
        exception_jail( false ){ run_one( name, audit_store.deep_clone ) }
    end
end

#run_one(name, audit_store, opts = {}) ⇒ Object



64
65
66
67
68
69
70
# File 'lib/arachni/report/manager.rb', line 64

def run_one( name, audit_store, opts = {} )
    report = self[name].new( audit_store.deep_clone,
        prep_opts( name, self[name], opts.empty? ? @opts.reports[name] : opts ) )

    report.run
    report
end