Module: ObjectDaddy::ActiveRecordClassMethods

Defined in:
lib/object_daddy.rb

Instance Method Summary collapse

Instance Method Details

#exemplar_pathObject



210
211
212
213
214
215
216
217
# File 'lib/object_daddy.rb', line 210

def exemplar_path
  ['spec', 'test'].inject([]) do |array, dir|
    if File.directory?(File.join(root_dir, dir))
      array << File.join(root_dir, dir, 'exemplars')
    end
    array
  end
end

#generate(args = {}) ⇒ Object

:call-seq:

generate()
generate() do |obj| ... end
generate(args)
generate(args) do |obj| ... end

Creates and tries to save an instance of this class, using any known generators. The generated instance is yielded to a block if provided.

This will not raise errors on a failed save. Use generate! if you want errors raised.



246
247
248
249
250
251
# File 'lib/object_daddy.rb', line 246

def generate(args = {})
  spawn(args) do |instance|
    instance.save
    yield instance if block_given?
  end
end

#generate!(args = {}) ⇒ Object

:call-seq:

generate()
generate() do |obj| ... end
generate(args)
generate(args) do |obj| ... end

Creates and tries to save! an instance of this class, using any known generators. The generated instance is yielded to a block if provided.

This will raise errors on a failed save. Use generate if you do not want errors raised.



264
265
266
267
268
269
# File 'lib/object_daddy.rb', line 264

def generate!(args = {})
  spawn(args) do |instance|
    instance.save!
    yield instance if block_given?
  end
end

#root_dirObject



202
203
204
205
206
207
208
# File 'lib/object_daddy.rb', line 202

def root_dir
  if defined? Rails
    Rails.root
  else
    ENV['ROOT_DIR'] || ENV['PWD']
  end
end

#validates_presence_of_with_object_daddy(*attr_names) ⇒ Object



219
220
221
222
223
224
225
# File 'lib/object_daddy.rb', line 219

def validates_presence_of_with_object_daddy(*attr_names)
  @presence_validated_attributes ||= {}
  new_attr = attr_names.dup
  new_attr.pop if new_attr.last.is_a?(Hash)
  new_attr.each {|a| @presence_validated_attributes[a] = true }
  validates_presence_of_without_object_daddy(*attr_names)
end

#validates_with_object_daddy(*args) ⇒ Object



227
228
229
230
231
232
233
# File 'lib/object_daddy.rb', line 227

def validates_with_object_daddy(*args)
  if args.last.is_a?(Hash) && args.last[:presence]
    @presence_validated_attributes ||= {}
    @presence_validated_attributes[args.first] = true
  end
  validates_without_object_daddy(*args)
end