Class: Flycal::Pipeline::Renderer
- Inherits:
-
Object
- Object
- Flycal::Pipeline::Renderer
- Defined in:
- lib/flycal/pipeline/renderer.rb
Overview
Third pipeline layer: render aggregated results to a chosen format.
Direct Known Subclasses
Constant Summary collapse
- FORMATS =
{ "text" => "Flycal::Pipeline::TextRenderer", "json" => "Flycal::Pipeline::JsonRenderer" }.freeze
Class Method Summary collapse
Instance Method Summary collapse
-
#render(params) ⇒ String
Rendered output.
Class Method Details
.for(format) ⇒ Object
12 13 14 15 16 17 18 19 |
# File 'lib/flycal/pipeline/renderer.rb', line 12 def self.for(format) key = format.to_s.strip.downcase key = "text" if key.empty? class_name = FORMATS[key] raise Flycal::Error, "Unsupported format #{format.inspect}. Available: #{FORMATS.keys.join(", ")}" unless class_name Object.const_get(class_name).new end |
Instance Method Details
#render(params) ⇒ String
Returns rendered output.
22 23 24 |
# File 'lib/flycal/pipeline/renderer.rb', line 22 def render(params) raise NotImplementedError, "#{self.class}#render must be implemented" end |