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

Instance Method Summary collapse

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