Module: Knuckles::Stages::Renderer

Extended by:
Renderer
Included in:
Renderer
Defined in:
lib/knuckles/stages/renderer.rb

Overview

After un-cached models have been hydrated they can be rendered. Rendering is synonymous with converting a model to a hash, like calling ‘as_json` on an `ActiveRecord` model. Knuckles provides a minimal (but fast) view module that can be used with the rendering step. Alternatively, if you’re migrating from ‘ActiveModelSerializers` you can pass in an AMS class instead.

Instance Method Summary collapse

Instance Method Details

#call(objects, options) ⇒ Object

Serialize all un-cached objects into hashes.

Examples:

Using a Knuckles::View


module PostView
  extend Knuckles::View

  def self.data(post, _options)
    {id: post.id, name: post.name}
  end
end

pipeline.call(models, view: PostView)

Parameters:

  • objects (Enumerable)

    The prepared collection to be rendered

  • [Module] (Hash)

    a customizable set of options



33
34
35
36
37
38
39
40
41
# File 'lib/knuckles/stages/renderer.rb', line 33

def call(objects, options)
  view = options.fetch(:view)

  objects.each do |hash|
    unless hash[:cached?]
      hash[:result] = do_render(hash[:object], view, options)
    end
  end
end