class Grape::Cookies::Middleware::EnvSetup

Public Class Methods

key_generator() click to toggle source
# File lib/grape/cookies/middleware/env_setup.rb, line 10
def self.key_generator
  @caching_key_generator ||= begin
    if settings[:secret_key_base].blank?
      raise ArgumentError, 'A secret is required to generate an integrity hash ' \
                         'for cookie session data. Set a secret_key_base.'
    end

    key_generator = ActiveSupport::KeyGenerator.new(settings[:secret_key_base], iterations: 1000)
    ActiveSupport::CachingKeyGenerator.new(key_generator)
  end
end
new(app) click to toggle source
# File lib/grape/cookies/middleware/env_setup.rb, line 39
def initialize(app)
  @app = app
end
reset_settings_for_env!() click to toggle source
# File lib/grape/cookies/middleware/env_setup.rb, line 34
def self.reset_settings_for_env!
  @caching_key_generator = nil
  @settings_for_env = nil
end
settings() click to toggle source
# File lib/grape/cookies/middleware/env_setup.rb, line 6
def self.settings
  Cookies.settings
end
settings_for_env() click to toggle source
# File lib/grape/cookies/middleware/env_setup.rb, line 22
def self.settings_for_env
  @settings_for_env ||= {
      ActionDispatch::Cookies::GENERATOR_KEY => key_generator,
      ActionDispatch::Cookies::SIGNED_COOKIE_SALT => settings[:signed_cookie_salt],
      ActionDispatch::Cookies::ENCRYPTED_COOKIE_SALT => settings[:encrypted_cookie_salt],
      ActionDispatch::Cookies::ENCRYPTED_SIGNED_COOKIE_SALT => settings[:encrypted_signed_cookie_salt],
      ActionDispatch::Cookies::SECRET_TOKEN => settings[:secret_token],
      ActionDispatch::Cookies::SECRET_KEY_BASE => settings[:secret_key_base],
      ActionDispatch::Cookies::COOKIES_SERIALIZER => settings[:cookies_serializer]
  }.freeze
end

Public Instance Methods

call(env) click to toggle source
# File lib/grape/cookies/middleware/env_setup.rb, line 43
def call(env)
  env.merge!(self.class.settings_for_env)

  @app.call(env)
end