class Paquito::CodecFactory

Public Class Methods

build(types, freeze: false, serializable_type: false, pool: 1) click to toggle source
# File lib/paquito/codec_factory.rb, line 8
def self.build(types, freeze: false, serializable_type: false, pool: 1)
  factory = if types.empty? && !serializable_type
    MessagePack::DefaultFactory
  else
    MessagePack::Factory.new
  end

  Types.register(factory, types) unless types.empty?
  Types.register_serializable_type(factory) if serializable_type

  if pool && pool > 0 && factory.respond_to?(:pool)
    factory = factory.freeze.pool(pool, freeze: freeze)
    freeze = false
  end

  MessagePackCodec.new(factory, freeze: freeze)
end