Class: HttpApiTools::SerializerRegistry

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/http_api_tools/serializer_registry.rb

Instance Method Summary collapse

Constructor Details

#initializeSerializerRegistry

Returns a new instance of SerializerRegistry.



9
10
11
12
# File 'lib/http_api_tools/serializer_registry.rb', line 9

def initialize
  #Make sure all serializers have been loaded so that relationships can be properly resolved
  HttpApiTools::SerializerLoader.load_serializers
end

Instance Method Details

#get(type, class_name) ⇒ Object



14
15
16
# File 'lib/http_api_tools/serializer_registry.rb', line 14

def get(type, class_name)
  registry.fetch(type.to_sym, {})[class_name]
end

#register(type, class_name, serializer) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/http_api_tools/serializer_registry.rb', line 18

def register(type, class_name, serializer)
  if existing_serializer = get(type, class_name)
    raise "A '#{type}' serializer for '#{class_name}' instances has already been registered as #{existing_serializer.name}"
  else
    registry[type.to_sym][class_name] = serializer
  end
end