Module: Roger::Helpers::Registration

Included in:
Release::Finalizers, Release::Processors
Defined in:
lib/roger/helpers/registration.rb

Overview

Helper module to handle registration

Instance Method Summary collapse

Instance Method Details

#mapObject



28
29
30
# File 'lib/roger/helpers/registration.rb', line 28

def map
  @_map ||= {}
end

#register(name, processor = nil) ⇒ Object

Register a class with a name. The method can have the following signatures:

def register(processor)

and for legacy reasons:

def register(name, processor)

in the first case the processor must have a name class method.

Raises:

  • (ArgumentError)


14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/roger/helpers/registration.rb', line 14

def register(name, processor = nil)
  if name.is_a?(Class)
    processor = name
    name = processor.name
  end

  type = to_s.split("::").last

  raise ArgumentError, "#{type} name '#{name.inspect}' already in use" if map.key?(name)
  raise ArgumentError, "Name must be a symbol" unless name.is_a?(Symbol)

  map[name] = processor
end