Class: Flycal::Pipeline::JsonRenderer

Inherits:
Renderer
  • Object
show all
Defined in:
lib/flycal/pipeline/json_renderer.rb

Overview

Pretty-printed JSON output for search (API / tooling friendly).

Constant Summary

Constants inherited from Renderer

Renderer::FORMATS

Instance Method Summary collapse

Methods inherited from Renderer

for

Instance Method Details

#render(params) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/flycal/pipeline/json_renderer.rb', line 9

def render(params)
  payload = {
    "params" => build_params(params),
    "info" => build_info(params),
    "text" => lines_for_output(TextRenderer.new.render(params)),
    "items" => Array(params[:events]).map { |ev| serialize_event(ev) },
    "groups" => build_groups(params)
  }

  JSON.pretty_generate(payload) + "\n"
end