module Roger::Helpers::Registration

Helper module to handle registration

Public Instance Methods

map() click to toggle source
# File lib/roger/helpers/registration.rb, line 28
def map
  @_map ||= {}
end
register(name, processor = nil) click to toggle source

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.

# 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