aboutsummaryrefslogtreecommitdiff
path: root/atom_single.rb
diff options
context:
space:
mode:
authorBenjamin Kellermann <Benjamin.Kellermann@gmx.de>2009-07-02 08:33:04 +0200
committerBenjamin Kellermann <Benjamin.Kellermann@gmx.de>2009-07-02 08:33:04 +0200
commit46e8e97a9decde2d0af4d1346bbec33d3d4c89bc (patch)
treec1ff4fba6f1feac95f0158d5f145417a4a21d825 /atom_single.rb
parent6203b064af34f4a0504c2f975867f3bcd0dee06d (diff)
struktur von atom.cgi geƤndert
Diffstat (limited to '')
-rwxr-xr-xatom_single.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/atom_single.rb b/atom_single.rb
new file mode 100755
index 0000000..557c4b0
--- /dev/null
+++ b/atom_single.rb
@@ -0,0 +1,47 @@
+#!/usr/bin/env ruby
+
+################################
+# Author: Benjamin Kellermann #
+# Licence: CC-by-sa 3.0 #
+# see Licence #
+################################
+
+require "rubygems"
+require "atom"
+require "yaml"
+require "cgi"
+require "time"
+load "config.rb"
+
+$cgi = CGI.new
+
+
+feed = Atom::Feed.new
+olddir = File.expand_path(".")
+Dir.chdir("..")
+load "config.rb"
+require "poll"
+require "datepoll"
+require "timepoll"
+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 }