Class: Zero::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/zero/request.rb,
lib/zero/request/accept.rb,
lib/zero/request/client.rb,
lib/zero/request/server.rb,
lib/zero/request/parameter.rb,
lib/zero/request/accept_type.rb

Overview

This class wraps around a rack environment for easier access to all data.

Defined Under Namespace

Classes: Accept, AcceptType, Client, Parameter, Server

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env) ⇒ Request

create a new request object



22
23
24
25
# File 'lib/zero/request.rb', line 22

def initialize(env)
  @env = env
  @env['zero.request'] = self
end

Instance Attribute Details

#envHash (readonly)

get the environment

Returns:

  • (Hash)

    the environment hash



29
30
31
# File 'lib/zero/request.rb', line 29

def env
  @env
end

Class Method Details

.__new__Object

replace #new with a function to reuse an already defined request



11
# File 'lib/zero/request.rb', line 11

alias_method :__new__, :new

.new(environment) ⇒ Object

reuse an already defined request in the environment or create a new one

Parameters:

  • environment (Hash)

    a rack compatible request environment



15
16
17
18
# File 'lib/zero/request.rb', line 15

def new(environment)
  return environment['zero.request'] if environment.has_key?('zero.request')
  __new__(environment)
end

Instance Method Details

#acceptAccept

get the media types

Returns:

  • (Accept)

    on Accept object managing all types and their order



64
65
66
# File 'lib/zero/request.rb', line 64

def accept
  @accept ||= Request::Accept.new(@env)
end

#clientClient

return all information about the client

Returns:

  • (Client)

    an information object about the client



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

def client
  @client ||= Request::Client.new(@env)
end

#content_typeString

return the content type of the request TODO change into its own object?

Returns:

  • (String)

    returns the content type of the request



58
59
60
# File 'lib/zero/request.rb', line 58

def content_type
  @env[CONST_CONTENT_TYPE] if @env.has_key?(CONST_CONTENT_TYPE)
end

#delete?Boolean

is the method ‘DELETE’?

Returns:

  • (Boolean)

    true if this is a delete request



84
# File 'lib/zero/request.rb', line 84

def delete?; method == :delete; end

#get?Boolean

is the method ‘GET’?

Returns:

  • (Boolean)

    true if this is a get request



75
# File 'lib/zero/request.rb', line 75

def get?;  method == :get;  end

#head?Boolean

is the method ‘HEAD’?

Returns:

  • (Boolean)

    true if this is a head request



87
# File 'lib/zero/request.rb', line 87

def head?; method == :head; end

#methodSymbol

get the method of the request

Returns:

  • (Symbol)

    the symbol representation of the method



70
71
72
# File 'lib/zero/request.rb', line 70

def method
  @method ||= @env[CONST_REQUEST_METHOD].downcase.to_sym
end

#paramsParameter

get an object representing the parameters of the request

Returns:

  • (Parameter)

    object having all parameters



51
52
53
# File 'lib/zero/request.rb', line 51

def params
  @params ||= Request::Parameter.new(@env)
end

#patch?Boolean

is the method ‘PATCH’?

Returns:

  • (Boolean)

    true if this is a patch request



90
# File 'lib/zero/request.rb', line 90

def patch?; method == :patch; end

#pathString

get the requested path

Returns:

  • (String)

    returns the requested path



33
34
35
# File 'lib/zero/request.rb', line 33

def path
  @path ||= @env[CONST_PATH_INFO]
end

#post?Boolean

is the method ‘POST’?

Returns:

  • (Boolean)

    true if this is a post request



78
# File 'lib/zero/request.rb', line 78

def post?; method == :post; end

#put?Boolean

is the method ‘PUT’?

Returns:

  • (Boolean)

    true if this is a put request



81
# File 'lib/zero/request.rb', line 81

def put?;  method == :put;  end

#serverServer

get the information on the server

Returns:

  • (Server)

    information on the running server



45
46
47
# File 'lib/zero/request.rb', line 45

def server
  @server ||= Request::Server.new(@env)
end