Module: Praxis::Extensions::Rendering
- Extended by:
- ActiveSupport::Concern
- Includes:
- FieldExpansion
- Defined in:
- lib/praxis/extensions/rendering.rb
Instance Method Summary collapse
- #default_encoder ⇒ Object
- #display(object, include_nil: false, encoder: self.default_encoder) ⇒ Object
- #render(object, include_nil: false) ⇒ Object
Methods included from FieldExpansion
Instance Method Details
#default_encoder ⇒ Object
37 38 39 |
# File 'lib/praxis/extensions/rendering.rb', line 37 def default_encoder '' end |
#display(object, include_nil: false, encoder: self.default_encoder) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/praxis/extensions/rendering.rb', line 20 def display(object, include_nil: false, encoder: self.default_encoder ) identifier = Praxis::MediaTypeIdentifier.load(self.media_type.identifier) identifier += encoder unless encoder.blank? response.headers['Content-Type'] = identifier.to_s response.body = render(object, include_nil: include_nil) response rescue Praxis::Renderer::CircularRenderingError => e Praxis::Application.instance.validation_handler.handle!( summary: "Circular Rendering Error when rendering response. " + "Please especify a view to narrow the dependent fields, or narrow your field set.", exception: e, request: request, stage: :action, errors: nil ) end |
#render(object, include_nil: false) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/praxis/extensions/rendering.rb', line 8 def render(object, include_nil: false) loaded = self.media_type.load(object) renderer = Praxis::Renderer.new(include_nil: include_nil) renderer.render(loaded, self.) rescue Attributor::DumpError if self.media_type.domain_model == Object warn "Detected the rendering of an object of type #{self.media_type} without having a domain object model set.\n" + "Did you forget to define it?" end raise end |