Sha256: 1acb825a867d2774ba755977a6b7c1bc6ed0bab9cfd2c20351e23ed9133985b0

Contents?: true

Size: 875 Bytes

Versions: 18

Compression:

Stored size: 875 Bytes

Contents

# frozen_string_literal: true

module ActiveRecord
  module Encryption
    # A message defines the structure of the data we store in encrypted attributes. It contains:
    #
    # * An encrypted payload
    # * A list of unencrypted headers
    #
    # See +Encryptor#encrypt+
    class Message
      attr_accessor :payload, :headers

      def initialize(payload: nil, headers: {})
        validate_payload_type(payload)

        @payload = payload
        @headers = Properties.new(headers)
      end

      def ==(other_message)
        payload == other_message.payload && headers == other_message.headers
      end

      private
        def validate_payload_type(payload)
          unless payload.is_a?(String) || payload.nil?
            raise ActiveRecord::Encryption::Errors::ForbiddenClass, "Only string payloads allowed"
          end
        end
    end
  end
end

Version data entries

18 entries across 16 versions & 2 rubygems

Version Path
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/encryption/message.rb
scrapbook-0.3.2 vendor/ruby/2.7.0/gems/activerecord-7.0.2.3/lib/active_record/encryption/message.rb
scrapbook-0.3.1 vendor/ruby/2.7.0/gems/activerecord-7.0.2.3/lib/active_record/encryption/message.rb
scrapbook-0.3.1 vendor/ruby/2.7.0/gems/activerecord-7.0.3.1/lib/active_record/encryption/message.rb
activerecord-7.0.3.1 lib/active_record/encryption/message.rb
activerecord-7.0.3 lib/active_record/encryption/message.rb
activerecord-7.0.2.4 lib/active_record/encryption/message.rb
activerecord-7.0.2.3 lib/active_record/encryption/message.rb
activerecord-7.0.2.2 lib/active_record/encryption/message.rb
activerecord-7.0.2.1 lib/active_record/encryption/message.rb
activerecord-7.0.2 lib/active_record/encryption/message.rb
activerecord-7.0.1 lib/active_record/encryption/message.rb
activerecord-7.0.0 lib/active_record/encryption/message.rb
activerecord-7.0.0.rc3 lib/active_record/encryption/message.rb
activerecord-7.0.0.rc2 lib/active_record/encryption/message.rb
activerecord-7.0.0.rc1 lib/active_record/encryption/message.rb
activerecord-7.0.0.alpha2 lib/active_record/encryption/message.rb
activerecord-7.0.0.alpha1 lib/active_record/encryption/message.rb