Class: WickedPdf::Renderer

Inherits:
Object
  • Object
show all
Defined in:
lib/wicked_pdf/renderer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(controller) ⇒ Renderer

Returns a new instance of Renderer.



5
6
7
8
# File 'lib/wicked_pdf/renderer.rb', line 5

def initialize(controller)
  @controller = controller
  @hf_tempfiles = []
end

Instance Attribute Details

#controllerObject (readonly)

Returns the value of attribute controller.



3
4
5
# File 'lib/wicked_pdf/renderer.rb', line 3

def controller
  @controller
end

Instance Method Details

#cleanupObject



42
43
44
# File 'lib/wicked_pdf/renderer.rb', line 42

def cleanup
  clean_temp_files
end

#prepare(options) ⇒ Object

Renders the template and any header/footer templates WITHOUT invoking wkhtmltopdf, returning { html:, options: } suitable for Document#pdfs_from_strings. Header/footer tempfiles referenced by the returned options stay alive until #cleanup is called, which must happen after the PDFs have been generated.

Defaults (layout, template) match #render's render :pdf path, so a prepared document converts identically to a single render.



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/wicked_pdf/renderer.rb', line 29

def prepare(options)
  options = WickedPdf.config.default_options.merge(options)
  options[:basic_auth] = set_basic_auth(options)
  options.delete(:pdf)
  options[:layout] ||= false
  options[:template] ||= File.join(controller.controller_path, controller.action_name)

  {
    html: controller.render_to_string(render_options(options)),
    options: prerender_header_and_footer(options)
  }
end

#render(options) ⇒ Object



10
11
12
13
# File 'lib/wicked_pdf/renderer.rb', line 10

def render(options)
  options[:basic_auth] = set_basic_auth(options)
  make_and_send_pdf(options.delete(:pdf), WickedPdf.config.default_options.merge(options))
end

#render_to_string(options) ⇒ Object



15
16
17
18
19
# File 'lib/wicked_pdf/renderer.rb', line 15

def render_to_string(options)
  options[:basic_auth] = set_basic_auth(options)
  options.delete :pdf
  make_pdf(WickedPdf.config.default_options.merge(options))
end