Class: Polo::Translator

Inherits:
Object
  • Object
show all
Defined in:
lib/polo/translator.rb

Instance Method Summary collapse

Constructor Details

#initialize(selects, configuration = Configuration.new) ⇒ Translator

Public: Creates a new Polo::Collector

selects - An array of SELECT queries



11
12
13
14
# File 'lib/polo/translator.rb', line 11

def initialize(selects, configuration=Configuration.new)
  @selects = selects
  @configuration = configuration
end

Instance Method Details

#instancesObject



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/polo/translator.rb', line 22

def instances
  active_record_instances = @selects.flat_map do |select|
    select[:klass].find_by_sql(select[:sql]).to_a
  end

  if fields = @configuration.blacklist
    obfuscate!(active_record_instances, fields)
  end

  active_record_instances
end

#translateObject

Public: Translates SELECT queries into INSERTS.



18
19
20
# File 'lib/polo/translator.rb', line 18

def translate
  SqlTranslator.new(instances, @configuration).to_sql.uniq
end