Merge commit 'bac34fab3a27a12b35add1ecab409b19941e29a6'

This commit is contained in:
Tom Preston-Werner 2009-01-23 14:22:22 -08:00
commit fc28a907a8
4 changed files with 23 additions and 3 deletions

View File

@ -2,7 +2,7 @@ module Jekyll
class Site
attr_accessor :source, :dest
attr_accessor :layouts, :posts
attr_accessor :layouts, :posts, :categories
# Initialize the site
# +source+ is String path to the source directory containing
@ -16,6 +16,7 @@ module Jekyll
self.dest = dest
self.layouts = {}
self.posts = []
self.categories = Hash.new { |hash, key| hash[key] = Array.new }
end
# Do the actual work of processing the site and generating the
@ -63,6 +64,7 @@ module Jekyll
if Post.valid?(f)
post = Post.new(self.source, dir, f)
self.posts << post
post.categories.each { |c| self.categories[c] << post }
end
end
@ -72,6 +74,7 @@ module Jekyll
end
self.posts.sort!
self.categories.values.map { |cats| cats.sort! { |a, b| b <=> a} }
rescue Errno::ENOENT => e
# ignore missing layout dir
end

View File

@ -0,0 +1,8 @@
---
layout: default
title: Topical Post
---
h1. {{ page.title }}
This post has a topic.

View File

@ -96,6 +96,12 @@ class TestPost < Test::Unit::TestCase
assert_equal "<<< <p>url: /2008/11/21/complex.html<br />\ndate: #{Time.parse("2008-11-21")}<br />\nid: /2008/11/21/complex</p> >>>", p.output
end
def test_categories_and_topics
p = Post.new(File.join(File.dirname(__FILE__), *%w[source]), 'foo', 'bar/2008-12-12-topical-post.textile')
assert_equal ['foo'], p.categories
assert_equal ['bar'], p.topics
end
def test_include
Jekyll.source = File.join(File.dirname(__FILE__), *%w[source])
p = Post.new(File.join(File.dirname(__FILE__), *%w[source]), '', "2008-12-13-include.markdown")

View File

@ -22,9 +22,12 @@ class TestSite < Test::Unit::TestCase
assert_equal 4, @s.posts.size
end
def test_write_posts
def test_site_payload
clear_dest
@s.process
assert_equal 5, @s.posts.length
assert_equal ['foo'], @s.categories.keys
assert_equal 1, @s.categories['foo'].length
end
end