2006-11-25 00:51:36 -05:00
|
|
|
require 'rubygems'
|
|
|
|
require 'atom/collection'
|
|
|
|
require 'find'
|
|
|
|
require 'yaml'
|
|
|
|
require 'redcloth'
|
|
|
|
|
|
|
|
$site ="http://mongrel.rubyforge.org/"
|
|
|
|
|
|
|
|
zed = Atom::Author.new
|
|
|
|
zed.name = "Zed A. Shaw"
|
|
|
|
zed.uri = $site
|
|
|
|
zed.email = "zedNOSPAMshaw A-T zedNOSPAMshaw.com"
|
|
|
|
|
|
|
|
|
|
|
|
f = Atom::Feed.new
|
|
|
|
f.id = $site
|
|
|
|
f.authors << zed
|
|
|
|
|
|
|
|
link = Atom::Link.new
|
|
|
|
link["href"] = $site + "/feed.atom"
|
|
|
|
link["rel"] = "self"
|
|
|
|
f.links << link
|
|
|
|
link = Atom::Link.new
|
|
|
|
link["href"] = $site
|
|
|
|
link["rel"] = "via"
|
|
|
|
f.links << link
|
|
|
|
|
|
|
|
f.title = "Mongrel Web Server"
|
|
|
|
f.subtitle = "Faster Is Possible"
|
|
|
|
f.updated = Time.now
|
|
|
|
f.generator = "atom-tools"
|
|
|
|
f.rights = "Copyright Zed A. Shaw with contributors. All rights reserved."
|
|
|
|
|
|
|
|
class Page
|
|
|
|
attr_accessor :path
|
|
|
|
attr_accessor :stat
|
|
|
|
attr_accessor :uri
|
|
|
|
attr_accessor :info
|
|
|
|
|
|
|
|
def initialize(path)
|
|
|
|
@path = path
|
|
|
|
@stat = File.stat(path)
|
|
|
|
@uri = $site + path.match(/^src(.*)\.page/)[1] + ".html"
|
|
|
|
@info = YAML.load_file(path)
|
|
|
|
end
|
|
|
|
|
|
|
|
def <=>(other)
|
|
|
|
other.stat.mtime <=> self.stat.mtime
|
|
|
|
end
|
|
|
|
|
|
|
|
def to_html
|
|
|
|
if not @html
|
|
|
|
content = open(path) { |f| f.read(1024) }
|
|
|
|
content.gsub!(/^---.*---/m,"")
|
|
|
|
content = content + "...\n\"Read more\":#{uri}"
|
|
|
|
r = RedCloth.new(content)
|
|
|
|
@html = r.to_html
|
|
|
|
end
|
|
|
|
|
|
|
|
@html
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
pages = []
|
|
|
|
|
|
|
|
Find.find("src") do |path|
|
2006-11-25 01:13:45 -05:00
|
|
|
if /.page$/ === path and !path.index("index.page")
|
2006-11-25 00:51:36 -05:00
|
|
|
pages << Page.new(path)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
pages.sort!
|
|
|
|
|
|
|
|
pages[0 .. 30].each do |p|
|
|
|
|
e = Atom::Entry.new
|
|
|
|
e.id = p.uri
|
|
|
|
e.title = p.info["title"]
|
|
|
|
link = Atom::Link.new
|
|
|
|
link["href"] = p.uri
|
|
|
|
e.links << link
|
|
|
|
e.updated = p.stat.mtime
|
|
|
|
f.entries << e
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
puts f.to_s
|