Sha256: ed285e93795cd2f954516abd2525039388553019702e57f0816e26fc61ac2217

Contents?: true

Size: 473 Bytes

Versions: 12

Compression:

Stored size: 473 Bytes

Contents

module Serializers
  class Base
    extend Pliny::Helpers::ZuluTime

    @@structures = {}

    def self.structure(type, &blk)
      @@structures["#{name}::#{type}"] = blk
    end

    def initialize(type)
      @type = type
    end

    def serialize(object)
      object.respond_to?(:map) ? object.map { |item| serializer.call(item) } : serializer.call(object)
    end

    private

    def serializer
      @@structures["#{self.class.name}::#{@type}"]
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
pliny-1.2.0 lib/template/lib/serializers/base.rb
pliny-1.1.0 lib/template/lib/serializers/base.rb
pliny-1.0.0 lib/template/lib/serializers/base.rb
pliny-0.32.0 lib/template/lib/serializers/base.rb
pliny-0.31.0 lib/template/lib/serializers/base.rb
pliny-0.30.1 lib/template/lib/serializers/base.rb
pliny-0.30.0 lib/template/lib/serializers/base.rb
pliny-0.29.0 lib/template/lib/serializers/base.rb
pliny-0.28.0 lib/template/lib/serializers/base.rb
pliny-0.27.1 lib/template/lib/serializers/base.rb
pliny-0.27.0 lib/template/lib/serializers/base.rb
pliny-0.26.2 lib/template/lib/serializers/base.rb