Module: FixtureParts

Defined in:
lib/fixture_parts.rb,
lib/fixture_parts/railtie.rb,
lib/fixture_parts/version.rb

Defined Under Namespace

Classes: Railtie

Constant Summary collapse

VERSION =
'0.1.0'

Class Method Summary collapse

Class Method Details

.load(parts_yml, valid: true) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 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) ⇒ Object



22
23
24
25
26
# 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