Module: JsonApi::Parameters::Handlers

Includes:
DefaultHandlers
Defined in:
lib/jsonapi_parameters/handlers.rb,
lib/jsonapi_parameters/default_handlers/base_handler.rb,
lib/jsonapi_parameters/default_handlers/nil_relation_handler.rb,
lib/jsonapi_parameters/default_handlers/to_one_relation_handler.rb,
lib/jsonapi_parameters/default_handlers/to_many_relation_handler.rb

Defined Under Namespace

Modules: DefaultHandlers

Constant Summary collapse

DEFAULT_HANDLER_SET =
{
  to_many: ToManyRelationHandler,
  to_one: ToOneRelationHandler,
  nil: NilRelationHandler
}.freeze

Class Method Summary collapse

Class Method Details

.add_handler(handler_name, klass) ⇒ Object



18
19
20
# File 'lib/jsonapi_parameters/handlers.rb', line 18

def add_handler(handler_name, klass)
  handlers[handler_name.to_sym] = klass
end

.handlersObject



41
42
43
# File 'lib/jsonapi_parameters/handlers.rb', line 41

def handlers
  @handlers ||= DEFAULT_HANDLER_SET.dup
end

.reset_handlers!Object



32
33
34
35
# File 'lib/jsonapi_parameters/handlers.rb', line 32

def reset_handlers!
  @handlers = DEFAULT_HANDLER_SET.dup
  @resource_handlers = {}
end

.resource_handlersObject



37
38
39
# File 'lib/jsonapi_parameters/handlers.rb', line 37

def resource_handlers
  @resource_handlers ||= {}
end

.set_resource_handler(resource_key, handler_key) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/jsonapi_parameters/handlers.rb', line 22

def set_resource_handler(resource_key, handler_key)
  unless handlers.key?(handler_key)
    raise NotImplementedError.new(
      'handler_key does not match any registered handlers'
    )
  end

  resource_handlers[resource_key.to_sym] = handler_key.to_sym
end