module Riveter::AssociatedTypeRegistry::ClassMethods

Public Instance Methods

key_for(type) click to toggle source
# File lib/riveter/associated_type_registry.rb, line 19
def key_for(type)
  type.is_a?(Symbol) ? type : type.name.underscore.to_sym
end
register_type(type, associated_type, options={}) click to toggle source
# File lib/riveter/associated_type_registry.rb, line 23
def register_type(type, associated_type, options={})
  options = {
    :key => key_for(associated_type)
  }.merge(options)

  # prevent duplicate registrations
  type_list = container.registry[options[:key]]
  type_list << type unless type_list.include?(type)
end
resolve(type) click to toggle source
# File lib/riveter/associated_type_registry.rb, line 39
def resolve(type)
  self.resolve_all(type).first
end
resolve!(type) click to toggle source
# File lib/riveter/associated_type_registry.rb, line 33
def resolve!(type)
  registered = self.resolve(type)
  raise UnregisteredTypeError.new(type) unless registered
  registered
end
resolve_all(type) click to toggle source
# File lib/riveter/associated_type_registry.rb, line 43
def resolve_all(type)
  container.registry[key_for(type)] || []
end