Module: ActiveRpc::Rpc::Concerns::Serializable

Extended by:
ActiveSupport::Concern
Included in:
BaseController
Defined in:
lib/active_rpc/rpc/concerns/serializable.rb

Overview

The Serializable concern provides methods for transforming ActiveRecord models into gRPC response objects.

Examples:

def get_user
  process_request do
    user = find_record(User, request.message.id)
    serialize_record(user, serializer: UserSerializer)
  end
end

Instance Method Summary collapse

Instance Method Details

#serialize_collection(collection, options = {}) ⇒ Object

Transform a collection using a serializer



24
25
26
# File 'lib/active_rpc/rpc/concerns/serializable.rb', line 24

def serialize_collection(collection, options = {})
  collection.map { |record| serialize_record(record, options) }
end

#serialize_record(record, options = {}) ⇒ Object

Transform a record using a serializer



18
19
20
21
# File 'lib/active_rpc/rpc/concerns/serializable.rb', line 18

def serialize_record(record, options = {})
  serializer_class = options[:serializer] || "#{record.class.name}Serializer".constantize
  serializer_class.new(record).to_h
end