Module: ActionDispatch::Session::LegacySupport

Defined in:
lib/action_dispatch/session/legacy_support.rb

Defined Under Namespace

Classes: EnvWrapper

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(klass) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/action_dispatch/session/legacy_support.rb', line 6

def self.included(klass)
  [
    :get_session,
    :get_session_model,
    :write_session,
    :delete_session,
    :find_session
  ].each do |m|
    klass.send(:alias_method, "#{m}_rails5".to_sym, m)
    klass.send(:remove_method, m)
  end
end

Instance Method Details

#destroy_session(env, session_id, options) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/action_dispatch/session/legacy_support.rb', line 29

def destroy_session(env, session_id, options)
  request = EnvWrapper.new(env)
  if sid = current_session_id(request.env)
    get_session_model(request, sid).destroy
    request.env[self.class::SESSION_RECORD_KEY] = nil
  end
  generate_sid unless options[:drop]
end

#find_session(id) ⇒ Object



46
47
48
# File 'lib/action_dispatch/session/legacy_support.rb', line 46

def find_session(id)
  self.class.session_class.find_by_session_id(id) || self.class.session_class.new(:session_id => id, :data => {})
end

#get_session(env, sid) ⇒ Object



19
20
21
22
# File 'lib/action_dispatch/session/legacy_support.rb', line 19

def get_session(env, sid)
  request = EnvWrapper.new(env)
  get_session_rails5(request, sid)
end

#get_session_model(request, sid) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/action_dispatch/session/legacy_support.rb', line 38

def get_session_model(request, sid)
  if request.env[self.class::ENV_SESSION_OPTIONS_KEY][:id].nil?
    request.env[self.class::SESSION_RECORD_KEY] = find_session(sid)
  else
    request.env[self.class::SESSION_RECORD_KEY] ||= find_session(sid)
  end
end

#set_session(env, sid, session_data, options) ⇒ Object



24
25
26
27
# File 'lib/action_dispatch/session/legacy_support.rb', line 24

def set_session(env, sid, session_data, options)
  request = EnvWrapper.new(env)
  write_session_rails5(request, sid, session_data, options)
end