Class: HDataLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/hdb/hdataloader.rb

Instance Method Summary collapse

Constructor Details

#initialize(filename, connectionName = "default") ⇒ HDataLoader

Returns a new instance of HDataLoader.



7
8
9
10
# File 'lib/hdb/hdataloader.rb', line 7

def initialize(filename, connectionName = "default")
  @filename = filename
  @connectionName = connectionName
end

Instance Method Details

#addRecord(record, i) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/hdb/hdataloader.rb', line 45

def addRecord(record, i)
  @file = File.new(@filename, "a+")
  @file << "  record_#{i}:\n"
  record.each do |fieldName, fieldValue|
    fieldValue = fieldValue.gsub('$', i.to_s)
    @file << "    #{fieldName}: '#{fieldValue}'\n"
  end
  @file.close if(@file)
end

#example(count = 10) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/hdb/hdataloader.rb', line 56

def example(count = 10)

  record = {id: '#default', name: 'name-$', name_d: 'name_d_$',  d: 'd_$'}
  self.recordGenerator("d_tables", record, 1, count, true)
  record = {id: '#default', name: 'name-$', name_a: 'name_a_$',  a: 'a_$'}
  self.recordGenerator("a_tables", record, 1, count)
  record = {id: '#default', name: 'name-$', name_b: 'name_b-$', b: 'b-$', d_tables_id: '#$ % 5 + 1', a_tables_id: '$'}
  self.recordGenerator("b_tables", record, 1, count)
  record = {id: '#default', name: 'name-$', name_c: 'name_c-$', c: 'c-$', b_tables_id: '$'}
  self.recordGenerator("c_tables", record, 1, count)
  self.recordGenerator("name_table", {name: 'name-$'}, 1, count)
  self.recordGenerator("surname_table", {surname: 'surname-$'}, 1, count)
  self.recordGenerator("name_table_surname_table_join", {name_table_id: '#$', surname_table_id: '#$'}, 1, count)
  self.addRecord({name_table_id: '#1', surname_table_id: '#2'}, 10)
  self.addRecord({name_table_id: '#1', surname_table_id: '#3'}, 11)
  self.load
end

#loadObject



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/hdb/hdataloader.rb', line 13

def load
  
  return unless File.file?(@filename)
  @data = YAML.load_file(@filename)
  oodb = HODB.new(connectionName: @connectionName)
  @data.each do |modelName, record|
    model = oodb.newHODB(modelName)
    record.each do |recordName, recordValue|
      model.create(recordValue)
    end
    model.writeAll
  end
end

#recordGenerator(tableName, record, min, max, overwrite = false) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/hdb/hdataloader.rb', line 28

def recordGenerator(tableName, record, min, max, overwrite = false)

  @file = overwrite ? File.new(@filename, "w+") : File.new(@filename, "a+")

  @file << "#{tableName}:\n"
  for i in min...max
    @file << "  record_#{i}:\n"
    record.each do |fieldName, fieldValue|
      fieldValue = fieldValue.gsub('$', i.to_s)
      @file << "    #{fieldName}: '#{fieldValue}'\n"
    end
  end

  @file.close if(@file)

end