Module: Julewire::Core::Serialization::SerializerPool

Defined in:
lib/julewire/core/serialization/serializer_pool.rb

Class Method Summary collapse

Class Method Details

.serializer(pool_key, serializer_key) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/julewire/core/serialization/serializer_pool.rb', line 8

def serializer(pool_key, serializer_key)
  # Serializers carry traversal state, so pooled instances stay thread-local.
  pool = Thread.current.thread_variable_get(pool_key)
  unless pool
    pool = {}
    Thread.current.thread_variable_set(pool_key, pool)
  end
  pool[serializer_key] ||= yield
end