Class: RomFactory::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/rom_factory/builder.rb

Class Method Summary collapse

Class Method Details

.containerObject



5
6
7
# File 'lib/rom_factory/builder.rb', line 5

def self.container
  @container
end

.create(name, attrs = {}) ⇒ Object

Raises:

  • (ArgumentError)


15
16
17
18
19
# File 'lib/rom_factory/builder.rb', line 15

def self.create(name, attrs = {})
  raise ArgumentError, "Factory #{name} does not exist" unless container.key?(name)
  factory = container.resolve(name)
  factory.create(attrs)
end

.define(&block) ⇒ Object

Raises:

  • (ArgumentError)


9
10
11
12
13
# File 'lib/rom_factory/builder.rb', line 9

def self.define(&block)
  factory = Factory.new(&block)
  raise ArgumentError, "Factory with key #{factory._name} already present" if container.key?(factory._name)
  container.register(factory._name, factory)
end