Class: Deas::DeasRunner

Inherits:
Runner
  • Object
show all
Defined in:
lib/deas/deas_runner.rb

Defined Under Namespace

Classes: NormalizedParams

Constant Summary

Constants inherited from Runner

Runner::DEFAULT_CHARSET, Runner::DEFAULT_MIME_TYPE

Instance Attribute Summary

Attributes inherited from Runner

#handler, #handler_class, #logger, #params, #request, #route_path, #router, #template_source

Instance Method Summary collapse

Methods inherited from Runner

#body, body_value, #content_type, #halt, #headers, #partial, #redirect, #render, #send_file, #set_cookie, #source_partial, #source_render, #splat, #status, #to_rack

Constructor Details

#initialize(handler_class, args = nil) ⇒ DeasRunner

Returns a new instance of DeasRunner.



8
9
10
11
12
13
14
# File 'lib/deas/deas_runner.rb', line 8

def initialize(handler_class, args = nil)
  args ||= {}
  super(
    handler_class,
    args.merge(:params => NormalizedParams.new(args[:params]).value)
  )
end

Instance Method Details

#runObject



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/deas/deas_runner.rb', line 16

def run
  catch(:halt) do
    self.handler.deas_run_callback 'before'
    catch(:halt){ self.handler.deas_init; self.handler.deas_run }
    self.handler.deas_run_callback 'after'
  end

  self.to_rack.tap do |(status, headers, body)|
    headers['Content-Length'] ||= body.inject(0) do |length, part|
      length + Rack::Utils.bytesize(part)
    end.to_s
  end
end