Class: HttpApiTools::SerializerRegistry
- Inherits:
-
Object
- Object
- HttpApiTools::SerializerRegistry
- Includes:
- Singleton
- Defined in:
- lib/http_api_tools/serializer_registry.rb
Instance Method Summary collapse
- #get(type, class_name) ⇒ Object
-
#initialize ⇒ SerializerRegistry
constructor
A new instance of SerializerRegistry.
- #register(type, class_name, serializer) ⇒ Object
Constructor Details
#initialize ⇒ SerializerRegistry
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 |