Class: Carnivore::Http::App

Inherits:
Object
  • Object
show all
Defined in:
lib/carnivore-http/app.rb

Overview

Rack app for processing messages

Defined Under Namespace

Classes: Request, Response

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(args = {}) { ... } ⇒ self

Create a new instance

Parameters:

  • args (Hash) (defaults to: {})

Yields:

  • processes request



194
195
196
# File 'lib/carnivore-http/app.rb', line 194

def initialize(args={}, &block)
  @action = block
end

Instance Attribute Details

#actionProc (readonly)

Returns action to process request.

Returns:

  • (Proc)

    action to process request



187
188
189
# File 'lib/carnivore-http/app.rb', line 187

def action
  @action
end

Class Method Details

.build_app(args = {}, &block) ⇒ App

Build a new app

Parameters:

  • args (Hash) (defaults to: {})

    options

  • block (Proc)

Returns:



215
216
217
218
219
220
# File 'lib/carnivore-http/app.rb', line 215

def build_app(args={}, &block)
  Rack::Builder.new do
    use Rack::Chunked
    run self.new(args, &block)
  end
end

Instance Method Details

#call(env) ⇒ Array

Process the request

Parameters:

  • env (Hash)

Returns:

  • (Array)


202
203
204
205
206
# File 'lib/carnivore-http/app.rb', line 202

def call(env)
  request = Request.new(env)
  action.call(request)
  request.response.finish
end