module Shoegaze::Datastore
Public Instance Methods
datastore(name, &block)
click to toggle source
Defines both a TopModel-inherited class and a factory in the mock namespace
@param name [Symbol] upcased name of the datastore to create (example: :User) @param block [Block] FactoryBot factory implementation expressed in a block @return [Class] the created datastore class
example:
datastore :User do id 123 name "Karlita" end
# File lib/shoegaze/datastore.rb, line 18 def datastore(name, &block) klass = create_datastore_class(name) FactoryBot.define do factory klass do self.instance_eval(&block) end end klass end
Private Instance Methods
create_datastore_class(name)
click to toggle source
# File lib/shoegaze/datastore.rb, line 32 def create_datastore_class(name) self.const_set(name, Class.new(Shoegaze::Model)) end