Sha256: d34620eec4d5549e5b58e4ee8621a041848217db80e1e49036d820454f293e27

Contents?: true

Size: 717 Bytes

Versions: 52

Compression:

Stored size: 717 Bytes

Contents

# frozen_string_literal: true

module Alchemy
  class BaseSerializer
    include ActiveModel::Serializers::JSON

    attr_reader :object, :opts

    def initialize(object, opts = {})
      @object = object
      @opts = opts
    end

    # The attributes to be serialized. See ActiveModel::Serialization.
    # By default, serialize all columns from the AR object.
    def attributes
      object.class.column_names.map { |c| [c, nil] }.to_h
    end

    private

    # If the presenter implements an attribute, use that. Otherwise, delegate to
    # the object.
    def read_attribute_for_serialization(key)
      if respond_to?(key)
        send(key)
      else
        object.send(key)
      end
    end
  end
end

Version data entries

52 entries across 52 versions & 1 rubygems

Version Path
alchemy_cms-7.4.0 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.3.5 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.2.8 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.1.13 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.0.16 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.3.4 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.3.3 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.3.2 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.2.7 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.3.1 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.3.0 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.2.6 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.2.5 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.1.12 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.0.15 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.2.4 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.1.11 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.2.3 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.1.10 app/serializers/alchemy/base_serializer.rb
alchemy_cms-7.2.2 app/serializers/alchemy/base_serializer.rb