Sha256: 5f8490ec8087b17eba87f22b3f74fc48de79ff723c9b6dc103bf570d9f4800a4

Contents?: true

Size: 1.18 KB

Versions: 8

Compression:

Stored size: 1.18 KB

Contents

require 'metasploit/model/search/operator/deprecated'

# Translates `<name>:<value>` to the union of `platforms.name:<value>` and `targets.name:<value>` in order to support
# the `os` and `platform` operators.
class Metasploit::Model::Search::Operator::Deprecated::Platform < Metasploit::Model::Search::Operator::Group::Union
  #
  # CONSTANTS
  #

  # Formatted operators that should be part of {#children} for this union.
  FORMATTED_OPERATORS = [
      'platforms.fully_qualified_name',
      'targets.name'
  ]

  #
  # Attributes
  #

  # @!attribute [rw] name
  #   Name of this operator
  #
  #   @return [Symbol]
  attr_accessor :name

  #
  # Validations
  #

  validates :name,
            :presence => true

  #
  # Methods
  #

  # Array of `platforms.fully_qualified_name:<formatted_value>` and `targets.name:<formatted_value>` operations.
  #
  # @param formatted_value [String] value parsed from formatted operation.
  # @return [Array<Metasploit::Model::Search::Operation::Base>]
  def children(formatted_value)
    FORMATTED_OPERATORS.collect { |formatted_operator|
      association_operator = operator(formatted_operator)
      association_operator.operate_on(formatted_value)
    }
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
metasploit-model-0.27.3 app/models/metasploit/model/search/operator/deprecated/platform.rb
metasploit-model-0.27.3-java app/models/metasploit/model/search/operator/deprecated/platform.rb
metasploit-model-0.27.2 app/models/metasploit/model/search/operator/deprecated/platform.rb
metasploit-model-0.27.2-java app/models/metasploit/model/search/operator/deprecated/platform.rb
metasploit-model-0.27.1 app/models/metasploit/model/search/operator/deprecated/platform.rb
metasploit-model-0.27.1-java app/models/metasploit/model/search/operator/deprecated/platform.rb
metasploit-model-0.27.0 app/models/metasploit/model/search/operator/deprecated/platform.rb
metasploit-model-0.27.0-java app/models/metasploit/model/search/operator/deprecated/platform.rb