rote 0.3.2 → 0.3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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