Module: FactoryManager

Defined in:
lib/factory_manager.rb,
lib/factory_manager/generator.rb

Overview

A factory manager of factory bots.

Defined Under Namespace

Classes: Generator

Class Method Summary collapse

Class Method Details

.build(name = nil) { ... } ⇒ Object

Initializes and builds a new build generator.

Parameters:

  • name (String|Symbol) (defaults to: nil)

    The name of the manager to build.

Yields:

  • Invokes the block to build the generator.



11
12
13
14
15
16
17
# File 'lib/factory_manager.rb', line 11

def self.build(name = nil, &block)
  block ||= managers[name]

  Generator
    .new(strategy: :build)
    .generate(&block)
end

.create(name = nil) { ... } ⇒ Object

Initializes and creates a new create generator.

Parameters:

  • name (String|Symbol) (defaults to: nil)

    The name of the manager to create.

Yields:

  • Invokes the block to create the generator.



23
24
25
26
27
28
29
# File 'lib/factory_manager.rb', line 23

def self.create(name = nil, &block)
  block ||= managers[name]

  Generator
    .new(strategy: :create)
    .generate(&block)
end

.managersHash

Returns the registered managers.

Returns:

  • (Hash)

    The registered managers.



34
35
36
# File 'lib/factory_manager.rb', line 34

def self.managers
  @managers ||= {}
end

.register(name, &block) ⇒ Object

Register a manager to reuse later.

Parameters:

  • name (String|Symbol)

    The name of the manager being registered.



41
42
43
44
45
46
47
# File 'lib/factory_manager.rb', line 41

def self.register(name, &block)
  if managers.key?(name)
    raise ArgumentError.new(%("#{name}" manager is already registered.))
  end

  managers[name] = block
end