nanoc 3.5.0 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -0
- data/Gemfile.lock +20 -12
- data/NEWS.md +23 -0
- data/README.md +6 -3
- data/doc/yardoc_templates/default/layout/html/footer.erb +16 -7
- data/lib/nanoc.rb +1 -1
- data/lib/nanoc/base.rb +1 -0
- data/lib/nanoc/base/compilation/compiler_dsl.rb +31 -0
- data/lib/nanoc/base/compilation/filter.rb +34 -0
- data/lib/nanoc/base/result_data/item_rep.rb +3 -3
- data/lib/nanoc/base/source_data/code_snippet.rb +1 -1
- data/lib/nanoc/base/source_data/data_source.rb +12 -0
- data/lib/nanoc/base/source_data/item.rb +1 -1
- data/lib/nanoc/base/source_data/item_array.rb +62 -0
- data/lib/nanoc/base/source_data/layout.rb +1 -1
- data/lib/nanoc/base/source_data/site.rb +24 -3
- data/lib/nanoc/cli/cleaning_stream.rb +10 -0
- data/lib/nanoc/cli/command_runner.rb +25 -12
- data/lib/nanoc/cli/commands/autocompile.rb +5 -3
- data/lib/nanoc/cli/commands/check.rb +9 -1
- data/lib/nanoc/cli/commands/compile.rb +1 -1
- data/lib/nanoc/cli/commands/create-site.rb +5 -5
- data/lib/nanoc/cli/commands/prune.rb +1 -1
- data/lib/nanoc/cli/commands/shell.rb +37 -0
- data/lib/nanoc/cli/commands/show-data.rb +1 -1
- data/lib/nanoc/cli/commands/sync.rb +34 -0
- data/lib/nanoc/cli/error_handler.rb +11 -2
- data/lib/nanoc/extra/checking/checks/stale.rb +10 -2
- data/lib/nanoc/extra/pruner.rb +14 -11
- data/lib/nanoc/filters/asciidoc.rb +2 -2
- data/lib/nanoc/filters/bluecloth.rb +2 -2
- data/lib/nanoc/filters/coderay.rb +2 -2
- data/lib/nanoc/filters/coffeescript.rb +2 -2
- data/lib/nanoc/filters/colorize_syntax.rb +2 -4
- data/lib/nanoc/filters/erb.rb +2 -2
- data/lib/nanoc/filters/erubis.rb +2 -2
- data/lib/nanoc/filters/haml.rb +2 -2
- data/lib/nanoc/filters/handlebars.rb +2 -2
- data/lib/nanoc/filters/kramdown.rb +2 -2
- data/lib/nanoc/filters/less.rb +2 -2
- data/lib/nanoc/filters/markaby.rb +2 -2
- data/lib/nanoc/filters/maruku.rb +2 -2
- data/lib/nanoc/filters/mustache.rb +2 -2
- data/lib/nanoc/filters/pandoc.rb +2 -2
- data/lib/nanoc/filters/rainpress.rb +2 -2
- data/lib/nanoc/filters/rdiscount.rb +2 -2
- data/lib/nanoc/filters/rdoc.rb +3 -17
- data/lib/nanoc/filters/redcarpet.rb +7 -3
- data/lib/nanoc/filters/redcloth.rb +2 -2
- data/lib/nanoc/filters/rubypants.rb +2 -2
- data/lib/nanoc/filters/sass.rb +2 -3
- data/lib/nanoc/filters/slim.rb +2 -2
- data/lib/nanoc/filters/typogruby.rb +2 -2
- data/lib/nanoc/filters/uglify_js.rb +2 -2
- data/lib/nanoc/filters/xsl.rb +2 -1
- data/lib/nanoc/filters/yui_compressor.rb +2 -2
- data/lib/nanoc/helpers/blogging.rb +1 -1
- data/lib/nanoc/helpers/filtering.rb +1 -1
- data/lib/nanoc/helpers/rendering.rb +1 -1
- data/nanoc.gemspec +2 -2
- data/test/base/core_ext/array_spec.rb +4 -12
- data/test/base/core_ext/hash_spec.rb +4 -12
- data/test/base/test_compiler_dsl.rb +63 -0
- data/test/base/test_item.rb +3 -18
- data/test/base/test_item_array.rb +336 -0
- data/test/base/test_item_rep.rb +2 -12
- data/test/base/test_layout.rb +1 -6
- data/test/base/test_outdatedness_checker.rb +1 -1
- data/test/base/test_site.rb +9 -3
- data/test/cli/commands/test_check.rb +22 -0
- data/test/cli/commands/test_compile.rb +2 -2
- data/test/cli/commands/test_deploy.rb +6 -6
- data/test/cli/commands/test_prune.rb +23 -4
- data/test/cli/commands/test_sync.rb +31 -0
- data/test/cli/test_error_handler.rb +16 -11
- data/test/extra/checking/checks/test_stale.rb +24 -1
- data/test/extra/test_auto_compiler.rb +4 -4
- data/test/filters/test_asciidoc.rb +1 -1
- data/test/filters/test_bluecloth.rb +1 -1
- data/test/filters/test_coderay.rb +3 -3
- data/test/filters/test_coffeescript.rb +1 -1
- data/test/filters/test_colorize_syntax.rb +20 -20
- data/test/filters/test_erb.rb +10 -10
- data/test/filters/test_erubis.rb +6 -6
- data/test/filters/test_haml.rb +10 -10
- data/test/filters/test_handlebars.rb +3 -3
- data/test/filters/test_kramdown.rb +1 -1
- data/test/filters/test_less.rb +4 -4
- data/test/filters/test_markaby.rb +1 -1
- data/test/filters/test_maruku.rb +1 -1
- data/test/filters/test_mustache.rb +2 -2
- data/test/filters/test_pandoc.rb +1 -1
- data/test/filters/test_rainpress.rb +2 -2
- data/test/filters/test_rdiscount.rb +2 -2
- data/test/filters/test_rdoc.rb +1 -1
- data/test/filters/test_redcarpet.rb +21 -6
- data/test/filters/test_redcloth.rb +3 -3
- data/test/filters/test_relativize_paths.rb +27 -27
- data/test/filters/test_rubypants.rb +1 -1
- data/test/filters/test_sass.rb +8 -8
- data/test/filters/test_slim.rb +4 -4
- data/test/filters/test_typogruby.rb +1 -1
- data/test/filters/test_uglify_js.rb +2 -2
- data/test/filters/test_xsl.rb +2 -2
- data/test/filters/test_yui_compressor.rb +3 -3
- data/test/helper.rb +6 -1
- metadata +12 -6
@@ -124,6 +124,69 @@ EOS
|
|
124
124
|
end
|
125
125
|
end
|
126
126
|
|
127
|
+
def test_ignore
|
128
|
+
with_site do
|
129
|
+
# Create rules
|
130
|
+
File.open('Rules', 'w') do |io|
|
131
|
+
io.write <<EOS
|
132
|
+
ignore '/lame/'
|
133
|
+
|
134
|
+
passthrough '*'
|
135
|
+
EOS
|
136
|
+
end
|
137
|
+
|
138
|
+
# Create items
|
139
|
+
assert Dir['content/*'].empty?
|
140
|
+
File.open('content/lame.txt', 'w') do |io|
|
141
|
+
io.write "Hello I am lame"
|
142
|
+
end
|
143
|
+
|
144
|
+
File.open('content/notlame.txt', 'w') do |io|
|
145
|
+
io.write "Hello I am not lame"
|
146
|
+
end
|
147
|
+
|
148
|
+
# Compile
|
149
|
+
site = Nanoc::Site.new('.')
|
150
|
+
site.compile
|
151
|
+
|
152
|
+
# Check paths
|
153
|
+
assert_equal [ 'output/notlame.txt'], Dir['output/*']
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
def test_ignore_priority
|
158
|
+
with_site do
|
159
|
+
# Create rules
|
160
|
+
File.open('Rules', 'w') do |io|
|
161
|
+
io.write <<EOS
|
162
|
+
compile '*' do
|
163
|
+
filter :erb
|
164
|
+
end
|
165
|
+
|
166
|
+
route '*' do
|
167
|
+
item.identifier + 'index.html'
|
168
|
+
end
|
169
|
+
|
170
|
+
ignore "/foo/"
|
171
|
+
EOS
|
172
|
+
end
|
173
|
+
|
174
|
+
# Create items
|
175
|
+
assert Dir['content/*'].empty?
|
176
|
+
File.open('content/foo.txt', 'w') do |io|
|
177
|
+
io.write "Hello I am <%= 'foo' %>"
|
178
|
+
end
|
179
|
+
|
180
|
+
# Compile
|
181
|
+
site = Nanoc::Site.new('.')
|
182
|
+
site.compile
|
183
|
+
|
184
|
+
# Check paths
|
185
|
+
assert_equal [ 'output/foo' ], Dir['output/*']
|
186
|
+
assert_equal [ 'output/foo/index.html' ], Dir['output/foo/*']
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
127
190
|
def test_identifier_to_regex_without_wildcards
|
128
191
|
# Create compiler DSL
|
129
192
|
compiler_dsl = Nanoc::CompilerDSL.new(nil, {})
|
data/test/base/test_item.rb
CHANGED
@@ -20,14 +20,9 @@ class Nanoc::ItemTest < MiniTest::Unit::TestCase
|
|
20
20
|
def test_frozen_identifier
|
21
21
|
item = Nanoc::Item.new("foo", {}, '/foo')
|
22
22
|
|
23
|
-
|
24
|
-
begin
|
23
|
+
assert_raises_frozen_error do
|
25
24
|
item.identifier.chop!
|
26
|
-
rescue => error
|
27
|
-
raised = true
|
28
|
-
assert_match(/(^can't modify frozen [Ss]tring|^unable to modify frozen object$)/, error.message)
|
29
25
|
end
|
30
|
-
assert raised, 'Should have raised when trying to modify a frozen string'
|
31
26
|
end
|
32
27
|
|
33
28
|
def test_lookup
|
@@ -144,23 +139,13 @@ class Nanoc::ItemTest < MiniTest::Unit::TestCase
|
|
144
139
|
item = Nanoc::Item.new("foo", { :a => { :b => 123 }}, '/foo/')
|
145
140
|
item.freeze
|
146
141
|
|
147
|
-
|
148
|
-
begin
|
142
|
+
assert_raises_frozen_error do
|
149
143
|
item[:abc] = '123'
|
150
|
-
rescue => e
|
151
|
-
raised = true
|
152
|
-
assert_match(/(^can't modify frozen |^unable to modify frozen object$)/, e.message)
|
153
144
|
end
|
154
|
-
assert raised
|
155
145
|
|
156
|
-
|
157
|
-
begin
|
146
|
+
assert_raises_frozen_error do
|
158
147
|
item[:a][:b] = '456'
|
159
|
-
rescue => e
|
160
|
-
raised = true
|
161
|
-
assert_match(/(^can't modify frozen |^unable to modify frozen object$)/, e.message)
|
162
148
|
end
|
163
|
-
assert raised
|
164
149
|
end
|
165
150
|
|
166
151
|
def test_dump_and_load
|
@@ -0,0 +1,336 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
class Nanoc::ItemArrayTest < MiniTest::Unit::TestCase
|
4
|
+
|
5
|
+
include Nanoc::TestHelpers
|
6
|
+
|
7
|
+
def setup
|
8
|
+
super
|
9
|
+
|
10
|
+
@one = Nanoc::Item.new('Item One', {}, '/one/')
|
11
|
+
@two = Nanoc::Item.new('Item Two', {}, '/two/')
|
12
|
+
|
13
|
+
@items = Nanoc::ItemArray.new
|
14
|
+
@items << @one
|
15
|
+
@items << @two
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_change_item_identifier
|
19
|
+
assert_equal @one, @items['/one/']
|
20
|
+
assert_nil @items['/foo/']
|
21
|
+
|
22
|
+
@one.identifier = '/foo/'
|
23
|
+
|
24
|
+
assert_nil @items['/one/']
|
25
|
+
assert_equal @one, @items['/foo/']
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_enumerable
|
29
|
+
assert_equal @one, @items.find { |i| i.identifier == '/one/' }
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_brackets_and_slice_and_at_with_index
|
33
|
+
assert_equal @one, @items[0]
|
34
|
+
assert_equal @one, @items.slice(0)
|
35
|
+
assert_equal @one, @items.at(0)
|
36
|
+
|
37
|
+
assert_equal @two, @items[1]
|
38
|
+
assert_equal @two, @items.slice(1)
|
39
|
+
assert_equal @two, @items.at(1)
|
40
|
+
|
41
|
+
assert_nil @items[2]
|
42
|
+
assert_nil @items.slice(2)
|
43
|
+
assert_nil @items.at(2)
|
44
|
+
|
45
|
+
assert_equal @two, @items[-1]
|
46
|
+
assert_equal @two, @items.slice(-1)
|
47
|
+
assert_equal @two, @items.at(-1)
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_brackets_and_slice_with_range
|
51
|
+
assert_equal [ @one, @two ], @items[0..1]
|
52
|
+
assert_equal [ @one, @two ], @items[0, 2]
|
53
|
+
|
54
|
+
assert_equal [ @one, @two ], @items.slice(0..1)
|
55
|
+
assert_equal [ @one, @two ], @items.slice(0, 2)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_brackets_and_slice_and_at_with_identifier
|
59
|
+
assert_equal @one, @items['/one/']
|
60
|
+
assert_equal @one, @items.slice('/one/')
|
61
|
+
assert_equal @one, @items.at('/one/')
|
62
|
+
|
63
|
+
assert_equal @two, @items['/two/']
|
64
|
+
assert_equal @two, @items.slice('/two/')
|
65
|
+
assert_equal @two, @items.at('/two/')
|
66
|
+
|
67
|
+
assert_nil @items['/max-payne/']
|
68
|
+
assert_nil @items.slice('/max-payne/')
|
69
|
+
assert_nil @items.at('/max-payne/')
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_brackets_and_slice_and_at_with_malformed_identifier
|
73
|
+
assert_nil @items['one/']
|
74
|
+
assert_nil @items.slice('one/')
|
75
|
+
assert_nil @items.at('one/')
|
76
|
+
|
77
|
+
assert_nil @items['/one']
|
78
|
+
assert_nil @items.slice('/one')
|
79
|
+
assert_nil @items.at('/one')
|
80
|
+
|
81
|
+
assert_nil @items['one']
|
82
|
+
assert_nil @items.slice('one')
|
83
|
+
assert_nil @items.at('one')
|
84
|
+
|
85
|
+
assert_nil @items['//one/']
|
86
|
+
assert_nil @items.slice('//one/')
|
87
|
+
assert_nil @items.at('//one/')
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_brackets_and_slice_and_at_frozen
|
91
|
+
@items.freeze
|
92
|
+
|
93
|
+
assert_equal @one, @items['/one/']
|
94
|
+
assert_equal @one, @items.slice('/one/')
|
95
|
+
assert_equal @one, @items.at('/one/')
|
96
|
+
|
97
|
+
assert_nil @items['/tenthousand/']
|
98
|
+
assert_nil @items.slice('/tenthousand/')
|
99
|
+
assert_nil @items.at('/tenthousand/')
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_less_than_less_than
|
103
|
+
assert_nil @items[2]
|
104
|
+
assert_nil @items['/foo/']
|
105
|
+
|
106
|
+
foo = Nanoc::Item.new('Item Foo', {}, '/foo/')
|
107
|
+
@items << foo
|
108
|
+
|
109
|
+
assert_equal foo, @items[2]
|
110
|
+
assert_equal foo, @items['/foo/']
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_assign
|
114
|
+
assert_raises(TypeError) do
|
115
|
+
@items['/blah/'] = Nanoc::Item.new('Item blah', {}, '/blah/')
|
116
|
+
end
|
117
|
+
|
118
|
+
new_item = Nanoc::Item.new('New Item One', {}, '/one-new/')
|
119
|
+
@items[0] = new_item
|
120
|
+
|
121
|
+
assert_equal new_item, @items[0]
|
122
|
+
assert_equal new_item, @items['/one-new/']
|
123
|
+
assert_nil @items['/one/']
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_assign_frozen
|
127
|
+
@items.freeze
|
128
|
+
|
129
|
+
new_item = Nanoc::Item.new('New Item One', {}, '/one-new/')
|
130
|
+
|
131
|
+
assert_raises_frozen_error do
|
132
|
+
@items[0] = new_item
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_clear
|
137
|
+
@items.clear
|
138
|
+
|
139
|
+
assert_nil @items[0]
|
140
|
+
assert_nil @items[1]
|
141
|
+
assert_nil @items[2]
|
142
|
+
|
143
|
+
assert_nil @items['/one/']
|
144
|
+
assert_nil @items['/two/']
|
145
|
+
end
|
146
|
+
|
147
|
+
def test_collect_bang
|
148
|
+
@items.collect! do |i|
|
149
|
+
Nanoc::Item.new("New #{i.raw_content}", {}, "/new#{i.identifier}")
|
150
|
+
end
|
151
|
+
|
152
|
+
assert_nil @items['/one/']
|
153
|
+
assert_nil @items['/two/']
|
154
|
+
|
155
|
+
assert_equal "New Item One", @items[0].raw_content
|
156
|
+
assert_equal "New Item One", @items['/new/one/'].raw_content
|
157
|
+
|
158
|
+
assert_equal "New Item Two", @items[1].raw_content
|
159
|
+
assert_equal "New Item Two", @items['/new/two/'].raw_content
|
160
|
+
end
|
161
|
+
|
162
|
+
def test_collect_bang_frozen
|
163
|
+
@items.freeze
|
164
|
+
|
165
|
+
assert_raises_frozen_error do
|
166
|
+
@items.collect! do |i|
|
167
|
+
Nanoc::Item.new("New #{i.raw_content}", {}, "/new#{i.identifier}")
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
def test_concat
|
173
|
+
new_item = Nanoc::Item.new('New item', {}, '/new/')
|
174
|
+
@items.concat([ new_item ])
|
175
|
+
|
176
|
+
assert_equal new_item, @items[2]
|
177
|
+
assert_equal new_item, @items['/new/']
|
178
|
+
end
|
179
|
+
|
180
|
+
def test_delete
|
181
|
+
assert_equal @two, @items[1]
|
182
|
+
assert_equal @two, @items['/two/']
|
183
|
+
|
184
|
+
@items.delete(@two)
|
185
|
+
|
186
|
+
assert_nil @items[1]
|
187
|
+
assert_nil @items['/two/']
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_delete_at
|
191
|
+
assert_equal @two, @items[1]
|
192
|
+
assert_equal @two, @items['/two/']
|
193
|
+
|
194
|
+
@items.delete_at(1)
|
195
|
+
|
196
|
+
assert_nil @items[1]
|
197
|
+
assert_nil @items['/two/']
|
198
|
+
end
|
199
|
+
|
200
|
+
def test_delete_if
|
201
|
+
assert_equal @two, @items[1]
|
202
|
+
assert_equal @two, @items['/two/']
|
203
|
+
|
204
|
+
@items.delete_if { |i| i.identifier == '/two/' }
|
205
|
+
|
206
|
+
assert_nil @items[1]
|
207
|
+
assert_nil @items['/two/']
|
208
|
+
end
|
209
|
+
|
210
|
+
def test_fill_all
|
211
|
+
@items.fill { |i| Nanoc::Item.new("Item #{i}", {}, "/new/#{i}/") }
|
212
|
+
|
213
|
+
assert_nil @items['/one/']
|
214
|
+
assert_nil @items['/two/']
|
215
|
+
|
216
|
+
assert_equal "Item 0", @items[0].raw_content
|
217
|
+
assert_equal "Item 0", @items['/new/0/'].raw_content
|
218
|
+
assert_equal "Item 1", @items[1].raw_content
|
219
|
+
assert_equal "Item 1", @items['/new/1/'].raw_content
|
220
|
+
end
|
221
|
+
|
222
|
+
def test_fill_range
|
223
|
+
@items.fill(1..-1) { |i| Nanoc::Item.new("Item #{i}", {}, "/new/#{i}/") }
|
224
|
+
|
225
|
+
assert_equal @one, @items['/one/']
|
226
|
+
assert_nil @items['/two/']
|
227
|
+
|
228
|
+
assert_equal @one, @items[0]
|
229
|
+
assert_equal @one, @items['/one/']
|
230
|
+
assert_equal "Item 1", @items[1].raw_content
|
231
|
+
assert_equal "Item 1", @items['/new/1/'].raw_content
|
232
|
+
end
|
233
|
+
|
234
|
+
if Array.new.respond_to?(:keep_if)
|
235
|
+
def test_keep_if
|
236
|
+
assert_equal @two, @items[1]
|
237
|
+
assert_equal @two, @items['/two/']
|
238
|
+
|
239
|
+
@items.keep_if { |i| i.identifier == '/one/' }
|
240
|
+
|
241
|
+
assert_equal @one, @items[0]
|
242
|
+
assert_equal @one, @items['/one/']
|
243
|
+
assert_nil @items[1]
|
244
|
+
assert_nil @items['/two/']
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
def test_pop
|
249
|
+
@items.pop
|
250
|
+
|
251
|
+
assert_equal @one, @items[0]
|
252
|
+
assert_equal @one, @items['/one/']
|
253
|
+
assert_nil @items[1]
|
254
|
+
assert_nil @items['/two/']
|
255
|
+
end
|
256
|
+
|
257
|
+
def test_push
|
258
|
+
pushy = Nanoc::Item.new("Pushy", {}, '/pushy/')
|
259
|
+
@items.push(pushy)
|
260
|
+
|
261
|
+
assert_equal @one, @items[0]
|
262
|
+
assert_equal @one, @items['/one/']
|
263
|
+
assert_equal @two, @items[1]
|
264
|
+
assert_equal @two, @items['/two/']
|
265
|
+
assert_equal pushy, @items[2]
|
266
|
+
assert_equal pushy, @items['/pushy/']
|
267
|
+
end
|
268
|
+
|
269
|
+
def test_reject_bang
|
270
|
+
assert_equal @two, @items[1]
|
271
|
+
assert_equal @two, @items['/two/']
|
272
|
+
|
273
|
+
@items.reject! { |i| i.identifier == '/two/' }
|
274
|
+
|
275
|
+
assert_nil @items[1]
|
276
|
+
assert_nil @items['/two/']
|
277
|
+
end
|
278
|
+
|
279
|
+
def test_replace
|
280
|
+
max = Nanoc::Item.new("Max", {}, '/max/')
|
281
|
+
mona = Nanoc::Item.new('Mona', {}, '/mona/')
|
282
|
+
|
283
|
+
@items.replace([ max, mona ])
|
284
|
+
|
285
|
+
assert_nil @items['/one/']
|
286
|
+
assert_nil @items['/two/']
|
287
|
+
|
288
|
+
assert_equal max, @items[0]
|
289
|
+
assert_equal max, @items['/max/']
|
290
|
+
assert_equal mona, @items[1]
|
291
|
+
assert_equal mona, @items['/mona/']
|
292
|
+
end
|
293
|
+
|
294
|
+
if Array.new.respond_to?(:select!)
|
295
|
+
def test_select_bang
|
296
|
+
assert_equal @two, @items[1]
|
297
|
+
assert_equal @two, @items['/two/']
|
298
|
+
|
299
|
+
@items.select! { |i| i.identifier == '/two/' }
|
300
|
+
|
301
|
+
assert_nil @items[1]
|
302
|
+
assert_nil @items['/one/']
|
303
|
+
end
|
304
|
+
end
|
305
|
+
|
306
|
+
def test_shift
|
307
|
+
@items.shift
|
308
|
+
|
309
|
+
assert_equal @two, @items[0]
|
310
|
+
assert_equal @two, @items['/two/']
|
311
|
+
assert_nil @items['/one/']
|
312
|
+
assert_nil @items[1]
|
313
|
+
end
|
314
|
+
|
315
|
+
def test_slice_bang
|
316
|
+
@items.slice!(1)
|
317
|
+
|
318
|
+
assert_equal @one, @items[0]
|
319
|
+
assert_equal @one, @items['/one/']
|
320
|
+
assert_nil @items[1]
|
321
|
+
assert_nil @items['/two/']
|
322
|
+
end
|
323
|
+
|
324
|
+
def test_unshift
|
325
|
+
unshifty = Nanoc::Item.new("Unshifty", {}, '/unshifty/')
|
326
|
+
@items.unshift(unshifty)
|
327
|
+
|
328
|
+
assert_equal unshifty, @items[0]
|
329
|
+
assert_equal unshifty, @items['/unshifty/']
|
330
|
+
assert_equal @one, @items[1]
|
331
|
+
assert_equal @one, @items['/one/']
|
332
|
+
assert_equal @two, @items[2]
|
333
|
+
assert_equal @two, @items['/two/']
|
334
|
+
end
|
335
|
+
|
336
|
+
end
|
data/test/base/test_item_rep.rb
CHANGED
@@ -428,14 +428,9 @@ class Nanoc::ItemRepTest < MiniTest::Unit::TestCase
|
|
428
428
|
rep.instance_eval { @filter_class = filter_class }
|
429
429
|
def rep.filter_named(name) ; @filter_class ; end
|
430
430
|
|
431
|
-
|
432
|
-
begin
|
431
|
+
assert_raises_frozen_error do
|
433
432
|
rep.filter(:whatever)
|
434
|
-
rescue => e
|
435
|
-
raised = true
|
436
|
-
assert_match(/(^can't modify frozen |^unable to modify frozen object$)/, e.message)
|
437
433
|
end
|
438
|
-
assert raised
|
439
434
|
end
|
440
435
|
|
441
436
|
def test_filter_should_freeze_content
|
@@ -451,15 +446,10 @@ class Nanoc::ItemRepTest < MiniTest::Unit::TestCase
|
|
451
446
|
rep.instance_eval { @filter_class = filter_class }
|
452
447
|
def rep.filter_named(name) ; @filter_class ; end
|
453
448
|
|
454
|
-
|
455
|
-
begin
|
449
|
+
assert_raises_frozen_error do
|
456
450
|
rep.filter(:erb)
|
457
451
|
rep.filter(:whatever)
|
458
|
-
rescue => e
|
459
|
-
raised = true
|
460
|
-
assert_match(/(^can't modify frozen |^unable to modify frozen object$)/, e.message)
|
461
452
|
end
|
462
|
-
assert raised
|
463
453
|
end
|
464
454
|
|
465
455
|
def test_raw_path_should_generate_dependency
|