class Arachni::State::Plugins

@author Tasos “Zapotek” Laskos <tasos.laskos@arachni-scanner.com>

Attributes

runtime[R]

@return [Hash]

Runtime plugin data.

Public Class Methods

load( directory ) click to toggle source
# File lib/arachni/state/plugins.rb, line 75
def self.load( directory )
    plugins = new

    %w(runtime).each do |type|
        Dir["#{directory}/#{type}/*"].each do |plugin_directory|
            plugin = File.basename( plugin_directory ).to_sym
            plugins.send(type)[plugin] = Marshal.load( IO.binread( plugin_directory ) )
        end
    end

    plugins
end
new() click to toggle source
# File lib/arachni/state/plugins.rb, line 19
def initialize
    @runtime = {}
end

Public Instance Methods

[]( plugin ) click to toggle source

@param [String,Symbol] plugin

Plugin {Component::Base.shortname}.

@return [Object]

# File lib/arachni/state/plugins.rb, line 44
def []( plugin )
    @runtime[plugin.to_sym]
end
[]=( plugin, state )
Alias for: store
clear() click to toggle source
# File lib/arachni/state/plugins.rb, line 88
def clear
    @runtime.clear
end
delete( plugin ) click to toggle source

@param [String,Symbol] plugin

Plugin {Component::Base.shortname}.

@return [Object]

# File lib/arachni/state/plugins.rb, line 52
def delete( plugin )
    @runtime.delete( plugin.to_sym )
end
dump( directory ) click to toggle source
# File lib/arachni/state/plugins.rb, line 64
def dump( directory )
    %w(runtime).each do |type|
        send(type).each do |plugin, data|
            result_directory = "#{directory}/#{type}/"
            FileUtils.mkdir_p( result_directory )

            IO.binwrite( "#{result_directory}/#{plugin}", Marshal.dump( data ) )
        end
    end
end
include?( plugin ) click to toggle source

@param [String,Symbol] plugin

Plugin {Component::Base.shortname}.

@return [Bool]

# File lib/arachni/state/plugins.rb, line 60
def include?( plugin )
    @runtime.include?( plugin.to_sym )
end
statistics() click to toggle source
# File lib/arachni/state/plugins.rb, line 23
def statistics
    {
        names: @runtime.keys
    }
end
store( plugin, state ) click to toggle source

Registers plugin states.

@param [String,Symbol] plugin

Plugin {Component::Base.shortname}.

@param [Object] state

# File lib/arachni/state/plugins.rb, line 35
def store( plugin, state )
    @runtime[plugin.to_sym] = state
end
Also aliased as: []=