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



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

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

Instance Attribute Details

#actionProc (readonly)

Returns action to process request.

Returns:

  • (Proc)

    action to process request



179
180
181
# File 'lib/carnivore-http/app.rb', line 179

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:



207
208
209
210
211
212
# File 'lib/carnivore-http/app.rb', line 207

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)


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

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