TwP-webby 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/History.txt +13 -0
  2. data/Manifest.txt +44 -34
  3. data/Rakefile +2 -2
  4. data/bin/webby +33 -0
  5. data/bin/webby-gen +33 -0
  6. data/examples/presentation/content/presentation/s5/bodybg.gif +0 -0
  7. data/examples/presentation/content/presentation/s5/print.css +25 -1
  8. data/examples/webby/content/release-notes/rel-0-9-3/index.txt +47 -0
  9. data/lib/webby/apps/generator.rb +41 -48
  10. data/lib/webby/apps/main.rb +22 -0
  11. data/lib/webby/auto_builder.rb +78 -6
  12. data/lib/webby/builder.rb +9 -9
  13. data/lib/webby/core_ext/kernel.rb +5 -0
  14. data/lib/webby/filters/wiki_words.rb +14 -0
  15. data/lib/webby/helpers/url_helper.rb +6 -0
  16. data/lib/webby/journal.rb +126 -0
  17. data/lib/webby/renderer.rb +11 -6
  18. data/lib/webby/resources/meta_file.rb +8 -5
  19. data/lib/webby/stelan/paginator.rb +2 -2
  20. data/lib/webby/tasks/growl.rake +4 -3
  21. data/lib/webby.rb +3 -10
  22. data/spec/data/outline/basic.out +81 -0
  23. data/spec/data/outline/basic.txt +25 -0
  24. data/spec/data/outline/no_clobber.out +86 -0
  25. data/spec/data/outline/numbering.out +81 -0
  26. data/spec/data/outline/numbering_only.out +21 -0
  27. data/spec/data/outline/toc_range_1.out +66 -0
  28. data/spec/data/outline/toc_range_2.out +55 -0
  29. data/spec/data/outline/toc_style.out +81 -0
  30. data/spec/data/{Sitefile → site/Sitefile} +0 -0
  31. data/spec/data/{content → site/content}/_partial.txt +0 -0
  32. data/spec/data/{content → site/content}/css/coderay.css +0 -0
  33. data/spec/data/{content → site/content}/css/site.css +0 -0
  34. data/spec/data/{content → site/content}/css/tumblog.css +0 -0
  35. data/spec/data/{content → site/content}/images/tumblog/permalink.gif +0 -0
  36. data/spec/data/{content → site/content}/images/tumblog/rss.gif +0 -0
  37. data/spec/data/{content → site/content}/index.txt +0 -0
  38. data/spec/data/{content → site/content}/photos.txt +0 -0
  39. data/spec/data/{content → site/content}/tumblog/200806/the-noble-chicken/index.txt +0 -0
  40. data/spec/data/{content → site/content}/tumblog/200807/historical-perspectives-on-the-classic-chicken-joke/index.txt +0 -0
  41. data/spec/data/{content → site/content}/tumblog/200807/mad-city-chickens/index.txt +0 -0
  42. data/spec/data/{content → site/content}/tumblog/200807/the-wisdom-of-the-dutch/index.txt +0 -0
  43. data/spec/data/{content → site/content}/tumblog/200807/up-a-tree/index.txt +0 -0
  44. data/spec/data/{content → site/content}/tumblog/index.txt +0 -0
  45. data/spec/data/{content → site/content}/tumblog/rss.txt +0 -0
  46. data/spec/data/{layouts → site/layouts}/default.txt +0 -0
  47. data/spec/data/{layouts → site/layouts}/tumblog/default.txt +0 -0
  48. data/spec/data/{layouts → site/layouts}/tumblog/post.txt +0 -0
  49. data/spec/data/{lib → site/lib}/breadcrumbs.rb +0 -0
  50. data/spec/data/{lib → site/lib}/tumblog_helper.rb +0 -0
  51. data/spec/data/{tasks → site/tasks}/tumblog.rake +0 -0
  52. data/spec/data/{templates → site/templates}/_partial.erb +0 -0
  53. data/spec/data/{templates → site/templates}/atom_feed.erb +0 -0
  54. data/spec/data/{templates → site/templates}/page.erb +0 -0
  55. data/{examples/website → spec/data/site}/templates/presentation.erb +0 -0
  56. data/spec/data/{templates → site/templates}/tumblog/conversation.erb +0 -0
  57. data/spec/data/{templates → site/templates}/tumblog/link.erb +0 -0
  58. data/spec/data/{templates → site/templates}/tumblog/photo.erb +0 -0
  59. data/spec/data/{templates → site/templates}/tumblog/post.erb +0 -0
  60. data/spec/data/{templates → site/templates}/tumblog/quote.erb +0 -0
  61. data/spec/spec_helper.rb +4 -4
  62. data/spec/webby/apps/generator_spec.rb +3 -2
  63. data/spec/webby/filters/basepath_spec.rb +167 -0
  64. data/spec/webby/filters/outline_spec.rb +92 -0
  65. data/spec/webby/renderer_spec.rb +1 -1
  66. data/spec/webby/resources/db_spec.rb +1 -1
  67. data/spec/webby/resources/layout_spec.rb +1 -1
  68. data/spec/webby/resources/meta_file_spec.rb +27 -13
  69. data/spec/webby/resources/page_spec.rb +1 -1
  70. data/spec/webby/resources/resource_spec.rb +1 -1
  71. data/spec/webby/resources_spec.rb +1 -1
  72. data/tasks/gem.rake +93 -32
  73. data/tasks/manifest.rake +3 -4
  74. data/tasks/rubyforge.rake +2 -4
  75. metadata +67 -57
  76. data/lib/webby/stelan/spawner.rb +0 -339
  77. data/lib/webby/tasks/heel.rake +0 -28
  78. data/spec/data/templates/presentation.erb +0 -40
@@ -0,0 +1,66 @@
1
+ <ol>
2
+ <li>
3
+ <a href="#h1">First Header</a>
4
+ <ol>
5
+ <li>
6
+ <a href="#h1_1">Second Header</a>
7
+ </li>
8
+ <li>
9
+ <a href="#h1_2">Third Header</a>
10
+ </li>
11
+ </ol>
12
+ </li>
13
+ <li>
14
+ <a href="#h2">Fourth Header</a>
15
+ </li>
16
+ <li>
17
+ <a href="#h3">Fifth Header</a>
18
+ <ol>
19
+ <li>
20
+ <a href="#h3_1">Sixth Header</a>
21
+ <ol>
22
+ <li>
23
+ <a href="#h3_1_1">Seventh Header</a>
24
+ </li>
25
+ </ol>
26
+ </li>
27
+ <li>
28
+ <a href="#h3_2">Eleventh Header</a>
29
+ <ol>
30
+ <li>
31
+ <a href="#h3_2_1">Twelfth Header</a>
32
+ </li>
33
+ <li>
34
+ <a href="#h3_2_2">Thirteenth Header</a>
35
+ </li>
36
+ </ol>
37
+ </li>
38
+ </ol>
39
+ </li>
40
+ <li>
41
+ <a href="#h4">Fourteenth Header</a>
42
+ <ol>
43
+ <li>
44
+ <a href="#h4_1">Fifteenth Header</a>
45
+ </li>
46
+ </ol></li></ol>
47
+
48
+ <h1 id="h1"><span class="heading-num">1</span>First Header</h1>
49
+ <h2 id="h1_1"><span class="heading-num">1.1</span>Second Header</h2>
50
+ <h2 id="h1_2"><span class="heading-num">1.2</span>Third Header</h2>
51
+
52
+ <h1 id="h2"><span class="heading-num">2</span>Fourth Header</h1>
53
+
54
+ <h1 id="h3"><span class="heading-num">3</span>Fifth Header</h1>
55
+ <h2 id="h3_1"><span class="heading-num">3.1</span>Sixth Header</h2>
56
+ <h3 id="h3_1_1"><span class="heading-num">3.1.1</span>Seventh Header</h3>
57
+ <h4>Eighth Header</h4>
58
+ <h5>Ninth Header</h5>
59
+ <h6>Tenth Header</h6>
60
+
61
+ <h2 id="h3_2"><span class="heading-num">3.2</span>Eleventh Header</h2>
62
+ <h3 id="h3_2_1"><span class="heading-num">3.2.1</span>Twelfth Header</h3>
63
+ <h3 id="h3_2_2"><span class="heading-num">3.2.2</span>Thirteenth Header</h3>
64
+
65
+ <h1 id="h4"><span class="heading-num">4</span>Fourteenth Header</h1>
66
+ <h2 id="h4_1"><span class="heading-num">4.1</span>Fifteenth Header</h2>
@@ -0,0 +1,55 @@
1
+ <ol>
2
+ <li>
3
+ <a href="#h1">Second Header</a>
4
+ </li>
5
+ <li>
6
+ <a href="#h2">Third Header</a>
7
+ </li>
8
+ <li>
9
+ <a href="#h3">Sixth Header</a>
10
+ <ol>
11
+ <li>
12
+ <a href="#h3_1">Seventh Header</a>
13
+ <ol>
14
+ <li>
15
+ <a href="#h3_1_1">Eighth Header</a>
16
+ </li>
17
+ </ol>
18
+ </li>
19
+ </ol>
20
+ </li>
21
+ <li>
22
+ <a href="#h4">Eleventh Header</a>
23
+ <ol>
24
+ <li>
25
+ <a href="#h4_1">Twelfth Header</a>
26
+ </li>
27
+ <li>
28
+ <a href="#h4_2">Thirteenth Header</a>
29
+ </li>
30
+ </ol>
31
+ </li>
32
+ <li>
33
+ <a href="#h5">Fifteenth Header</a>
34
+ </li>
35
+ </ol>
36
+
37
+ <h1>First Header</h1>
38
+ <h2 id="h1"><span class="heading-num">1</span>Second Header</h2>
39
+ <h2 id="h2"><span class="heading-num">2</span>Third Header</h2>
40
+
41
+ <h1>Fourth Header</h1>
42
+
43
+ <h1>Fifth Header</h1>
44
+ <h2 id="h3"><span class="heading-num">3</span>Sixth Header</h2>
45
+ <h3 id="h3_1"><span class="heading-num">3.1</span>Seventh Header</h3>
46
+ <h4 id="h3_1_1"><span class="heading-num">3.1.1</span>Eighth Header</h4>
47
+ <h5>Ninth Header</h5>
48
+ <h6>Tenth Header</h6>
49
+
50
+ <h2 id="h4"><span class="heading-num">4</span>Eleventh Header</h2>
51
+ <h3 id="h4_1"><span class="heading-num">4.1</span>Twelfth Header</h3>
52
+ <h3 id="h4_2"><span class="heading-num">4.2</span>Thirteenth Header</h3>
53
+
54
+ <h1>Fourteenth Header</h1>
55
+ <h2 id="h5"><span class="heading-num">5</span>Fifteenth Header</h2>
@@ -0,0 +1,81 @@
1
+ <ul>
2
+ <li>
3
+ <a href="#h1">First Header</a>
4
+ <ul>
5
+ <li>
6
+ <a href="#h1_1">Second Header</a>
7
+ </li>
8
+ <li>
9
+ <a href="#h1_2">Third Header</a>
10
+ </li>
11
+ </ul>
12
+ </li>
13
+ <li>
14
+ <a href="#h2">Fourth Header</a>
15
+ </li>
16
+ <li>
17
+ <a href="#h3">Fifth Header</a>
18
+ <ul>
19
+ <li>
20
+ <a href="#h3_1">Sixth Header</a>
21
+ <ul>
22
+ <li>
23
+ <a href="#h3_1_1">Seventh Header</a>
24
+ <ul>
25
+ <li>
26
+ <a href="#h3_1_1_1">Eighth Header</a>
27
+ <ul>
28
+ <li>
29
+ <a href="#h3_1_1_1_1">Ninth Header</a>
30
+ <ul>
31
+ <li>
32
+ <a href="#h3_1_1_1_1_1">Tenth Header</a>
33
+ </li>
34
+ </ul>
35
+ </li>
36
+ </ul>
37
+ </li>
38
+ </ul>
39
+ </li>
40
+ </ul>
41
+ </li>
42
+ <li>
43
+ <a href="#h3_2">Eleventh Header</a>
44
+ <ul>
45
+ <li>
46
+ <a href="#h3_2_1">Twelfth Header</a>
47
+ </li>
48
+ <li>
49
+ <a href="#h3_2_2">Thirteenth Header</a>
50
+ </li>
51
+ </ul>
52
+ </li>
53
+ </ul>
54
+ </li>
55
+ <li>
56
+ <a href="#h4">Fourteenth Header</a>
57
+ <ul>
58
+ <li>
59
+ <a href="#h4_1">Fifteenth Header</a>
60
+ </li>
61
+ </ul></li></ul>
62
+
63
+ <h1 id="h1"><span class="heading-num">1</span>First Header</h1>
64
+ <h2 id="h1_1"><span class="heading-num">1.1</span>Second Header</h2>
65
+ <h2 id="h1_2"><span class="heading-num">1.2</span>Third Header</h2>
66
+
67
+ <h1 id="h2"><span class="heading-num">2</span>Fourth Header</h1>
68
+
69
+ <h1 id="h3"><span class="heading-num">3</span>Fifth Header</h1>
70
+ <h2 id="h3_1"><span class="heading-num">3.1</span>Sixth Header</h2>
71
+ <h3 id="h3_1_1"><span class="heading-num">3.1.1</span>Seventh Header</h3>
72
+ <h4 id="h3_1_1_1"><span class="heading-num">3.1.1.1</span>Eighth Header</h4>
73
+ <h5 id="h3_1_1_1_1"><span class="heading-num">3.1.1.1.1</span>Ninth Header</h5>
74
+ <h6 id="h3_1_1_1_1_1"><span class="heading-num">3.1.1.1.1.1</span>Tenth Header</h6>
75
+
76
+ <h2 id="h3_2"><span class="heading-num">3.2</span>Eleventh Header</h2>
77
+ <h3 id="h3_2_1"><span class="heading-num">3.2.1</span>Twelfth Header</h3>
78
+ <h3 id="h3_2_2"><span class="heading-num">3.2.2</span>Thirteenth Header</h3>
79
+
80
+ <h1 id="h4"><span class="heading-num">4</span>Fourteenth Header</h1>
81
+ <h2 id="h4_1"><span class="heading-num">4.1</span>Fifteenth Header</h2>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/spec/spec_helper.rb CHANGED
@@ -13,13 +13,13 @@ require File.expand_path(
13
13
  Spec::Runner.configure do |config|
14
14
  config.before :all do
15
15
  @pwd = Dir.pwd
16
- Dir.chdir Webby.datapath
17
- FileUtils.mkdir_p Webby.datapath(::Webby.site.output_dir)
16
+ Dir.chdir Webby.datapath('site')
17
+ FileUtils.mkdir_p Webby.datapath('site', ::Webby.site.output_dir)
18
18
  end
19
19
 
20
20
  config.after :all do
21
- FileUtils.rm_rf(Webby.datapath(::Webby.cairn))
22
- FileUtils.rm_rf(Dir.glob(Webby.datapath %w[output *]))
21
+ FileUtils.rm_rf(Webby.datapath('site', ::Webby.cairn))
22
+ FileUtils.rm_rf(Dir.glob(Webby.datapath(%w[site output *])))
23
23
  Dir.chdir @pwd
24
24
  end
25
25
 
@@ -55,8 +55,9 @@ describe Webby::Apps::Generator do
55
55
 
56
56
  before :each do
57
57
  @strio = StringIO.new
58
- @generator = Webby::Apps::Generator.new
59
- @generator.instance_variable_set(:@stdout, @strio)
58
+ ::Logging::Logger['Webby::Journal'].appenders =
59
+ ::Logging::Appenders::IO.new('test', @strio)
60
+ @generator = Webby::Apps::Generator.new(@strio)
60
61
 
61
62
  class << @strio
62
63
  def to_s
@@ -0,0 +1,167 @@
1
+
2
+ require ::File.expand_path(
3
+ ::File.join(::File.dirname(__FILE__), %w[.. .. spec_helper]))
4
+
5
+ # ---------------------------------------------------------------------------
6
+ describe Webby::Filters::BasePath do
7
+
8
+ before :all do
9
+ @input = <<-HTML
10
+ <html>
11
+ <head>
12
+ %s
13
+ </head>
14
+ <body>
15
+ %s
16
+ </body>
17
+ </html>
18
+ HTML
19
+ end
20
+
21
+ before :each do
22
+ Webby.site.base = nil
23
+ @xpaths = Webby.site.xpaths.dup
24
+ end
25
+
26
+ after :each do
27
+ Webby.site.xpaths = @xpaths
28
+ end
29
+
30
+ it 'raises an exception if a new base has not been specified' do
31
+ input = @input % ['', '<img src="/foo/picture.jpg" />']
32
+ bp = Webby::Filters::BasePath.new(input, 'html')
33
+
34
+ lambda {bp.filter}.
35
+ should raise_error(TypeError, "can't convert nil into String")
36
+ end
37
+
38
+ it 'changes nothing with an empty base path' do
39
+ Webby.site.base = ''
40
+ input = @input % ['', '<img src="/foo/picture.jpg" />']
41
+
42
+ bp = Webby::Filters::BasePath.new(input, 'html')
43
+ bp.filter.should == <<-HTML
44
+ <html>
45
+ <head>
46
+
47
+ </head>
48
+ <body>
49
+ <img src="/foo/picture.jpg" />
50
+ </body>
51
+ </html>
52
+ HTML
53
+ end
54
+
55
+ it 'substitutes the base path for xpath values that have a leading slash' do
56
+ Webby.site.base = 'http://example.com'
57
+ input = @input % ['', '<img src="/foo/picture.jpg" />']
58
+
59
+ bp = Webby::Filters::BasePath.new(input, 'html')
60
+ bp.filter.should == <<-HTML
61
+ <html>
62
+ <head>
63
+
64
+ </head>
65
+ <body>
66
+ <img src="http://example.com/foo/picture.jpg" />
67
+ </body>
68
+ </html>
69
+ HTML
70
+ end
71
+
72
+ it 'operates on all entities in the input string' do
73
+ Webby.site.base = 'http://webby.rubyforge.org'
74
+ input = @input % ['', %Q(<img src="/foo/picture.jpg" />\n<a href="/page.html">Page Title</a>)]
75
+
76
+ bp = Webby::Filters::BasePath.new(input, 'html')
77
+ bp.filter.should == <<-HTML
78
+ <html>
79
+ <head>
80
+
81
+ </head>
82
+ <body>
83
+ <img src="http://webby.rubyforge.org/foo/picture.jpg" />
84
+ <a href="http://webby.rubyforge.org/page.html">Page Title</a>
85
+ </body>
86
+ </html>
87
+ HTML
88
+ end
89
+
90
+ it 'only operates on entities defined in the xpaths configuration' do
91
+ Webby.site.xpaths.delete '/html/body//a[@href]'
92
+ Webby.site.base = 'http://webby.rubyforge.org'
93
+ input = @input % ['', %Q(<img src="/foo/picture.jpg" />\n<a href="/page.html">Page Title</a>)]
94
+
95
+ bp = Webby::Filters::BasePath.new(input, 'html')
96
+ bp.filter.should == <<-HTML
97
+ <html>
98
+ <head>
99
+
100
+ </head>
101
+ <body>
102
+ <img src="http://webby.rubyforge.org/foo/picture.jpg" />
103
+ <a href="/page.html">Page Title</a>
104
+ </body>
105
+ </html>
106
+ HTML
107
+ end
108
+
109
+ it 'is restrictive to the configured xpaths' do
110
+ Webby.site.base = 'not a real site'
111
+ input = @input % ['<img src="/foo/picture.jpg" />', '<a href="/page.html">Page Title</a>']
112
+
113
+ bp = Webby::Filters::BasePath.new(input, 'html')
114
+ bp.filter.should == <<-HTML
115
+ <html>
116
+ <head>
117
+ <img src="/foo/picture.jpg" />
118
+ </head>
119
+ <body>
120
+ <a href="not a real site/page.html">Page Title</a>
121
+ </body>
122
+ </html>
123
+ HTML
124
+ end
125
+
126
+ it 'registers a "basepath" filter in the filters module' do
127
+ handler = Webby::Filters._handlers['basepath']
128
+ handler.should_not be_nil
129
+ handler.arity.should == 2
130
+ end
131
+
132
+ it 'leaves the input text unchanged if a base path is not configured' do
133
+ cursor = mock("Cursor")
134
+ page = mock("Page")
135
+ cursor.stub!(:page).and_return(page)
136
+ page.stub!(:extension).and_return('html')
137
+ input = @input % ['', '<img src="/foo/picture.jpg" />']
138
+
139
+ handler = Webby::Filters._handlers['basepath']
140
+ output = handler.call(input, cursor)
141
+
142
+ output.should equal(input)
143
+ end
144
+
145
+ it 'modifies text when a base path is configured' do
146
+ cursor = mock("Cursor")
147
+ page = mock("Page")
148
+ cursor.stub!(:page).and_return(page)
149
+ page.stub!(:extension).and_return('html')
150
+ Webby.site.base = 'http://example.com'
151
+ input = @input % ['', '<img src="/foo/picture.jpg" />']
152
+
153
+ handler = Webby::Filters._handlers['basepath']
154
+ handler.call(input, cursor).should == <<-HTML
155
+ <html>
156
+ <head>
157
+
158
+ </head>
159
+ <body>
160
+ <img src="http://example.com/foo/picture.jpg" />
161
+ </body>
162
+ </html>
163
+ HTML
164
+ end
165
+ end
166
+
167
+ # EOF
@@ -0,0 +1,92 @@
1
+
2
+ require ::File.expand_path(
3
+ ::File.join(::File.dirname(__FILE__), %w[.. .. spec_helper]))
4
+
5
+ # ---------------------------------------------------------------------------
6
+ describe Webby::Filters::Outline do
7
+
8
+ before :all do
9
+ @input = Webby::Resources::MetaFile.read(
10
+ Webby.datapath(%w[outline basic.txt]))
11
+ end
12
+
13
+ it 'should regsiter the outline filter handler' do
14
+ Webby::Filters._handlers['outline'].should_not be_nil
15
+ end
16
+
17
+ it 'generates outline formatting for HTML heading tags' do
18
+ output = File.read(Webby.datapath(%w[outline basic.out]))
19
+
20
+ outline = Webby::Filters::Outline.new(@input)
21
+ outline.filter.should == output
22
+ end
23
+
24
+ it 'starts numbering at an arbitrary value' do
25
+ input = @input.sub(%r/<toc \/>/, '<toc numbering_start="3" />')
26
+ output = File.read(Webby.datapath(%w[outline numbering.out]))
27
+
28
+ outline = Webby::Filters::Outline.new(input)
29
+ outline.filter.should == output
30
+ end
31
+
32
+ it 'limits the range of headers the table of contents covers' do
33
+ input = @input.sub(%r/<toc \/>/, '<toc toc_range="h1-h3" />')
34
+ output = File.read(Webby.datapath(%w[outline toc_range_1.out]))
35
+
36
+ outline = Webby::Filters::Outline.new(input)
37
+ outline.filter.should == output
38
+
39
+ input = @input.sub(%r/<toc \/>/, '<toc toc_range="h2-h4" />')
40
+ output = File.read(Webby.datapath(%w[outline toc_range_2.out]))
41
+
42
+ outline = Webby::Filters::Outline.new(input)
43
+ outline.filter.should == output
44
+ end
45
+
46
+ it 'uses different list styling for the table of contents' do
47
+ input = @input.sub(%r/<toc \/>/, '<toc toc_style="ul" />')
48
+ output = File.read(Webby.datapath(%w[outline toc_style.out]))
49
+
50
+ outline = Webby::Filters::Outline.new(input)
51
+ outline.filter.should == output
52
+ end
53
+
54
+ it 'performs outline numbering without creatng a table of contents' do
55
+ input = @input.sub(%r/<toc \/>/, '')
56
+ output = File.read(Webby.datapath(%w[outline numbering_only.out]))
57
+
58
+ outline = Webby::Filters::Outline.new(input)
59
+ outline.filter.should == output
60
+ end
61
+
62
+ it 'detects mis-ordered heading tags' do
63
+ input = <<-HTML
64
+ <h2>Heading Three</h2>
65
+ <h3>Heading Two</h3>
66
+ <h1>Heading One</h1>
67
+ HTML
68
+ outline = Webby::Filters::Outline.new(input)
69
+
70
+ lambda {outline.filter}.should raise_error(
71
+ Webby::Error, "heading tags are not in order, cannot outline"
72
+ )
73
+ end
74
+
75
+ it 'does not clobber other HTML tags' do
76
+ html = <<-HTML
77
+ <div>
78
+ <p>This is the title</p>
79
+ <toc />
80
+ <p>And some sampler text</p>
81
+ </div>
82
+ HTML
83
+ input = @input.sub(%r/<toc \/>/, html)
84
+ output = File.read(Webby.datapath(%w[outline no_clobber.out]))
85
+
86
+ outline = Webby::Filters::Outline.new(input)
87
+ outline.filter.should == output
88
+ end
89
+
90
+ end
91
+
92
+ # EOF
@@ -6,7 +6,7 @@ require File.expand_path(
6
6
  describe Webby::Renderer do
7
7
  before :each do
8
8
  layout = Webby::Resources::Layout.
9
- new(Webby.datapath %w[layouts tumblog default.txt])
9
+ new(Webby.datapath(%w[site layouts tumblog default.txt]))
10
10
  Webby::Resources.stub!(:find_layout).and_return(layout)
11
11
 
12
12
  @filename = File.join %w[content tumblog index.txt]
@@ -7,7 +7,7 @@ describe Webby::Resources::DB do
7
7
 
8
8
  before :each do
9
9
  layout = Webby::Resources::Layout.
10
- new(Webby.datapath %w[layouts tumblog default.txt])
10
+ new(Webby.datapath %w[site layouts tumblog default.txt])
11
11
  Webby::Resources.stub!(:find_layout).and_return(layout)
12
12
 
13
13
  @db = Webby::Resources::DB.new
@@ -6,7 +6,7 @@ require File.expand_path(
6
6
  describe Webby::Resources::Layout do
7
7
  before :each do
8
8
  layout = Webby::Resources::Layout.
9
- new(Webby.datapath %w[layouts tumblog default.txt])
9
+ new(Webby.datapath %w[site layouts tumblog default.txt])
10
10
  Webby::Resources.stub!(:find_layout).and_return(layout)
11
11
 
12
12
  @default = File.join %w[layouts tumblog default.txt]