Class: Deas::SinatraRunner

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

Instance Attribute Summary

Attributes inherited from Runner

#app_settings, #logger, #params, #request, #response, #session

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(handler_class, sinatra_call) ⇒ SinatraRunner

Returns a new instance of SinatraRunner.



12
13
14
15
16
17
18
19
20
21
# File 'lib/deas/sinatra_runner.rb', line 12

def initialize(handler_class, sinatra_call)
  @sinatra_call  = sinatra_call
  @app_settings  = @sinatra_call.settings
  @logger        = @sinatra_call.settings.logger
  @params        = @sinatra_call.params
  @request       = @sinatra_call.request
  @response      = @sinatra_call.response
  @session       = @sinatra_call.session
  super(handler_class)
end

Class Method Details

.run(*args) ⇒ Object



8
9
10
# File 'lib/deas/sinatra_runner.rb', line 8

def self.run(*args)
  self.new(*args).run
end

Instance Method Details

#content_type(*args) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/deas/sinatra_runner.rb', line 41

def content_type(*args)
  return @sinatra_call.content_type if args.empty?

  opts, value = [
    args.last.kind_of?(::Hash) ? args.pop : {},
    args.first
  ]
  @sinatra_call.content_type(value, {
    :charset => @sinatra_call.settings.deas_default_charset
  }.merge(opts || {}))
end

#halt(*args) ⇒ Object

Helpers



33
34
35
# File 'lib/deas/sinatra_runner.rb', line 33

def halt(*args)
  @sinatra_call.halt(*args)
end

#headers(*args) ⇒ Object



57
58
59
# File 'lib/deas/sinatra_runner.rb', line 57

def headers(*args)
  @sinatra_call.headers(*args)
end

#redirect(*args) ⇒ Object



37
38
39
# File 'lib/deas/sinatra_runner.rb', line 37

def redirect(*args)
  @sinatra_call.redirect(*args)
end

#render(template_name, options = nil, &block) ⇒ Object



61
62
63
64
65
66
67
68
# File 'lib/deas/sinatra_runner.rb', line 61

def render(template_name, options = nil, &block)
  options ||= {}
  options[:locals] = { :view => @handler }.merge(options[:locals] || {})
  options[:layout] ||= @handler_class.layouts

  self.content_type(get_content_type(template_name)) if self.content_type.nil?
  Deas::Template.new(@sinatra_call, template_name, options).render(&block)
end

#runObject



23
24
25
26
27
28
29
# File 'lib/deas/sinatra_runner.rb', line 23

def run
  run_callbacks @handler_class.before_callbacks
  @handler.init
  response_data = @handler.run
  run_callbacks @handler_class.after_callbacks
  response_data
end

#send_file(*args, &block) ⇒ Object



70
71
72
# File 'lib/deas/sinatra_runner.rb', line 70

def send_file(*args, &block)
  @sinatra_call.send_file(*args, &block)
end

#status(*args) ⇒ Object



53
54
55
# File 'lib/deas/sinatra_runner.rb', line 53

def status(*args)
  @sinatra_call.status(*args)
end