Module: Metasploit::Model::Configured

Included in:
Metasploit::Model
Defined in:
lib/metasploit/model/configured.rb

Overview

Allows modules to be configured (using Configuration) similar to Rails engines.

Examples:

Making gem module configurable

module MyGem
  extend Metasploit::Model::Configured

  # assumes __FILE__ is lib/my_gem.rb
  lib_my_gem_pathname = Pathname.new(___FILE__)
  lib_pathname = lib_my_gem_pathname.parent
  configuration.root = lib_pathname.parent

  configuration.autoload.paths << 'app/models'
end

# registers 'app/models' as an autoload_path with ActiveSupport::Dependencies
MyGem.setup

Instance Method Summary collapse

Instance Method Details

#configurationMetasploit::Model::Configuration

The Metasploit::Model::Configuration for this configured Module.



23
24
25
26
27
28
29
30
31
# File 'lib/metasploit/model/configured.rb', line 23

def configuration
  unless instance_variable_defined? :@configuration
    require 'metasploit/model/configuration'

    @configuration = Metasploit::Model::Configuration.new
  end

  @configuration
end

#rootPathname

The configured root.

Returns:

  • (Pathname)

    root of gem



43
44
45
# File 'lib/metasploit/model/configured.rb', line 43

delegate :root,
:setup,
to: :configuration

#setupObject

Sets up the autoload and i18n paths for the configured gem.



43
44
45
# File 'lib/metasploit/model/configured.rb', line 43

delegate :root,
:setup,
to: :configuration