Class: Smaak::RackAdaptor

Inherits:
Object
  • Object
show all
Defined in:
lib/smaak/adaptors/rack_adaptor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ RackAdaptor

Returns a new instance of RackAdaptor.

Raises:

  • (ArgumentError)


8
9
10
11
# File 'lib/smaak/adaptors/rack_adaptor.rb', line 8

def initialize(request)
  raise ArgumentError.new("Must provide a Rack::Request") if not request.is_a? Rack::Request
  @request = request
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



6
7
8
# File 'lib/smaak/adaptors/rack_adaptor.rb', line 6

def request
  @request
end

Instance Method Details

#bodyObject



33
34
35
# File 'lib/smaak/adaptors/rack_adaptor.rb', line 33

def body
  @request.body
end

#header(header) ⇒ Object

Raises:

  • (ArgumentError)


13
14
15
16
17
18
19
20
21
22
23
# File 'lib/smaak/adaptors/rack_adaptor.rb', line 13

def header(header)
  raise ArgumentError.new("Header must be a non-blank string") if not Smaak::Utils::non_blank_string?(header)
  if header == "content-length"
    value = @request.env["CONTENT_LENGTH"]
    value = 0 if value.nil?
    return value
  end
  return @request.env["HTTP_HOST"].split(':')[0] if not @request.env["HTTP_HOST"].nil? and header == "host"
  return value = @request.env["REQUEST_METHOD"] if header == "request-method"
  return @request.env["HTTP_#{header.upcase.gsub("-", "_")}"]
end

#methodObject



25
26
27
# File 'lib/smaak/adaptors/rack_adaptor.rb', line 25

def method
  @request.env["REQUEST_METHOD"]
end

#pathObject



29
30
31
# File 'lib/smaak/adaptors/rack_adaptor.rb', line 29

def path
  @request.env["PATH_INFO"]
end