Module: Crystalball::MapGenerator::FactoryBotStrategy::DSLPatch
- Defined in:
- lib/crystalball/map_generator/factory_bot_strategy/dsl_patch.rb,
lib/crystalball/map_generator/factory_bot_strategy/dsl_patch/factory_path_fetcher.rb
Overview
Module to add new ‘factory` method to FactoryBot::Syntax::Default::DSL and FactoryBot::Syntax::Default::ModifyDSL
Defined Under Namespace
Modules: FactoryPathFetcher
Class Method Summary collapse
-
.apply! ⇒ Object
Patches ‘FactoryBot::Syntax::Default::DSL#factory` and `FactoryBot::Syntax::Default::ModifyDSL#factory`.
Instance Method Summary collapse
-
#factory(*args, &block) ⇒ Object
Overrides ‘FactoryBot::Syntax::Default::DSL#factory` and `FactoryBot::Syntax::Default::ModifyDSL#factory`.
Class Method Details
.apply! ⇒ Object
Patches ‘FactoryBot::Syntax::Default::DSL#factory` and `FactoryBot::Syntax::Default::ModifyDSL#factory`.
12 13 14 |
# File 'lib/crystalball/map_generator/factory_bot_strategy/dsl_patch.rb', line 12 def apply! classes_to_patch.each { |klass| klass.prepend DSLPatch } end |
Instance Method Details
#factory(*args, &block) ⇒ Object
Overrides ‘FactoryBot::Syntax::Default::DSL#factory` and `FactoryBot::Syntax::Default::ModifyDSL#factory`. Pushes path of a factory to `FactoryBotStrategy.factory_definitions` and calls original `factory`
28 29 30 31 32 33 34 35 36 |
# File 'lib/crystalball/map_generator/factory_bot_strategy/dsl_patch.rb', line 28 def factory(*args, &block) factory_path = FactoryPathFetcher.fetch name = args.first.to_s FactoryBotStrategy.factory_definitions[name] ||= [] FactoryBotStrategy.factory_definitions[name] << factory_path super end |