Class: ExcelTemplating::Renderer
- Inherits:
-
Object
- Object
- ExcelTemplating::Renderer
- Extended by:
- Forwardable
- Defined in:
- lib/excel_templating/renderer.rb
Overview
Render class for ExcelTemplating Documents. Used by the Document to render the defined document with the data to a new file. Responsible for reading the template and applying the data to it
Defined Under Namespace
Classes: MustacheRenderer
Instance Method Summary collapse
-
#initialize(document) ⇒ Renderer
constructor
A new instance of Renderer.
-
#render {|spreadsheet.path| ... } ⇒ Object
Render the document provided.
Constructor Details
#initialize(document) ⇒ Renderer
Returns a new instance of Renderer.
11 12 13 14 |
# File 'lib/excel_templating/renderer.rb', line 11 def initialize(document) @template_document = document @data_source_registry = document.class.data_source_registry end |
Instance Method Details
#render {|spreadsheet.path| ... } ⇒ Object
Render the document provided. Yields the path to the tempfile created.
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/excel_templating/renderer.rb', line 17 def render @spreadsheet = ExcelAbstraction::SpreadSheet.new(format: :xlsx) @template = Roo::Spreadsheet.open(template_path) @registry_renderer = data_source_registry.renderer(data: data[:all_sheets]) apply_document_level_items apply_data_to_sheets protect_spreadsheet registry_renderer.write_sheet(@spreadsheet.workbook) @spreadsheet.close yield(spreadsheet.path) end |