class Resuby::Resume
Attributes
contact_info[R]
name[R]
profile[R]
sections[R]
template[R]
Public Class Methods
new()
click to toggle source
# File lib/resuby/resume/resume.rb, line 10 def initialize @template = File.read(File.join(__dir__, '../templates/resume.erb')) end
Public Instance Methods
compile_styles()
click to toggle source
# File lib/resuby/resume/resume.rb, line 48 def compile_styles options = { cache: true, syntax: :scss, style: :compressed, } scss_file = File.join(__dir__, '../css/main.scss') render = Sass::Engine.new(File.read(scss_file), options).render Dir.mkdir(File.join(Dir.pwd, 'css'), 0755) unless File.directory?(File.join(Dir.pwd, 'css')) File.write(File.join(Dir.pwd, 'css/main.css'), render) end
read_source(source, extension = nil)
click to toggle source
# File lib/resuby/resume/resume.rb, line 14 def read_source(source, extension = nil) puts "Reading in data from #{source}" ext = extension || File.extname(source) resume_data = case ext when '.yaml', '.yml' YAML.load_file(source) when '.json' JSON.parse(File.read(source)) else puts 'File type not supported' exit 1 end store_data(resume_data) end
render()
click to toggle source
# File lib/resuby/resume/resume.rb, line 37 def render ERB.new(self.template, nil, '-').result( binding ) end
save_resume(file)
click to toggle source
# File lib/resuby/resume/resume.rb, line 41 def save_resume(file) puts "Saving your resume at #{file}" File.open(file, "w+") do |f| f.write(render) end end
store_data(data)
click to toggle source
# File lib/resuby/resume/resume.rb, line 30 def store_data(data) @name = data['name'] @contact_info = data['contact'] @profile = data['profile'] @sections = data.reject { |key, value| ['name', 'contact', 'profile'].include?(key) } end