Class: EvilSeed::RecordDumper

Inherits:
Object
  • Object
show all
Defined in:
lib/evil_seed/record_dumper.rb

Overview

  • Runs all transformation objects for every tuple

  • Serializes transformed values back to basic types and writes it to dump

Constant Summary collapse

MAX_TUPLES_PER_INSERT_STMT =
1_000

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model_class, configuration, relation_dumper) ⇒ RecordDumper

Returns a new instance of RecordDumper.



14
15
16
17
18
19
20
21
# File 'lib/evil_seed/record_dumper.rb', line 14

def initialize(model_class, configuration, relation_dumper)
  @model_class     = model_class
  @configuration   = configuration
  @relation_dumper = relation_dumper
  @output          = Tempfile.new(["evil_seed_#{model_class.table_name}_", '.sql'])
  @header_written  = false
  @tuples_written  = 0
end

Instance Attribute Details

#configurationObject (readonly)

Returns the value of attribute configuration.



10
11
12
# File 'lib/evil_seed/record_dumper.rb', line 10

def configuration
  @configuration
end

#model_classObject (readonly)

Returns the value of attribute model_class.



10
11
12
# File 'lib/evil_seed/record_dumper.rb', line 10

def model_class
  @model_class
end

#relation_dumperObject (readonly)

Returns the value of attribute relation_dumper.



10
11
12
# File 'lib/evil_seed/record_dumper.rb', line 10

def relation_dumper
  @relation_dumper
end

Instance Method Details

#call(attributes) ⇒ Boolean

Extracts, transforms, and dumps record attributes

Returns:

  • (Boolean)

    Was this record dumped or not



25
26
27
28
29
# File 'lib/evil_seed/record_dumper.rb', line 25

def call(attributes)
  return false unless loaded!(attributes)
  write!(transform_and_anonymize(attributes))
  true
end

#resultIO

Returns Dump for this model’s table.

Returns:

  • (IO)

    Dump for this model’s table



32
33
34
35
# File 'lib/evil_seed/record_dumper.rb', line 32

def result
  finalize!
  @output
end