module FactoryGuy::Constructable
Public Class Methods
extended(mod)
click to toggle source
Need to define default_attributes def default_attributes ; end
# File lib/factory_guy/constructable.rb, line 12 def self.extended(mod) mod.class_eval do cattr_accessor :resource resource_name = mod.to_s.split(/Factory/)[0] self.resource = const_get(resource_name) end end
Public Instance Methods
attributes()
click to toggle source
# File lib/factory_guy/constructable.rb, line 21 def attributes begin default_attributes rescue NameError raise(ImplementationError, "Your factory must implement class-level `#{self}.default_attributes`.") end end
build()
click to toggle source
# File lib/factory_guy/constructable.rb, line 29 def build resource.new(attributes) end
create()
click to toggle source
# File lib/factory_guy/constructable.rb, line 33 def create build.tap(&:save) end
create!()
click to toggle source
# File lib/factory_guy/constructable.rb, line 37 def create! build.tap(&:save!) end