From b71b68e55f6550345dec2dc06994399150d8f9fc Mon Sep 17 00:00:00 2001 From: Benjamin Kellermann Date: Thu, 19 Nov 2009 19:22:33 +0100 Subject: atom_single -> atom --- atom.rb | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100755 atom.rb (limited to 'atom.rb') diff --git a/atom.rb b/atom.rb new file mode 100755 index 0000000..b07faa1 --- /dev/null +++ b/atom.rb @@ -0,0 +1,44 @@ +#!/usr/bin/env ruby + +################################ +# Author: Benjamin Kellermann # +# License: CC-by-sa 3.0 # +# see License # +################################ + +require "rubygems" +require "atom" +require "yaml" +require "cgi" +require "time" + +$cgi = CGI.new + + +feed = Atom::Feed.new +olddir = File.expand_path(".") +Dir.chdir("..") +load "config.rb" +require "poll" +Dir.chdir(olddir) + +poll = YAML::load_file("data.yaml") + +feed.title = poll.name +feed.id = "urn:dudle:#{poll.class}:#{poll.name}" +feed.updated = File.new("data.yaml").mtime +feed.authors << Atom::Person.new(:name => 'dudle automatic notificator') +feed.links << Atom::Link.new(:href => SITEURL + "atom.cgi", :rel => "self") + +log = VCS.longhistory "." +log.each {|rev,time,comment| + feed.entries << Atom::Entry.new do |e| + e.title = comment + e.links << Atom::Link.new(:href => "#{SITEURL}?revision=#{rev}") + e.id = "urn:#{poll.class}:#{poll.name}:rev=#{rev}" + e.updated = time + end +} + + +$cgi.out("type" => "application/atom+xml"){ feed.to_xml } -- cgit v1.2.3