Module: ResumeStylist::JSONResume

Defined in:
lib/resume-stylist/resume/json.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.date_helper(d) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/resume-stylist/resume/json.rb', line 4

def self.date_helper(d)
  return unless d

  date ||= (Date.strptime(d, '%Y-%m-%d') rescue nil)
  date ||= (Date.strptime(d, '%Y-%m')    rescue nil)
  date ||= (Date.strptime(d, '%Y')       rescue nil)

  return date
end

.downcase_keys_helper(h) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/resume-stylist/resume/json.rb', line 14

def self.downcase_keys_helper(h)
  case h
  when Hash
    h = h.dup
    h.keys.each do |key|
      new_key = key.downcase
      val = h.delete(key)
      h[new_key] = downcase_keys_helper(val)
    end
  when Array
    return h.map {|e| downcase_keys_helper(e) }
  end

  return h
end

.handles?(resume_format) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/resume-stylist/resume/json.rb', line 30

def self.handles?(resume_format)
  resume_format.to_s.downcase == "json"
end

Instance Method Details

#load!(input) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/resume-stylist/resume/json.rb', line 34

def load!(input)
  data = Yajl::Parser.parse(input)

  # Fix dates, since they're just strings now
  [ data["work"], data["volunteer"], data["education"] ].each do |set|
    set.each do |e|
      e["startDate"] = JSONResume.date_helper(e["startDate"])
      e["endDate"] = JSONResume.date_helper(e["endDate"])
    end
  end

  data["publications"].each {|e| e["releaseDate"] = JSONResume.date_helper(e["releaseDate"]) }
  data["awards"].each {|e| e["date"] = JSONResume.date_helper(e["date"]) }

  @data = JSONResume.downcase_keys_helper(data)
end