nanoc 3.5.0 → 3.6.0
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.
- 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
|