Sha256: ebf204dc78b8026fcae6a17e5657932a7f3bf97de22fc6897c7c5d3cd8c01c1a

Contents?: true

Size: 1.28 KB

Versions: 2

Compression:

Stored size: 1.28 KB

Contents

require 'json'
require 'time'
require 'date'

module FastSerializer
  require_relative 'fast_serializer/cache'
  require_relative 'fast_serializer/cache/active_support_cache'
  require_relative 'fast_serializer/serialization_context'
  require_relative 'fast_serializer/serialized_field'
  require_relative 'fast_serializer/serializer'
  require_relative 'fast_serializer/array_serializer'
  
  class << self
    # Get the global cache implementation used for storing cacheable serializers.
    def cache
      @cache if defined?(@cache)
    end
  
    # Set the global cache implementation used for storing cacheable serializers.
    # The cache implementation should implement the +fetch+ method as defined in 
    # FastSerializer::Cache. By default no cache is set so caching won't do anything.
    #
    # In a Rails app, you can initialize the cache by simply passing in the value :rails
    # to use the default Rails.cache.
    def cache=(cache)
      cache = Cache::ActiveSupportCache.new(Rails.cache) if cache == :rails
      @cache = cache
    end
  end
  
  # Exception raised when there is a circular reference serializing a model dependent on itself.
  class CircularReferenceError < StandardError
    def initialize(model)
      super("Circular refernce on #{model.inspect}")
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fast_serializer-1.0.1 lib/fast_serializer.rb
fast_serializer-1.0.0 lib/fast_serializer.rb