Class: Mack::Request
- Inherits:
-
Rack::Request
- Object
- Rack::Request
- Mack::Request
- Defined in:
- lib/sea_level/request.rb
Defined Under Namespace
Classes: UploadedFile
Instance Attribute Summary collapse
-
#session ⇒ Object
Gives access to the session.
Instance Method Summary collapse
-
#all_params ⇒ Object
Returns all parameters associated with this request.
-
#file(key) ⇒ Object
Returns a Mack::Request::UploadedFile object.
-
#full_host ⇒ Object
Examples: example.org example.org example.org:8080.
-
#full_host_with_port ⇒ Object
Examples: example.org:80 example.org:443 example.org:8080.
-
#initialize(env) ⇒ Request
constructor
:nodoc:.
-
#merge_params(opts = {}) ⇒ Object
Merges another Hash with the parameters for this request.
-
#params(key) ⇒ Object
Gives access to the request parameters.
-
#rack_params ⇒ Object
:nodoc:.
Constructor Details
#initialize(env) ⇒ Request
:nodoc:
4 5 6 7 8 |
# File 'lib/sea_level/request.rb', line 4 def initialize(env) # :nodoc: super(env) @mack_params = {} parse_params(rack_params) end |
Instance Attribute Details
#session ⇒ Object
Gives access to the session. See Mack::Session for more information.
23 24 25 |
# File 'lib/sea_level/request.rb', line 23 def session @session end |
Instance Method Details
#all_params ⇒ Object
Returns all parameters associated with this request.
13 14 15 |
# File 'lib/sea_level/request.rb', line 13 def all_params @mack_params end |
#file(key) ⇒ Object
Returns a Mack::Request::UploadedFile object.
75 76 77 78 79 |
# File 'lib/sea_level/request.rb', line 75 def file(key) ivar_cache("file_#{key}") do Mack::Request::UploadedFile.new(params(key)) end end |
#full_host ⇒ Object
Examples:
http://example.org
https://example.org
http://example.org:8080
29 30 31 32 33 34 35 36 37 |
# File 'lib/sea_level/request.rb', line 29 def full_host u = self.scheme.dup u << "://" u << self.host.dup unless self.port == 80 || self.port == 443 u << ":#{self.port}" end u end |
#full_host_with_port ⇒ Object
Examples:
http://example.org:80
https://example.org:443
http://example.org:8080
43 44 45 |
# File 'lib/sea_level/request.rb', line 43 def full_host_with_port full_host << ":#{self.port}" end |
#merge_params(opts = {}) ⇒ Object
Merges another Hash with the parameters for this request.
18 19 20 |
# File 'lib/sea_level/request.rb', line 18 def merge_params(opts = {}) parse_params(opts) end |
#params(key) ⇒ Object
Gives access to the request parameters. This includes ‘get’ parameters, ‘post’ parameters as well as parameters from the routing process. The parameter will also be ‘unescaped’ when it is returned.
Example:
uri: '/users/1?foo=bar'
route: '/users/:id' => {:controller => 'users', :action => 'show'}
parameters: {:controller => 'users', :action => 'show', :id => 1, :foo => "bar"}
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/sea_level/request.rb', line 55 def params(key) ivar_cache("params_#{key}") do p = (@mack_params[key.to_sym] || @mack_params[key.to_s]) unless p.nil? p = p.to_s if p.is_a?(Symbol) if p.is_a?(String) p = p.to_s.uri_unescape elsif p.is_a?(Hash) p.each_pair do |k,v| if v.is_a?(String) p[k] = v.to_s.uri_unescape end end end end p end end |
#rack_params ⇒ Object
:nodoc:
10 |
# File 'lib/sea_level/request.rb', line 10 alias_method :rack_params, :params |