Class: ActionController::CgiRequest
- Inherits:
-
AbstractRequest
- Object
- AbstractRequest
- ActionController::CgiRequest
show all
- Defined in:
- lib/web/shim/rails.rb
Overview
Constant Summary
collapse
- DEFAULT_SESSION_OPTIONS =
{
:database_manager => CGI::Session::PStore,
:prefix => "ruby_sess.",
:session_path => "/"
}
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(cgi, session_options = {}) ⇒ CgiRequest
Returns a new instance of CgiRequest.
49
50
51
52
53
|
# File 'lib/web/shim/rails.rb', line 49
def initialize(cgi, session_options = {})
@cgi = cgi
@session_options = session_options
super()
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_id, *arguments) ⇒ Object
123
124
125
|
# File 'lib/web/shim/rails.rb', line 123
def method_missing(method_id, *arguments)
@cgi.send(method_id, *arguments) rescue super
end
|
Instance Attribute Details
Returns the value of attribute cgi.
41
42
43
|
# File 'lib/web/shim/rails.rb', line 41
def cgi
@cgi
end
|
Instance Method Details
83
84
85
|
# File 'lib/web/shim/rails.rb', line 83
def cookies
@cgi.cookies.freeze
end
|
79
80
81
|
# File 'lib/web/shim/rails.rb', line 79
def env
@cgi.send(:env_table)
end
|
87
88
89
|
# File 'lib/web/shim/rails.rb', line 87
def host
env["HTTP_X_FORWARDED_HOST"] || @cgi.host.to_s.split(":").first
end
|
#query_parameters ⇒ Object
66
67
68
69
|
# File 'lib/web/shim/rails.rb', line 66
def query_parameters
qs = self.query_string
qs.empty? ? {} : CGIMethods.parse_query_parameters(query_string)
end
|
#query_string ⇒ Object
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/web/shim/rails.rb', line 55
def query_string
return @cgi.query_string unless @cgi.query_string.nil? || @cgi.query_string.empty?
unless env['REQUEST_URI'].nil?
parts = env['REQUEST_URI'].split('?')
else
return env['QUERY_STRING'] || ''
end
parts.shift
return parts.join('?')
end
|
#request_parameters ⇒ Object
71
72
73
74
75
76
77
|
# File 'lib/web/shim/rails.rb', line 71
def request_parameters
if formatted_post?
CGIMethods.parse_formatted_request_parameters(post_format, env['RAW_POST_DATA'])
else
CGIMethods.parse_request_parameters(@cgi.params)
end
end
|
#reset_session ⇒ Object
118
119
120
121
|
# File 'lib/web/shim/rails.rb', line 118
def reset_session
@session.delete
@session = (@session_options == false ? {} : new_session)
end
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
# File 'lib/web/shim/rails.rb', line 91
def session
return @session unless @session.nil?
begin
@session = (@session_options == false ? {} : CGI::Session.new(@cgi, session_options_with_string_keys))
@session["__valid_session"]
return @session
rescue ArgumentError => e
if e.message =~ %r{undefined class/module (\w+)}
begin
Module.const_missing($1)
rescue LoadError, NameError => e
raise(
ActionController::SessionRestoreError,
"Session contained objects where the class definition wasn't available. " +
"Remember to require classes for all objects kept in the session. " +
"(Original exception: #{e.message} [#{e.class}])"
)
end
retry
else
raise
end
end
end
|