method

prepend

prepend
public

Just like #rotate, but prepends the given options or block to the list of option sets.

This can be useful when you have an already-configured MessageEncryptors instance, but you want to override the way messages are encrypted.

module ThirdParty
  ENCRYPTORS = ActiveSupport::MessageEncryptors.new { ... }.
    rotate(serializer: Marshal, url_safe: true).
    rotate(serializer: Marshal, url_safe: false)
end

ThirdParty.ENCRYPTORS.prepend(serializer: JSON, url_safe: true)

# Uses `serializer: JSON, url_safe: true`.
# Falls back to `serializer: Marshal, url_safe: true` or
# `serializer: Marshal, url_safe: false`.
ThirdParty.ENCRYPTORS[:foo]