aboutsummaryrefslogtreecommitdiff
blob: 0cd899090097b76569a698256e781067decf1f4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require 'date'

module Gentoo
  class DevawayGenerator < Jekyll::Generator
    DEVAWAY_XML = '_data/devaway.xml'
    # ... @ yyyy/mm/dd HH:MMZ
    DATE_REGEXP = /@ (\d+)\/(\d+)\/(\d+) (\d+):(\d+)Z$/

    def generate(site)
      data = Nokogiri::XML(File.open(DEVAWAY_XML))

      site.data['devaway'] ||= {}
      now = Time.now

      data.xpath('/devaway/dev').each do |dev|
        reason = dev.xpath('./reason/text()').first.content
        date_match = DATE_REGEXP.match(reason)
        reason = date_match.pre_match.rstrip()
        date = Time.utc(*(date_match.captures.map(&:to_i)))
        away_sec = now - date

        site.data['devaway'][dev['nick']] = {
          'reason' => reason,
          'date' => date,
          'away_days' => away_sec / 24 / 3600,
        }
      end
    end
  end
end