class Pdf
Public Class Methods
new(yaml_file)
click to toggle source
# File lib/cv/generator/pdf.rb, line 7 def initialize(yaml_file) @yaml_file = yaml_file @css_files = [] end
Public Instance Methods
generate()
click to toggle source
# File lib/cv/generator/pdf.rb, line 12 def generate load_data generate_html generate_pdf ensure @html_file.close && @html_file.unlink if @html_file @css_files.each do |css_file| css_file.close css_file.unlink end if @css_files end
Private Instance Methods
copy_css_templates()
click to toggle source
# File lib/cv/generator/pdf.rb, line 31 def copy_css_templates Dir[File.join(File.dirname(__FILE__), '../../../templates/simple/css/*')].each do |css_file| tmp = Tempfile.new([File.basename(css_file, '.css'), '.css']) tmp.write(File.read(css_file)) @css_files << tmp end @erb_data.css_paths = @css_files.map(&:path) end
generate_html()
click to toggle source
# File lib/cv/generator/pdf.rb, line 41 def generate_html copy_css_templates template = ERB.new(File.read(File.join(File.dirname(__FILE__), '../../../templates/simple/index.html.erb')), nil, '-') @html_file = Tempfile.new(['cv', '.html']) @html_file.write(template.result(@erb_data.get_binding)) @html_file.flush end
generate_pdf()
click to toggle source
# File lib/cv/generator/pdf.rb, line 51 def generate_pdf system("wkhtmltopdf -q #{@html_file.path} cv.pdf") end
load_data()
click to toggle source
# File lib/cv/generator/pdf.rb, line 27 def load_data @erb_data = Cv::Generator::ErbData.new(YAML.load_file(@yaml_file)) end