class MetasploitDataModels::Search::Visitor::Where

Generates AREL to pass to `ActiveRecord::Relation#where` from a `Metasploit::Model::Search::Query`.

Constants

EQUALITY_OPERATION_CLASS_NAMES

`Metasploit::Model::Search::Operation::Base` subclasses that check their value with the equality operator in AREL

Public Instance Methods

attribute_visitor() click to toggle source

Visitor for `Metasploit::Model::Search::Operator::Base` subclasses to generate `Arel::Attributes::Attribute`.

@return [MetasploitDataModels::Search::Visitor::Attribute]

# File app/models/metasploit_data_models/search/visitor/where.rb, line 104
def attribute_visitor
  @attribute_visitor ||= MetasploitDataModels::Search::Visitor::Attribute.new
end
method_visitor() click to toggle source

Visitor for `Metasploit::Model::Search::Group::Base` subclasses to generate equivalent AREL node methods.

@return [MetasploitDataModels::Search::Visitor::Method]

# File app/models/metasploit_data_models/search/visitor/where.rb, line 111
def method_visitor
  @method_visitor ||= MetasploitDataModels::Search::Visitor::Method.new
end

Private Instance Methods

cast_to_inet(string) click to toggle source

Casts a literal string to INET in AREL.

@return [Arel::Nodes::NamedFunction]

# File app/models/metasploit_data_models/search/visitor/where.rb, line 120
def cast_to_inet(string)
  cast_argument = Arel::Nodes::As.new(Arel::Nodes.build_quoted(string), Arel::Nodes::SqlLiteral.new('INET'))
  Arel::Nodes::NamedFunction.new('CAST', [cast_argument])
end