class ActionDispatch::Session::AbstractStore::OptionsHash

load session id into session_options
thin wrapper around Hash that allows us to lazily

def [](key)

def [](key)
  if key == :id
    load_session_id! unless key?(:id) || has_session_id?
  end
  super
end

def has_session_id?

def has_session_id?
  @session_id_loaded
end

def initialize(by, env, default_options)

def initialize(by, env, default_options)
  @by = by
  @env = env
  @session_id_loaded = false
  merge!(default_options)
end

def load_session_id!

def load_session_id!
  self[:id] = @by.send(:extract_session_id, @env)
  @session_id_loaded = true
end