Sha256: 5accf144504f8257024180150b9dc3247123ce3a876436a39d363e8fbdcbb579

Contents?: true

Size: 805 Bytes

Versions: 2

Compression:

Stored size: 805 Bytes

Contents

require 'active_serializer/serializers/hash_serializer'
require 'active_serializer/serializers/ignore_blank_hash_serializer'

module ActiveSerializer::SerializableHash
  extend ActiveSupport::Concern

  module ClassMethods
    include ActiveSerializer::Serializable

    private

    def run_serialization(objects, serialization_rules, serialization_options)
      if serialization_options[:ignore_blank]
        serializer = ActiveSerializer::Serializers::IgnoreBlankHashSerializer.new(objects.first, serialization_options)
      else
        serializer = ActiveSerializer::Serializers::HashSerializer.new(objects.first, serialization_options)
      end
      instance_exec do
        serializer.instance_exec(*objects, &serialization_rules)
      end
      serializer.serialized_data
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
active_serializer-0.1.1 lib/active_serializer/serializable_hash.rb
active_serializer-0.1.0 lib/active_serializer/serializable_hash.rb