| 94 | | return @session unless @session.nil? |
|---|
| 95 | | |
|---|
| 96 | | begin |
|---|
| 97 | | @session = (@session_options == false ? {} : CGI::Session.new(@cgi, session_options_with_string_keys)) |
|---|
| 98 | | @session["__valid_session"] |
|---|
| 99 | | return @session |
|---|
| 100 | | rescue ArgumentError => e |
|---|
| 101 | | if e.message =~ %r{undefined class/module (\w+)} |
|---|
| 102 | | begin |
|---|
| 103 | | Module.const_missing($1) |
|---|
| 104 | | rescue LoadError, NameError => e |
|---|
| 105 | | raise( |
|---|
| 106 | | ActionController::SessionRestoreError, |
|---|
| 107 | | "Session contained objects where the class definition wasn't available. " + |
|---|
| 108 | | "Remember to require classes for all objects kept in the session. " + |
|---|
| 109 | | "(Original exception: #{e.message} [#{e.class}])" |
|---|
| 110 | | ) |
|---|
| | 94 | unless @session |
|---|
| | 95 | if @session_options == false |
|---|
| | 96 | @session = Hash.new |
|---|
| | 97 | else |
|---|
| | 98 | if session_options_with_string_keys['new_session'] == true |
|---|
| | 99 | @session = new_session |
|---|
| | 100 | else |
|---|
| | 101 | @session = CGI::Session.new(@cgi, session_options_with_string_keys) |
|---|
| 133 | | |
|---|
| | 128 | |
|---|
| | 129 | def stale_session_check! |
|---|
| | 130 | @session['__valid_session'] |
|---|
| | 131 | rescue ArgumentError => argument_error |
|---|
| | 132 | if argument_error.message =~ %r{undefined class/module (\w+)} |
|---|
| | 133 | begin |
|---|
| | 134 | Module.const_missing($1) |
|---|
| | 135 | rescue LoadError, NameError => const_error |
|---|
| | 136 | raise ActionController::SessionRestoreError, <<end_msg |
|---|
| | 137 | Session contains objects whose class definition isn't available. |
|---|
| | 138 | Remember to require the classes for all objects kept in the session. |
|---|
| | 139 | (Original exception: #{const_error.message} [#{const_error.class}]) |
|---|
| | 140 | end_msg |
|---|
| | 141 | end |
|---|
| | 142 | |
|---|
| | 143 | retry |
|---|
| | 144 | else |
|---|
| | 145 | raise |
|---|
| | 146 | end |
|---|
| | 147 | end |
|---|
| | 148 | |
|---|