module MetasploitDataModels::Match::Parent::ClassMethods
@example Declaring children classes
class FirstChild < Metasploit::Model::Base extend MetasploitDataModels::Match::Child # # CONSTANTS # # Matches a range. MATCH_REGEXP = /\A\d+-\d+\z/ # # Attributes # # @!attribute value # The range # attr_accessor :value end class SecondChild < Metasploit::Model::Base extend MetasploitDataModels::Match::Child # # CONSTANTS # # Matches a range. MATCH_REGEXP = /\A\d+\z/ # # Attributes # # @!attribute value # The range # attr_accessor :value end class Parent include MetasploitDataModels::Match::Parent match_children_named %w{FirstChild SecondChild} end
Public Instance Methods
match_child_names()
click to toggle source
`Class#name` for classes that extend {MetasploitDataModels::Match::Child} and should be tested using `match`.
@return [Array<String>]
# File lib/metasploit_data_models/match/parent.rb, line 62 def match_child_names @match_child_names ||= [] end
match_children()
click to toggle source
`Class`es on which to call `match` in {MetasploitDataModels::Match::Parent#match_child}
@return [Array<String>]
# File lib/metasploit_data_models/match/parent.rb, line 69 def match_children @match_children ||= match_child_names.map(&:constantize) end
match_children_named(class_names)
click to toggle source
@note `Class`es named `class_names` Register the given `class_names` as `Class#name`s for children classes for {MetasploitDataModels::Match::Parent#match_child}.
@return [Array<String>] class_names`
# File lib/metasploit_data_models/match/parent.rb, line 78 def match_children_named(class_names) @match_child_names = class_names end