module Transit::Marshaler::VerboseHandlers

@api private Included in VerboseJson subclasses. Defined here to make it available in CRuby and JRuby environments.

Public Instance Methods

build_handlers(custom_handlers) click to toggle source
Calls superclass method
# File lib/transit/marshaler/base.rb, line 28
def build_handlers(custom_handlers)
  if VERBOSE_HANDLER_CACHE.has_key?(custom_handlers)
    VERBOSE_HANDLER_CACHE[custom_handlers]
  else
    handlers = super(custom_handlers).reduce({}) do |h, (k,v)|
      if v.respond_to?(:verbose_handler) && vh = v.verbose_handler
        h.store(k, vh)
      else
        h.store(k, v)
      end
      h
    end
    VERBOSE_HANDLER_CACHE[custom_handlers] = handlers
    handlers
  end
end