Module: Metasploit::Model::Configuration::Parent
- Included in:
- Metasploit::Model::Configuration
- Defined in:
- lib/metasploit/model/configuration/parent.rb
Overview
DSL for declaring children of Metasploit::Model::Configuration
Instance Method Summary collapse
-
#child(name) ⇒ void
Declares a Child with the given
name.
Instance Method Details
#child(name) ⇒ void
This method returns an undefined value.
Declares a Child with the given name.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/metasploit/model/configuration/parent.rb', line 7 def child(name) child_class_attribute_name = "#{name}_class" child_class_instance_variable_name = "@#{child_class_attribute_name}".to_sym child_instance_variable_name = "@#{name}".to_sym # # Attributes # # @!attribute [rw] <name>_class # The `Class` used to create {#<name>}. # # @return [Class] attr_writer child_class_attribute_name # # Methods # define_method(name) do unless instance_variable_defined? child_instance_variable_name child_instance = send(child_class_attribute_name).new child_instance.configuration = self instance_variable_set child_instance_variable_name, child_instance end instance_variable_get child_instance_variable_name end define_method(child_class_attribute_name) do child_class = instance_variable_get child_class_instance_variable_name unless child_class require "metasploit/model/configuration/#{name}" child_class = "Metasploit::Model::Configuration::#{name.to_s.camelize}".constantize instance_variable_set child_class_instance_variable_name, child_class end child_class end end |