rote 0.3.2 → 0.3.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  # Standard Rakefile for custom Rote build
2
2
  #
3
3
  # Generated from:
4
- # $Id: Rakefile 143 2005-12-14 19:01:05 +0000 (Wed, 14 Dec 2005) roscopeco $
4
+ # $Id: Rakefile 150 2006-01-02 00:39:41 +0000 (Mon, 02 Jan 2006) roscopeco $
5
5
  #
6
6
  begin
7
7
  require 'rubygems'
@@ -3,7 +3,7 @@
3
3
  # (c)2005 Ross Bamford (and contributors)
4
4
  #
5
5
  # See 'rote.rb' or LICENSE for licence information.
6
- # $Id: rotetasks.rb 128 2005-12-12 02:45:24 +0000 (Mon, 12 Dec 2005) roscopeco $
6
+ # $Id: rotetasks.rb 170 2006-01-11 23:38:51 +0000 (Wed, 11 Jan 2006) roscopeco $
7
7
  #++
8
8
  require 'rake'
9
9
  require 'rake/tasklib'
@@ -317,18 +317,30 @@ module Rote
317
317
  end #class
318
318
  end #module
319
319
 
320
- ## The +monitor+ task requires a few mods to Rake to let us fire
321
- ## and reset task invocations in a loop.
322
- module Rake # :nodoc: all
320
+ #####
321
+ ## Rote adds the following methods to the Rake module.
322
+ ## All this cool stuff was contributed by Jonathan Paisley (<jp-www at dcs gla ac uk>)
323
+ module Rake
324
+
325
+ #####
326
+ ## Rote adds the following methods to the Rake::Task class.
323
327
  class Task
328
+ # Reset the _executed_ and _invoked_ flags on this task.
329
+ # Used by the +monitor+ task.
324
330
  def reset
325
331
  @already_invoked = false
326
332
  @executed = false
327
333
  end
334
+
335
+ # Determine whether this task has been executed in this cycle.
336
+ # Used by the +monitor+ task.
328
337
  def executed?
329
338
  @executed
330
339
  end
340
+
331
341
  alias :pre_rote_execute :execute
342
+ # Execute the task, setting the _executed_ flag.
343
+ # Used by the +monitor+ task.
332
344
  def execute
333
345
  @executed = true
334
346
  pre_rote_execute
@@ -1 +1 @@
1
- this: '<%= @content_for_layout %>'
1
+ with nested: '<%= @content_for_layout %>'
@@ -0,0 +1 @@
1
+ layout 'withext.ext'
@@ -0,0 +1,11 @@
1
+ # This should *override* the layout specified by the preceeding
2
+ # COMMON.rb, i.e. nested layout CANNOT be specified from COMMON,
3
+ # This is intentional - COMMON.rb code always overrides the
4
+ # COMMON.rb code from above. Nested layout only happens when
5
+ # 'layout' is called from page or layout code.
6
+
7
+ # Obviously we can specify a layout here that uses nesting, since
8
+ # the actual nesting doesn't happen until layout is run. If the
9
+ # page goes on to specify a layout, however, it will override
10
+ # this one (as with this test).
11
+ layout 'simple'
@@ -0,0 +1,3 @@
1
+ <%# override the COMMON.rb layout with a nested layout #%>
2
+ <% layout 'nestme' %>
3
+ Some text
@@ -9,6 +9,8 @@ $LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__),'../lib'))
9
9
  require 'rake'
10
10
  require 'rote/cache'
11
11
 
12
+ Rake.cache_enabled = false
13
+
12
14
  module Rote
13
15
  class TestCache < Test::Unit::TestCase
14
16
 
@@ -29,19 +31,26 @@ module Rote
29
31
  end
30
32
 
31
33
  def test_rake_task_stack
34
+ innerex, outerex = false, false
32
35
  assert_equal [], Rake.task_stack
33
36
 
34
37
  outertask = task :outertask do
35
- assert_equal ['outertask'], Rake.task_stack
38
+ assert_equal ['outertask'], Rake.task_stack.map { |t| t.name }
36
39
 
37
- innertask = task :innertask do
38
- assert_equal ['outertask', 'innertask'], Rake.task_stack
40
+ innertask = task :innertask do
41
+ assert_equal ['outertask', 'innertask'], Rake.task_stack.map { |t| t.name }
42
+ innerex = true
39
43
  end
40
44
 
41
- assert_equal ['outertask'], Rake.task_stack
45
+ innertask.invoke
46
+ assert_equal ['outertask'], Rake.task_stack.map { |t| t.name }
47
+ outerex = true
42
48
  end
43
49
 
44
- assert_equal [], Rake.task_stack
50
+ outertask.invoke
51
+ assert_equal [], Rake.task_stack.map { |t| t.name }
52
+ assert innerex
53
+ assert outerex
45
54
  end
46
55
 
47
56
  def test_rake_register_dep_cached_deps
@@ -51,12 +60,12 @@ module Rote
51
60
  # there's no current task
52
61
  assert_nil Rake.register_dependency('dep')
53
62
  assert_equal({}, Rake.cached_dependencies)
54
-
63
+
55
64
  testtask = task :test_register_dep do
56
65
  assert_equal(['dep'], Rake.register_dependency('dep'))
57
66
  end
58
67
 
59
- testtask.invoke(false)
68
+ testtask.invoke
60
69
 
61
70
  assert_equal({'test_register_dep' => ['dep']}, Rake.cached_dependencies)
62
71
  end
@@ -67,11 +67,11 @@ EOM
67
67
 
68
68
  SYNEXPECT = <<-EOM
69
69
  <p>Non-code</p>
70
- <pre class='ruby'><code> <span class=\"keyword\">def </span><span class=\"method\">amethod</span><span class=\"punct\">(</span><span class=\"ident\">arg</span><span class=\"punct\">)</span>
70
+ <pre class='ruby'><code class='ruby'> <span class=\"keyword\">def </span><span class=\"method\">amethod</span><span class=\"punct\">(</span><span class=\"ident\">arg</span><span class=\"punct\">)</span>
71
71
  <span class=\"ident\">puts</span> <span class=\"ident\">arg</span>
72
72
  <span class=\"keyword\">end</span></code></pre>
73
73
  <p>More non-code</p>
74
- <pre class='ruby'><code> <span class=\"keyword\">def </span><span class=\"method\">amethod_too</span><span class=\"punct\">(</span><span class=\"ident\">arg</span><span class=\"punct\">)</span>
74
+ <pre class='ruby'><code class='ruby'> <span class=\"keyword\">def </span><span class=\"method\">amethod_too</span><span class=\"punct\">(</span><span class=\"ident\">arg</span><span class=\"punct\">)</span>
75
75
  <span class=\"ident\">puts</span> <span class=\"ident\">arg</span>
76
76
  <span class=\"keyword\">end</span></code></pre>
77
77
  EOM
@@ -70,21 +70,24 @@ module Rote
70
70
  assert_equal 'justtext.txt', p.template_name
71
71
  end
72
72
 
73
- def test_layout_name
73
+ def test_base_layout_name
74
74
  p = new_test_page('justtext')
75
- assert_nil p.layout_name
75
+ assert_nil p.base_layout_name
76
76
 
77
77
  p = new_test_page('withcode')
78
- assert_equal 'simple.txt', p.layout_name
78
+ assert_equal 'simple.txt', p.base_layout_name
79
79
  end
80
80
 
81
81
  def test_layout_names
82
- p = new_test_page('justtext')
83
- assert p.layout_names.empty?
84
-
82
+ # no layout
83
+ p = new_test_page('justtext')
84
+ assert p.layout_names.empty?
85
+
86
+ # with page code
85
87
  p = new_test_page('withcode')
86
88
  assert_equal ['simple.txt'], p.layout_names
87
89
 
90
+ # nested
88
91
  p = new_test_page('nestedlayout')
89
92
  assert_equal ['nestme.txt'], p.layout_names
90
93
 
@@ -99,12 +102,20 @@ module Rote
99
102
  assert_equal 'test/pages/justtext.txt', p.template_filename
100
103
  end
101
104
 
102
- def test_layout_filename
105
+ def test_base_layout_filename
103
106
  p = new_test_page('justtext')
104
- assert_nil p.layout_filename
107
+ assert_nil p.base_layout_filename
105
108
 
106
109
  p = new_test_page('withcode')
107
- assert_equal 'test/layouts/simple.txt', p.layout_filename
110
+ assert_equal 'test/layouts/simple.txt', p.base_layout_filename
111
+
112
+ # nested layout is ignored
113
+ p = new_test_page('nestedlayout')
114
+ assert_equal 'test/layouts/nestme.txt', p.base_layout_filename
115
+
116
+ # even after rendering
117
+ p.render
118
+ assert_equal 'test/layouts/nestme.txt', p.base_layout_filename
108
119
  end
109
120
 
110
121
  def test_ruby_filename
@@ -143,6 +154,41 @@ module Rote
143
154
  assert_equal 'layout <%= @content_for_layout %> for a change.', p.layout_text.chomp
144
155
  end
145
156
 
157
+ ############## filters ################
158
+ def test_page_filter
159
+ p = new_test_page('justtext')
160
+ assert p.page_filters.empty?
161
+
162
+ # test with nil
163
+ p.page_filter(nil)
164
+ assert p.page_filters.empty?
165
+
166
+ # test with filter
167
+ p.page_filter("filter")
168
+ assert_equal ["filter"], p.page_filters
169
+
170
+ # test with block
171
+ p.page_filter { "filter" }
172
+ assert_instance_of Rote::Filters::TextFilter, p.page_filters[1]
173
+ end
174
+
175
+ def test_post_filter
176
+ p = new_test_page('justtext')
177
+ assert p.post_filters.empty?
178
+
179
+ # test with nil
180
+ p.post_filter(nil)
181
+ assert p.post_filters.empty?
182
+
183
+ # test with filter
184
+ p.post_filter("filter")
185
+ assert_equal ["filter"], p.post_filters
186
+
187
+ # test with block
188
+ p.post_filter { "filter" }
189
+ assert_instance_of Rote::Filters::TextFilter, p.post_filters[1]
190
+ end
191
+
146
192
  ############## render #################
147
193
  def test_render_text
148
194
  t = new_test_page('justtext').render.chomp
@@ -156,7 +202,16 @@ module Rote
156
202
 
157
203
  def test_render_layout_code
158
204
  t = new_test_page('nestedlayout').render.chomp
159
- assert_equal "layout this: 'some text and some other text' for a change.", t
205
+ assert_equal "layout with nested: 'some text and some other text' for a change.", t
206
+
207
+ end
208
+
209
+ # Make sure that layout nesting applies only in layout code,
210
+ # not common or page code. See comments in nested/COMMON.rb(s) and
211
+ # nested/inner/nested-override.txt
212
+ def test_layout_overrides_in_common_rb
213
+ t = new_test_page('nested/inner/nested-override').render.chomp
214
+ assert_equal "layout with nested: '\n\nSome text\n' for a change.", t
160
215
  end
161
216
 
162
217
  ############## broken render #################
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: rote
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.3.2
7
- date: 2006-01-05 00:00:00 +00:00
6
+ version: 0.3.2.2
7
+ date: 2006-01-12 00:00:00 +00:00
8
8
  summary: Adds template-based doc support to Rake.
9
9
  require_paths:
10
10
  - lib
@@ -79,12 +79,17 @@ files:
79
79
  - test/pages/badlayout.rb
80
80
  - test/pages/samedir.rb
81
81
  - test/pages/COMMON.rb
82
+ - test/pages/nested
82
83
  - test/pages/custext.txt
83
84
  - test/pages/withcode.rb
84
85
  - test/pages/justtext.txt
85
86
  - test/pages/badlayout.txt
86
87
  - test/pages/nestedlayout.txt
87
88
  - test/pages/withcode.txt
89
+ - test/pages/nested/COMMON.rb
90
+ - test/pages/nested/inner
91
+ - test/pages/nested/inner/COMMON.rb
92
+ - test/pages/nested/inner/nested-override.txt
88
93
  - test/layouts/nestme.rb
89
94
  - test/layouts/nestme.txt
90
95
  - test/layouts/simple.rb