Class: Deas::SinatraRunner

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

Defined Under Namespace

Modules: StringifiedKeys

Instance Attribute Summary collapse

Attributes inherited from Runner

#handler, #handler_class, #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.



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/deas/sinatra_runner.rb', line 14

def initialize(handler_class, sinatra_call)
  @sinatra_call  = sinatra_call
  @app_settings  = @sinatra_call.settings

  @request       = @sinatra_call.request
  @response      = @sinatra_call.response
  @params        = normalize_params(@sinatra_call.params)
  @logger        = @sinatra_call.settings.logger
  @session       = @sinatra_call.session

  super(handler_class)
end

Instance Attribute Details

#app_settingsObject (readonly)

Returns the value of attribute app_settings.



12
13
14
# File 'lib/deas/sinatra_runner.rb', line 12

def app_settings
  @app_settings
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



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/deas/sinatra_runner.rb', line 45

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



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

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

#headers(*args) ⇒ Object



61
62
63
# File 'lib/deas/sinatra_runner.rb', line 61

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

#partial(partial_name, locals = nil) ⇒ Object



74
75
76
# File 'lib/deas/sinatra_runner.rb', line 74

def partial(partial_name, locals = nil)
  Deas::Template::Partial.new(@sinatra_call, partial_name, locals).render
end

#redirect(*args) ⇒ Object



41
42
43
# File 'lib/deas/sinatra_runner.rb', line 41

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

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



65
66
67
68
69
70
71
72
# File 'lib/deas/sinatra_runner.rb', line 65

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



27
28
29
30
31
32
33
# File 'lib/deas/sinatra_runner.rb', line 27

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



78
79
80
# File 'lib/deas/sinatra_runner.rb', line 78

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

#status(*args) ⇒ Object



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

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