Module: Modelizer::Helpers

Included in:
Modelizer, FactoryContext
Defined in:
lib/modelizer.rb

Instance Method Summary collapse

Instance Method Details

#build(name, overrides = nil, &block) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/modelizer.rb', line 8

def build name, overrides = nil, &block
  model, *initializers = Modelizer.factories[name]
  raise "Can't find the \"#{name}\" factory." unless model

  obj = model.new
  ctx = FactoryContext.new overrides || {}

  initializers << block if block_given?

  initializers.each { |i| ctx.instance_exec obj, &i }
  overrides.each    { |k, v| obj.send "#{k}=", v } if overrides
  
  obj
end

#create(name, overrides = nil, &block) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/modelizer.rb', line 23

def create name, overrides = nil, &block
  obj = build name, overrides, &block

  obj.save!

  obj
end

#use(name) ⇒ Object



31
32
33
34
35
36
# File 'lib/modelizer.rb', line 31

def use name
  model, id = Modelizer.ids[name]
  raise "Can't find the \"#{name}\" fixture." unless model

  model.find id
end