Class: Services::SQLSeedReader

Inherits:
SeedReader
  • Object
show all
Defined in:
lib/i2x/sqlseedreader.rb

Overview

SQLSeedReader

Load content from SQL seed.

Instance Method Summary collapse

Instance Method Details

#readObject

Read

> Load the seed data into the @objects array for processing.



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
# File 'lib/i2x/sqlseedreader.rb', line 15

def read
  begin
    @client = Mysql2::Client.new(:host => @seed[:payload][:host], :username => @seed[:payload][:username] , :password => @seed[:payload][:password] , :database => @seed[:payload][:database])
    @client.query(@seed[:payload][:query], :cast => false).each(:symbolize_keys => false) do |row|          
      begin
      	object = @help.deep_copy @agent[:payload]
        object.each_pair do |key,value|
          variables = @help.identify_variables(object[key])
          variables.each do |v|
            object[key].gsub!("%{#{v}}", row[@seed[:payload][:selectors][v]].to_str)
          end
        end
   
        unless @seed[:payload][:cache].nil? then
          object[:seed] = row[@seed[:payload][:cache]]
        else
          object[:seed] = row["id"]
        end
        object[:identifier] = @agent.identifier
        @objects.push object
      rescue Exception => e

      end
    end
  rescue Exception => e
    
  end
  
  @objects
end