Class: Rasti::Web::Render
- Inherits:
-
Object
- Object
- Rasti::Web::Render
- Defined in:
- lib/rasti/web/render.rb
Instance Attribute Summary collapse
-
#request ⇒ Object
readonly
Returns the value of attribute request.
-
#response ⇒ Object
readonly
Returns the value of attribute response.
-
#view_context ⇒ Object
readonly
Returns the value of attribute view_context.
Instance Method Summary collapse
- #css(stylesheet, *args) ⇒ Object
- #data(content, *args) ⇒ Object
- #file(filename, *args) ⇒ Object
- #html(html, *args) ⇒ Object
-
#initialize(request, response) ⇒ Render
constructor
A new instance of Render.
- #js(script, *args) ⇒ Object
- #json(object, *args) ⇒ Object
- #layout(template = nil, &block) ⇒ Object
- #partial(template, locals = {}) ⇒ Object
- #status(status, *args) ⇒ Object
- #text(text, *args) ⇒ Object
- #view(template, locals = {}, layout_template = nil) ⇒ Object
Constructor Details
#initialize(request, response) ⇒ Render
Returns a new instance of Render.
7 8 9 10 11 |
# File 'lib/rasti/web/render.rb', line 7 def initialize(request, response) @request = request @response = response @view_context = ViewContext.new request, response end |
Instance Attribute Details
#request ⇒ Object (readonly)
Returns the value of attribute request.
5 6 7 |
# File 'lib/rasti/web/render.rb', line 5 def request @request end |
#response ⇒ Object (readonly)
Returns the value of attribute response.
5 6 7 |
# File 'lib/rasti/web/render.rb', line 5 def response @response end |
#view_context ⇒ Object (readonly)
Returns the value of attribute view_context.
5 6 7 |
# File 'lib/rasti/web/render.rb', line 5 def view_context @view_context end |
Instance Method Details
#css(stylesheet, *args) ⇒ Object
43 44 45 46 47 |
# File 'lib/rasti/web/render.rb', line 43 def css(stylesheet, *args) respond_with extract_status(args), extract_headers(args).merge(Headers.for_css), stylesheet end |
#data(content, *args) ⇒ Object
55 56 57 58 59 |
# File 'lib/rasti/web/render.rb', line 55 def data(content, *args) respond_with extract_status(args), extract_headers(args), content end |
#file(filename, *args) ⇒ Object
49 50 51 52 53 |
# File 'lib/rasti/web/render.rb', line 49 def file(filename, *args) respond_with extract_status(args), Headers.for_file(filename).merge(extract_headers(args)), File.read(filename) end |
#html(html, *args) ⇒ Object
25 26 27 28 29 |
# File 'lib/rasti/web/render.rb', line 25 def html(html, *args) respond_with extract_status(args), extract_headers(args).merge(Headers.for_html), html end |
#js(script, *args) ⇒ Object
37 38 39 40 41 |
# File 'lib/rasti/web/render.rb', line 37 def js(script, *args) respond_with extract_status(args), extract_headers(args).merge(Headers.for_js), script end |
#json(object, *args) ⇒ Object
31 32 33 34 35 |
# File 'lib/rasti/web/render.rb', line 31 def json(object, *args) respond_with extract_status(args), extract_headers(args).merge(Headers.for_json), object.is_a?(String) ? object : JSON.dump(object) end |
#layout(template = nil, &block) ⇒ Object
66 67 68 69 70 71 72 |
# File 'lib/rasti/web/render.rb', line 66 def layout(template=nil, &block) content = block.call if block layout = view_context.render(template || Web.default_layout) { content } response.headers.merge! Headers.for_html response.write layout end |
#partial(template, locals = {}) ⇒ Object
61 62 63 64 |
# File 'lib/rasti/web/render.rb', line 61 def partial(template, locals={}) response.headers.merge! Headers.for_html response.write view_context.render(template, locals) end |
#status(status, *args) ⇒ Object
13 14 15 16 17 |
# File 'lib/rasti/web/render.rb', line 13 def status(status, *args) respond_with status, extract_headers(args), extract_body(args) end |
#text(text, *args) ⇒ Object
19 20 21 22 23 |
# File 'lib/rasti/web/render.rb', line 19 def text(text, *args) respond_with extract_status(args), extract_headers(args).merge(Headers.for_text), text end |
#view(template, locals = {}, layout_template = nil) ⇒ Object
74 75 76 |
# File 'lib/rasti/web/render.rb', line 74 def view(template, locals={}, layout_template=nil) layout(layout_template) { view_context.render template, locals } end |