class Resume::LatexBackend

Constants

ESCAPING_RULES

Public Class Methods

render(resume) click to toggle source

Returns a LaTeX document for the supplied resume and options @param [resume] The resume information @param [Hash] options Options @return [String] A LaTeX document

# File lib/resume/latex.rb, line 24
def render resume
  context = {:resume_class => File.dirname(__FILE__) + "/templates/resume"}

  vars = [:about, :schools, :jobs, :sections]
  vars.each do |name|
    var = nil
    if values = resume.send(name)
      if values.is_a? Array
        var = []
        values.each do |a|
          var << {}
          a.each do |k, v|
            var[-1][k] = escape v
          end
        end
      else
        var = {}
        values.each do |k, v|
          var[k] = escape v
        end
      end
      context[name] = var
    end
  end
  template = File.open(File.dirname(__FILE__) + "/templates/latex.tex.erb").read

  Erubis::Eruby.new(template).evaluate(context)
end

Private Class Methods

escape(s) click to toggle source
# File lib/resume/latex.rb, line 54
def escape s
  ESCAPING_RULES.each do |from, to|
    if s.is_a? Array
      s = s.map{|x| x.gsub(from, to)}
    else
      s = s.gsub(from, to)
    end
  end
  s
end