module TestProf::FactoryDefault
FactoryDefault
allows use to re-use associated objects in factories implicilty
Attributes
preserve_traits[RW]
store[R]
Public Class Methods
get(name, traits = nil)
click to toggle source
# File lib/test_prof/factory_default.rb, line 45 def get(name, traits = nil) record = store[name] return unless record if traits && !traits.empty? return if FactoryDefault.preserve_traits || record[:preserve_traits] end record[:object] end
init()
click to toggle source
# File lib/test_prof/factory_default.rb, line 27 def init TestProf::FactoryBot::Syntax::Methods.include DefaultSyntax TestProf::FactoryBot.extend DefaultSyntax TestProf::FactoryBot::Strategy::Create.prepend StrategyExt TestProf::FactoryBot::Strategy::Build.prepend StrategyExt TestProf::FactoryBot::Strategy::Stub.prepend StrategyExt @store = {} # default is false to retain backward compatibility @preserve_traits = false end
register(name, obj, **options)
click to toggle source
# File lib/test_prof/factory_default.rb, line 39 def register(name, obj, **options) options[:preserve_traits] = true if FactoryDefault.preserve_traits store[name] = {object: obj, **options} obj end
remove(name)
click to toggle source
# File lib/test_prof/factory_default.rb, line 55 def remove(name) store.delete(name) end
reset()
click to toggle source
# File lib/test_prof/factory_default.rb, line 59 def reset @store.clear end