class HDataLoader

Public Class Methods

new(filename, connectionName = "default") click to toggle source
# File lib/hdb/hdataloader.rb, line 7
def initialize(filename, connectionName = "default")
  @filename = filename
  @connectionName = connectionName
end

Public Instance Methods

addRecord(record, i) click to toggle source
# 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) click to toggle source
# 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
load() click to toggle source
# 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) click to toggle source
# 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