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



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

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

Instance Attribute Details

#envHash (readonly)

get the environment

Returns:

  • (Hash)

    the environment hash



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

def env
  @env
end

Class Method Details

.create(environment) ⇒ Object



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

def self.create(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



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

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

#clientClient

return all information about the client

Returns:

  • (Client)

    an information object about the client



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

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



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

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



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

def delete?; method == :delete; end

#get?Boolean

is the method ‘GET’?

Returns:

  • (Boolean)

    true if this is a get request



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

def get?;  method == :get;  end

#head?Boolean

is the method ‘HEAD’?

Returns:

  • (Boolean)

    true if this is a head request



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

def head?; method == :head; end

#methodSymbol

get the method of the request

Returns:

  • (Symbol)

    the symbol representation of the method



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

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



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

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

#patch?Boolean

is the method ‘PATCH’?

Returns:

  • (Boolean)

    true if this is a patch request



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

def patch?; method == :patch; end

#pathString

get the requested path

Returns:

  • (String)

    returns the requested path



26
27
28
# File 'lib/zero/request.rb', line 26

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

#post?Boolean

is the method ‘POST’?

Returns:

  • (Boolean)

    true if this is a post request



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

def post?; method == :post; end

#put?Boolean

is the method ‘PUT’?

Returns:

  • (Boolean)

    true if this is a put request



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

def put?;  method == :put;  end

#serverServer

get the information on the server

Returns:

  • (Server)

    information on the running server



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

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