A message serializer that serializes Messages with JSON.

The generated structure is pretty simple:

{
  p: <payload>,
  h: {
    header1: value1,
    header2: value2,
    ...
  }
}

Both the payload and the header values are encoded with Base64 to prevent JSON parsing errors and encoding issues when storing the resulting serialized data.

Methods

Instance Public methods

binary?()

📝 Source code
# File activerecord/lib/active_record/encryption/message_serializer.rb, line 36
      def binary?
        false
      end
🔎 See on GitHub

dump(message)

📝 Source code
# File activerecord/lib/active_record/encryption/message_serializer.rb, line 31
      def dump(message)
        raise ActiveRecord::Encryption::Errors::ForbiddenClass unless message.is_a?(ActiveRecord::Encryption::Message)
        JSON.dump message_to_json(message)
      end
🔎 See on GitHub

load(serialized_content)

📝 Source code
# File activerecord/lib/active_record/encryption/message_serializer.rb, line 24
      def load(serialized_content)
        data = JSON.parse(serialized_content)
        parse_message(data, 1)
      rescue JSON::ParserError
        raise ActiveRecord::Encryption::Errors::Encoding
      end
🔎 See on GitHub