Module: InitialTestData::Utilities

Defined in:
lib/initial-test-data/utilities.rb

Instance Method Summary collapse

Instance Method Details

#fetch(model_name, name) ⇒ Object



23
24
25
26
27
28
29
30
31
# File 'lib/initial-test-data/utilities.rb', line 23

def fetch(model_name, name)
  if RECORD_IDS[model_name].kind_of?(Hash) &&
     RECORD_IDS[model_name][name]
     klass = model_name.to_s.camelize.constantize
     klass.find RECORD_IDS[model_name][name]
  else
    raise "No record is registered with the key '#{model_name}' and '#{name}'."
  end
end

#store(record, name, options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/initial-test-data/utilities.rb', line 5

def store(record, name, options = {})
  model_name = options[:as] || record.class.model_name.singular
  record_name = name.to_s

  RECORD_IDS[model_name] ||= HashWithIndifferentAccess.new

  if RECORD_IDS[model_name].has_key?(record_name)
    raise "The key '#{record_name}' already exists " +
      "for #{record.class.model_name.name}."
  elsif !record.kind_of?(ActiveRecord::Base)
    raise "Given object is not an instance of ActiveRecord::Base."
  elsif record.new_record?
    raise "Given record is not persisted yet."
  else
    RECORD_IDS[model_name][record_name] = record.id
  end
end