Class: Mack::Request

Inherits:
Rack::Request
  • Object
show all
Defined in:
lib/sea_level/request.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#sessionObject

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_paramsObject

Returns all parameters associated with this request.



13
14
15
# File 'lib/sea_level/request.rb', line 13

def all_params
  @mack_params
end

#full_hostObject

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_portObject

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
# File 'lib/sea_level/request.rb', line 55

def params(key)
  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 {|k,v| p[k] = v.to_s.uri_unescape}
    end
  end
  p
end

#rack_paramsObject

:nodoc:



10
# File 'lib/sea_level/request.rb', line 10

alias_method :rack_params, :params