Class: ParallelBatchApi::Middleware

Inherits:
Object
  • Object
show all
Includes:
Builder, Processor
Defined in:
lib/parallel_batch_api/middleware.rb

Instance Method Summary collapse

Methods included from Processor

#parallel_process, #process, #requests, #thread_size

Methods included from Builder

#build_requests, #build_response

Constructor Details

#initialize(app) ⇒ Middleware

Returns a new instance of Middleware.



16
17
18
# File 'lib/parallel_batch_api/middleware.rb', line 16

def initialize(app)
  @app = app
end

Instance Method Details

#batch_pathObject



40
41
42
# File 'lib/parallel_batch_api/middleware.rb', line 40

def batch_path
  [ParallelBatchApi.batch_path]
end

#batch_request?(env) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/parallel_batch_api/middleware.rb', line 28

def batch_request?(env)
  valid_path?(env) && valid_method?(env)
end

#call(env) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/parallel_batch_api/middleware.rb', line 20

def call(env)
  if batch_request?(env)
    process(env)
  else
    @app.call(env)
  end
end

#valid_method?(env) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/parallel_batch_api/middleware.rb', line 36

def valid_method?(env)
  env['REQUEST_METHOD'] == HTTP_METHOD_POST
end

#valid_path?(env) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/parallel_batch_api/middleware.rb', line 32

def valid_path?(env)
  batch_path.include?(env['PATH_INFO'])
end