Class: Cosmo::Web::Controllers::Application
- Inherits:
-
Object
- Object
- Cosmo::Web::Controllers::Application
show all
- Includes:
- Renderer
- Defined in:
- lib/cosmo/web/controllers/application.rb
Constant Summary
Constants included
from Renderer
Renderer::ASSETS_ROOT, Renderer::VIEWS_ROOT
Instance Method Summary
collapse
Methods included from Renderer
#no_content, #not_found, #ok, #redirect_to, #serve, #url_for
Constructor Details
#initialize(request) ⇒ Application
Returns a new instance of Application.
9
10
11
|
# File 'lib/cosmo/web/controllers/application.rb', line 9
def initialize(request)
@request = request
end
|
Instance Method Details
#content_for(name, content) ⇒ Object
13
14
15
16
|
# File 'lib/cosmo/web/controllers/application.rb', line 13
def content_for(name, content)
@content_for ||= {}
@content_for[name] = content
end
|
#hx_request? ⇒ Boolean
37
38
39
|
# File 'lib/cosmo/web/controllers/application.rb', line 37
def hx_request?
@request.("HTTP_HX_REQUEST") == "true"
end
|
#params ⇒ Object
29
30
31
|
# File 'lib/cosmo/web/controllers/application.rb', line 29
def params
@request.params
end
|
#path ⇒ Object
33
34
35
|
# File 'lib/cosmo/web/controllers/application.rb', line 33
def path
@request.path
end
|
#render(template, locals = nil, layout: false) ⇒ Object
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/cosmo/web/controllers/application.rb', line 18
def render(template, locals = nil, layout: false)
defaults = { request: @request }
locals = Hash(locals).merge(defaults)
view = erb(template, locals)
return view unless layout
@content_for ||= {}
@content_for[:view] = view
erb("layout", defaults, @content_for)
end
|