Class: Steam::Request

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env = {}) ⇒ Request

Returns a new instance of Request.



30
31
32
33
# File 'lib/steam/request.rb', line 30

def initialize(env = {})
  super(self.class.default_env)
  update(env)
end

Instance Attribute Details

#methodObject

Returns the value of attribute method.



7
8
9
# File 'lib/steam/request.rb', line 7

def method
  @method
end

Class Method Details

.default_envObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/steam/request.rb', line 10

def default_env
  @default_env ||= {
    'REQUEST_METHOD'    => 'GET',
    'SERVER_NAME'       => Steam.config[:server_name],
    'SERVER_PORT'       => Steam.config[:server_port],
    'rack.url_scheme'   => Steam.config[:url_scheme],
    'rack.version'      => [0, 1],
    'rack.input'        => StringIO.new,
    'rack.errors'       => StringIO.new,
    'rack.multithread'  => true,
    'rack.multiprocess' => true,
    'rack.run_once'     => false,
    'rack.test.scheme'  => Steam.config[:url_scheme],
    'rack.test.host'    => 'www.example.com',
    'rack.test.cache_classes' => true
  }
  @default_env.dup
end

Instance Method Details

#envObject



39
40
41
# File 'lib/steam/request.rb', line 39

def env
  super.merge(headers)
end

#headersObject



91
92
93
# File 'lib/steam/request.rb', line 91

def headers
  @headers ||= {}
end

#headers=(headers) ⇒ Object



87
88
89
# File 'lib/steam/request.rb', line 87

def headers=(headers)
  self.headers.merge!(headers)
end

#host=(host) ⇒ Object



63
64
65
66
67
# File 'lib/steam/request.rb', line 63

def host=(host)
  @env.merge!(
    'rack.test.host' => host
  )
end

#input=(input) ⇒ Object



95
96
97
98
99
100
# File 'lib/steam/request.rb', line 95

def input=(input)
  @env.merge!(
    'rack.input'     => input.is_a?(String) ? StringIO.new(input) : input,
    'CONTENT_LENGTH' => input.length.to_s
  )
end

#path=(path) ⇒ Object



81
82
83
84
85
# File 'lib/steam/request.rb', line 81

def path=(path)
  @env.merge!(
    'PATH_INFO' => path && !path.empty? ? path : '/'
  )
end

#port=(port) ⇒ Object



69
70
71
72
73
# File 'lib/steam/request.rb', line 69

def port=(port)
  @env.merge!(
    'rack.test.port' => port
  )
end

#query=(query) ⇒ Object



75
76
77
78
79
# File 'lib/steam/request.rb', line 75

def query=(query)
  @env.merge!(
    'QUERY_STRING' => query.to_s
  )
end

#scheme=(scheme) ⇒ Object



56
57
58
59
60
61
# File 'lib/steam/request.rb', line 56

def scheme=(scheme)
  @env.merge!(
    'rack.url_scheme'  => scheme,
    'rack.test.scheme' => scheme
  )
end

#update(options = {}) ⇒ Object



35
36
37
# File 'lib/steam/request.rb', line 35

def update(options = {})
  options.each { |name, value| send("#{name}=", value) }
end

#uri=(uri) ⇒ Object Also known as: url=



47
48
49
50
51
52
53
# File 'lib/steam/request.rb', line 47

def uri=(uri)
  uri = URI.parse(uri)
  self.path   = uri.path
  self.query  = uri.query  if uri.query
  self.scheme = uri.scheme if uri.scheme
  self.port   = uri.port   if uri.port
end