Class: SeedData::DataBuilder
- Inherits:
-
Object
- Object
- SeedData::DataBuilder
- Defined in:
- lib/seed_data/data_builder.rb
Instance Attribute Summary collapse
-
#data_set_dir ⇒ Object
Returns the value of attribute data_set_dir.
Instance Method Summary collapse
- #build(name) ⇒ Object
-
#build_item(itm) ⇒ Object
This method should be overwritten by the specific builder implementation.
- #fill_entity(entity, params) ⇒ Object
- #load_data_set_file(name) ⇒ Object
Instance Attribute Details
#data_set_dir ⇒ Object
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 |