Sha256: d6b02f7bd82b50ffac07796ec2a189f034480f30175d9426f374b75181880a40

Contents?: true

Size: 734 Bytes

Versions: 3

Compression:

Stored size: 734 Bytes

Contents

# Gathers all the association names to pass to `ActiveRecord::Relation#includes` from a
# `Metasploit::Model::Search::Query`
class MetasploitDataModels::Search::Visitor::Includes
  include Metasploit::Model::Visitation::Visit

  #
  # Visitors
  #

  visit 'Metasploit::Model::Search::Group::Base',
        'Metasploit::Model::Search::Operation::Union' do |parent|
    parent.children.flat_map { |child|
      visit child
    }
	end

  visit 'Metasploit::Model::Search::Operation::Base' do |operation|
    visit operation.operator
  end

  visit 'Metasploit::Model::Search::Operator::Association' do |operator|
    [operator.association]
  end

  visit 'Metasploit::Model::Search::Operator::Attribute' do |_operator|
    []
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
metasploit_data_models-0.17.2-java app/models/metasploit_data_models/search/visitor/includes.rb
metasploit_data_models-0.17.2 app/models/metasploit_data_models/search/visitor/includes.rb
metasploit_data_models-0.17.2.pre.metasploit.pre.data.pre.models.pre.search app/models/metasploit_data_models/search/visitor/includes.rb