module FixtureParts

Constants

VERSION

Public Class Methods

load(parts_yml, valid: true) click to toggle source
# File lib/fixture_parts.rb, line 5
def self.load(parts_yml, valid: true)
  file = Rails.root.join(parts_yml)
  parts_hash = YAML.load(ERB.new(file.read).result)

  model_class = Object.const_get(file.basename(".*").to_s.classify)
  parts_hash.each do |key, values|
    model = model_class.new(values)
    model.id = values["id"] if values["id"].present?

    if !model.save(:validate => valid)
      puts "#{parts_yml}: #{key}"
      puts "#{model.errors.inspect}"
      raise ActiveRecord::RecordInvalid.new(model)
    end
  end
end
load_dir(parts_dir, valid: true) click to toggle source
# File lib/fixture_parts.rb, line 22
def self.load_dir(parts_dir, valid: true)
  Dir.glob(Rails.root.join(parts_dir, "*.yml")).each do |parts_yml|
    load(parts_yml, valid: valid)
  end
end