Module: FactoryCustomizer
- Included in:
- FactoryBoy::Factory
- Defined in:
- lib/factory_boy/factory_customizer.rb
Instance Method Summary collapse
- #factory_girl(name, options = {}, &block) ⇒ Object
- #register_callback(execution_precedence, *on_calls, &block) ⇒ Object
- #set_method(name, options = {}, &method_return_block) ⇒ Object
Instance Method Details
#factory_girl(name, options = {}, &block) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/factory_boy/factory_customizer.rb', line 14 def factory_girl(name, = {}, &block) build_or_create = ![:create] factory_name = [:factory] || name factory_call = Proc.new { build_or_create ? FactoryGirl.build(factory_name) : FactoryGirl.create(factory_name) } set_method(name, {}, &(block || factory_call)) end |
#register_callback(execution_precedence, *on_calls, &block) ⇒ Object
23 24 25 26 27 |
# File 'lib/factory_boy/factory_customizer.rb', line 23 def register_callback(execution_precedence, *on_calls, &block) on_calls.each do |on_call| FactoryBoy.register_callback(self.factory_name, execution_precedence, on_call, &block) end end |
#set_method(name, options = {}, &method_return_block) ⇒ Object
4 5 6 7 8 9 10 11 12 |
# File 'lib/factory_boy/factory_customizer.rb', line 4 def set_method(name, = {}, &method_return_block) method_return_block ||= Proc.new { [:return] } proc = Proc.new { |name, method_return| self.define_singleton_method(name) do method_return.call end } self.instance_exec(name, method_return_block, &proc) end |