Module: PUNK::Renderable
- Included in:
- View
- Defined in:
- lib/punk/helpers/renderable.rb
Constant Summary collapse
- FORMATS =
{ html: { renderer: :to_html, extension: 'slim' }, json: { renderer: :to_json, extension: 'jbuilder' }, csv: { renderer: :to_csv, extension: 'rcsv' }, xml: { renderer: :to_xml, extension: 'xml.slim' } }.freeze
Instance Method Summary collapse
- #inspect ⇒ Object
- #render(format) ⇒ Object
- #template(name) ⇒ Object
- #to_csv(options = {}) ⇒ Object
- #to_h ⇒ Object
- #to_html(options = {}) ⇒ Object
- #to_json(options = {}) ⇒ Object
- #to_s ⇒ Object
- #to_xml(options = {}) ⇒ Object
Instance Method Details
#inspect ⇒ Object
44 45 46 |
# File 'lib/punk/helpers/renderable.rb', line 44 def inspect to_s end |
#render(format) ⇒ Object
19 20 21 22 |
# File 'lib/punk/helpers/renderable.rb', line 19 def render(format) raise NotFound, "unknown format '#{format}'" unless FORMATS.key?(format) send(FORMATS[format][:renderer]) end |
#template(name) ⇒ Object
15 16 17 |
# File 'lib/punk/helpers/renderable.rb', line 15 def template(name) @template = name end |
#to_csv(options = {}) ⇒ Object
32 33 34 |
# File 'lib/punk/helpers/renderable.rb', line 32 def to_csv(={}) _render(:csv, ) end |
#to_h ⇒ Object
48 49 50 |
# File 'lib/punk/helpers/renderable.rb', line 48 def to_h ActiveSupport::JSON.decode(to_json).to_h.deep_symbolize_keys end |
#to_html(options = {}) ⇒ Object
24 25 26 |
# File 'lib/punk/helpers/renderable.rb', line 24 def to_html(={}) _render(:html, ) end |
#to_json(options = {}) ⇒ Object
28 29 30 |
# File 'lib/punk/helpers/renderable.rb', line 28 def to_json(={}) _render(:json, ) end |
#to_s ⇒ Object
40 41 42 |
# File 'lib/punk/helpers/renderable.rb', line 40 def to_s to_json end |
#to_xml(options = {}) ⇒ Object
36 37 38 |
# File 'lib/punk/helpers/renderable.rb', line 36 def to_xml(={}) _render(:xml, ) end |