Class: SeedData::DataBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/seed_data/data_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#data_set_dirObject

Returns the value of attribute data_set_dir.



8
9
10
# File 'lib/seed_data/data_builder.rb', line 8

def data_set_dir
  @data_set_dir
end

Instance Method Details

#build(name) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/seed_data/data_builder.rb', line 10

def build(name)

  data = load_data_set_file(name)

  data.each do |itm|
    build_item(itm)
  end

  return true

end

#build_item(itm) ⇒ Object

This method should be overwritten by the specific builder implementation.



23
24
25
# File 'lib/seed_data/data_builder.rb', line 23

def build_item(itm)
  raise 'Not Implemented.'
end

#fill_entity(entity, params) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/seed_data/data_builder.rb', line 41

def fill_entity(entity, params)

  params.keys.each do |key|

    if entity.respond_to?(key.to_sym)
      entity.send("#{key}=", params[key])
    else
      raise SeedData::InvalidDataSetException.new("Invalid Data Set. Unknown entity attribute: #{key}. For entity: #{entity}")
    end

  end

  entity
end

#load_data_set_file(name) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/seed_data/data_builder.rb', line 27

def load_data_set_file(name)

  if @data_set_dir.nil?
    raise SeedData::DataSetDirNotSpecifiedException.new
  end

  begin
    return YAML::load_file(File.join(@data_set_dir, "/data_sets/#{name}.yaml"))
  rescue Errno::ENOENT
    raise SeedData::DataSetNotFoundException.new("DataSet: ''#{name}'', could not be found.")
  end

end