nanoc 4.1.0a1 → 4.1.0b1
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +4 -4
- data/NEWS.md +10 -0
- data/lib/nanoc/base/checksummer.rb +2 -1
- data/lib/nanoc/base/compilation/compiler.rb +33 -43
- data/lib/nanoc/base/compilation/outdatedness_checker.rb +4 -8
- data/lib/nanoc/base/entities/rule_memory.rb +5 -1
- data/lib/nanoc/base/entities.rb +0 -1
- data/lib/nanoc/base/services/action_provider.rb +22 -0
- data/lib/nanoc/base/services/compiler_loader.rb +5 -14
- data/lib/nanoc/base/services/executor.rb +1 -1
- data/lib/nanoc/base/services/item_rep_builder.rb +4 -12
- data/lib/nanoc/base/services/item_rep_router.rb +3 -4
- data/lib/nanoc/base/services.rb +1 -5
- data/lib/nanoc/base.rb +0 -3
- data/lib/nanoc/cli/commands/create-site.rb +2 -5
- data/lib/nanoc/cli/commands/show-rules.rb +9 -1
- data/lib/nanoc/helpers/rendering.rb +1 -1
- data/lib/nanoc/rule_dsl/action_provider.rb +76 -0
- data/lib/nanoc/{base/compilation → rule_dsl}/compiler_dsl.rb +9 -9
- data/lib/nanoc/{base/services → rule_dsl}/recording_executor.rb +6 -11
- data/lib/nanoc/{base/compilation → rule_dsl}/rule.rb +3 -3
- data/lib/nanoc/{base/compilation → rule_dsl}/rule_context.rb +2 -2
- data/lib/nanoc/{base/services → rule_dsl}/rule_memory_calculator.rb +16 -11
- data/lib/nanoc/{base/entities → rule_dsl}/rules_collection.rb +1 -1
- data/lib/nanoc/{base/services → rule_dsl}/rules_loader.rb +2 -2
- data/lib/nanoc/rule_dsl.rb +8 -0
- data/lib/nanoc/version.rb +1 -1
- data/lib/nanoc.rb +1 -0
- data/test/base/test_compiler.rb +45 -147
- data/test/filters/test_erb.rb +1 -1
- data/test/helper.rb +2 -2
- data/test/rule_dsl/test_action_provider.rb +70 -0
- data/test/{base → rule_dsl}/test_compiler_dsl.rb +25 -86
- data/test/{base → rule_dsl}/test_rule.rb +1 -1
- data/test/rule_dsl/test_rules_collection.rb +89 -0
- metadata +17 -16
- data/lib/nanoc/base/services/postprocessor.rb +0 -26
- data/lib/nanoc/base/services/preprocessor.rb +0 -26
- data/nanoc-4.0.2.gem +0 -0
- data/tags +0 -1175
@@ -1,4 +1,4 @@
|
|
1
|
-
class Nanoc::
|
1
|
+
class Nanoc::RuleDSL::CompilerDSLTest < Nanoc::TestCase
|
2
2
|
def test_compile
|
3
3
|
# TODO: implement
|
4
4
|
end
|
@@ -12,8 +12,8 @@ class Nanoc::Int::CompilerDSLTest < Nanoc::TestCase
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_preprocess_twice
|
15
|
-
rules_collection = Nanoc::
|
16
|
-
compiler_dsl = Nanoc::
|
15
|
+
rules_collection = Nanoc::RuleDSL::RulesCollection.new
|
16
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(rules_collection, {})
|
17
17
|
|
18
18
|
# first time
|
19
19
|
io = capturing_stdio do
|
@@ -31,8 +31,8 @@ class Nanoc::Int::CompilerDSLTest < Nanoc::TestCase
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def test_postprocess_twice
|
34
|
-
rules_collection = Nanoc::
|
35
|
-
compiler_dsl = Nanoc::
|
34
|
+
rules_collection = Nanoc::RuleDSL::RulesCollection.new
|
35
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(rules_collection, {})
|
36
36
|
|
37
37
|
# first time
|
38
38
|
io = capturing_stdio do
|
@@ -49,62 +49,6 @@ class Nanoc::Int::CompilerDSLTest < Nanoc::TestCase
|
|
49
49
|
assert_match(/WARNING: A postprocess block is already defined./, io[:stderr])
|
50
50
|
end
|
51
51
|
|
52
|
-
def test_per_rules_file_preprocessor
|
53
|
-
# Create site
|
54
|
-
Nanoc::CLI.run %w( create_site foo )
|
55
|
-
FileUtils.cd('foo') do
|
56
|
-
# Create a bonus rules file
|
57
|
-
File.write(
|
58
|
-
'more_rules.rb',
|
59
|
-
"preprocess { @items['/index.*'][:preprocessed] = true }")
|
60
|
-
|
61
|
-
# Adjust normal rules file
|
62
|
-
File.write(
|
63
|
-
'Rules',
|
64
|
-
"include_rules 'more_rules'\n\npreprocess {}\n\n" + File.read('Rules'))
|
65
|
-
|
66
|
-
# Create site and compiler
|
67
|
-
site = Nanoc::Int::SiteLoader.new.new_from_cwd
|
68
|
-
compiler = Nanoc::Int::CompilerLoader.new.load(site)
|
69
|
-
|
70
|
-
# Check that the two preprocess blocks have been added
|
71
|
-
assert_equal 2, compiler.rules_collection.preprocessors.size
|
72
|
-
refute_nil compiler.rules_collection.preprocessors.first
|
73
|
-
refute_nil compiler.rules_collection.preprocessors.to_a.last
|
74
|
-
|
75
|
-
# Apply preprocess blocks
|
76
|
-
Nanoc::Int::Preprocessor
|
77
|
-
.new(site: site, rules_collection: compiler.rules_collection)
|
78
|
-
.run
|
79
|
-
assert site.items['/index.*'].attributes[:preprocessed]
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
def test_per_rules_file_postprocessor
|
84
|
-
# Create site
|
85
|
-
Nanoc::CLI.run %w( create_site foo )
|
86
|
-
FileUtils.cd('foo') do
|
87
|
-
# Create a bonus rules file
|
88
|
-
File.write(
|
89
|
-
'more_rules.rb',
|
90
|
-
'postprocess {}')
|
91
|
-
|
92
|
-
# Adjust normal rules file
|
93
|
-
File.write(
|
94
|
-
'Rules',
|
95
|
-
"include_rules 'more_rules'\n\npostprocess {}\n\n" + File.read('Rules'))
|
96
|
-
|
97
|
-
# Create site and compiler
|
98
|
-
site = Nanoc::Int::SiteLoader.new.new_from_cwd
|
99
|
-
compiler = Nanoc::Int::CompilerLoader.new.load(site)
|
100
|
-
|
101
|
-
# Check that the two postprocess blocks have been added
|
102
|
-
assert_equal 2, compiler.rules_collection.postprocessors.size
|
103
|
-
refute_nil compiler.rules_collection.postprocessors.first
|
104
|
-
refute_nil compiler.rules_collection.postprocessors.to_a.last
|
105
|
-
end
|
106
|
-
end
|
107
|
-
|
108
52
|
def test_postprocessor_modified_method
|
109
53
|
with_site do |site|
|
110
54
|
# Create rules
|
@@ -132,9 +76,7 @@ EOS
|
|
132
76
|
end
|
133
77
|
|
134
78
|
def test_include_rules
|
135
|
-
|
136
|
-
Nanoc::CLI.run %w( create_site foo )
|
137
|
-
FileUtils.cd('foo') do
|
79
|
+
with_site(legacy: false) do |site|
|
138
80
|
# Create a bonus rules file
|
139
81
|
File.write(
|
140
82
|
'more_rules.rb',
|
@@ -147,18 +89,15 @@ EOS
|
|
147
89
|
"route '/**/*' do ; nil ; end\n\n" \
|
148
90
|
"compile '/**/*' do ; end\n")
|
149
91
|
|
150
|
-
# Create
|
92
|
+
# Create items
|
93
|
+
File.write('content/index.html', 'hello!')
|
94
|
+
|
95
|
+
# Compile
|
151
96
|
site = Nanoc::Int::SiteLoader.new.new_from_cwd
|
152
|
-
|
153
|
-
compiler.build_reps
|
97
|
+
site.compile
|
154
98
|
|
155
99
|
# Check
|
156
|
-
|
157
|
-
routing_rules = site.compiler.rules_collection.routing_rules_for(rep)
|
158
|
-
routing_rule = routing_rules[:last]
|
159
|
-
refute_nil routing_rule
|
160
|
-
assert_equal Nanoc::Int::StringPattern, routing_rule.pattern.class
|
161
|
-
assert_equal '/index.*', routing_rule.pattern.to_s
|
100
|
+
assert File.file?('output/index.html')
|
162
101
|
end
|
163
102
|
end
|
164
103
|
|
@@ -340,7 +279,7 @@ EOS
|
|
340
279
|
end
|
341
280
|
|
342
281
|
def test_create_pattern_with_string_with_no_config
|
343
|
-
compiler_dsl = Nanoc::
|
282
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
|
344
283
|
|
345
284
|
err = assert_raises(Nanoc::Int::Errors::GenericTrivial) do
|
346
285
|
compiler_dsl.create_pattern('/foo/*')
|
@@ -349,7 +288,7 @@ EOS
|
|
349
288
|
end
|
350
289
|
|
351
290
|
def test_create_pattern_with_string_with_glob_string_pattern_type
|
352
|
-
compiler_dsl = Nanoc::
|
291
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, { string_pattern_type: 'glob' })
|
353
292
|
|
354
293
|
pattern = compiler_dsl.create_pattern('/foo/*')
|
355
294
|
assert pattern.match?('/foo/aaaa')
|
@@ -358,14 +297,14 @@ EOS
|
|
358
297
|
end
|
359
298
|
|
360
299
|
def test_create_pattern_with_regex
|
361
|
-
compiler_dsl = Nanoc::
|
300
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, { string_pattern_type: 'glob' })
|
362
301
|
|
363
302
|
pattern = compiler_dsl.create_pattern(%r{\A/foo/a*/})
|
364
303
|
assert pattern.match?('/foo/aaaa/')
|
365
304
|
end
|
366
305
|
|
367
306
|
def test_create_pattern_with_string_with_unknown_string_pattern_type
|
368
|
-
compiler_dsl = Nanoc::
|
307
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, { string_pattern_type: 'donkey' })
|
369
308
|
|
370
309
|
err = assert_raises(Nanoc::Int::Errors::GenericTrivial) do
|
371
310
|
compiler_dsl.create_pattern('/foo/*')
|
@@ -375,7 +314,7 @@ EOS
|
|
375
314
|
|
376
315
|
def test_identifier_to_regex_without_wildcards
|
377
316
|
# Create compiler DSL
|
378
|
-
compiler_dsl = Nanoc::
|
317
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
|
379
318
|
|
380
319
|
actual = compiler_dsl.instance_eval { identifier_to_regex('foo') }
|
381
320
|
expected = %r{^/foo/$}
|
@@ -389,7 +328,7 @@ EOS
|
|
389
328
|
|
390
329
|
def test_identifier_to_regex_with_one_wildcard
|
391
330
|
# Create compiler DSL
|
392
|
-
compiler_dsl = Nanoc::
|
331
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
|
393
332
|
|
394
333
|
actual = compiler_dsl.instance_eval { identifier_to_regex('foo/*/bar') }
|
395
334
|
expected = %r{^/foo/(.*?)/bar/$}
|
@@ -403,7 +342,7 @@ EOS
|
|
403
342
|
|
404
343
|
def test_identifier_to_regex_with_two_wildcards
|
405
344
|
# Create compiler DSL
|
406
|
-
compiler_dsl = Nanoc::
|
345
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
|
407
346
|
|
408
347
|
actual = compiler_dsl.instance_eval { identifier_to_regex('foo/*/bar/*/qux') }
|
409
348
|
expected = %r{^/foo/(.*?)/bar/(.*?)/qux/$}
|
@@ -417,7 +356,7 @@ EOS
|
|
417
356
|
|
418
357
|
def test_identifier_to_regex_with_just_one_wildcard
|
419
358
|
# Create compiler DSL
|
420
|
-
compiler_dsl = Nanoc::
|
359
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
|
421
360
|
|
422
361
|
actual = compiler_dsl.instance_eval { identifier_to_regex('*') }
|
423
362
|
expected = %r{^/(.*?)$}
|
@@ -431,7 +370,7 @@ EOS
|
|
431
370
|
|
432
371
|
def test_identifier_to_regex_with_root
|
433
372
|
# Create compiler DSL
|
434
|
-
compiler_dsl = Nanoc::
|
373
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
|
435
374
|
|
436
375
|
actual = compiler_dsl.instance_eval { identifier_to_regex('/') }
|
437
376
|
expected = %r{^/$}
|
@@ -445,7 +384,7 @@ EOS
|
|
445
384
|
|
446
385
|
def test_identifier_to_regex_with_only_children
|
447
386
|
# Create compiler DSL
|
448
|
-
compiler_dsl = Nanoc::
|
387
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
|
449
388
|
|
450
389
|
actual = compiler_dsl.instance_eval { identifier_to_regex('/foo/*/') }
|
451
390
|
expected = %r{^/foo/(.*?)/$}
|
@@ -459,7 +398,7 @@ EOS
|
|
459
398
|
|
460
399
|
def test_identifier_to_regex_with_plus_wildcard
|
461
400
|
# Create compiler DSL
|
462
|
-
compiler_dsl = Nanoc::
|
401
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
|
463
402
|
|
464
403
|
actual = compiler_dsl.instance_eval { identifier_to_regex('/foo/+') }
|
465
404
|
expected = %r{^/foo/(.+?)/$}
|
@@ -474,7 +413,7 @@ EOS
|
|
474
413
|
end
|
475
414
|
|
476
415
|
def test_dsl_has_no_access_to_compiler
|
477
|
-
compiler_dsl = Nanoc::
|
416
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
|
478
417
|
assert_raises(NameError) do
|
479
418
|
compiler_dsl.instance_eval { compiler }
|
480
419
|
end
|
@@ -482,7 +421,7 @@ EOS
|
|
482
421
|
|
483
422
|
def test_config
|
484
423
|
$venetian = 'unsnares'
|
485
|
-
compiler_dsl = Nanoc::
|
424
|
+
compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, { venetian: 'snares' })
|
486
425
|
compiler_dsl.instance_eval { $venetian = @config[:venetian] }
|
487
426
|
assert_equal 'snares', $venetian
|
488
427
|
end
|
@@ -16,7 +16,7 @@ class Nanoc::Int::RuleTest < Nanoc::TestCase
|
|
16
16
|
identifier = '/anything/else/'
|
17
17
|
expected = %w(anything else)
|
18
18
|
|
19
|
-
rule = Nanoc::
|
19
|
+
rule = Nanoc::RuleDSL::Rule.new(pattern, :string, proc {})
|
20
20
|
|
21
21
|
assert_equal expected, rule.send(:matches, identifier)
|
22
22
|
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
class Nanoc::RuleDSL::RulesCollectionTest < Nanoc::TestCase
|
2
|
+
def test_compilation_rule_for
|
3
|
+
# Mock rules
|
4
|
+
rules = [mock, mock, mock]
|
5
|
+
rules[0].expects(:applicable_to?).returns(false)
|
6
|
+
rules[1].expects(:applicable_to?).returns(true)
|
7
|
+
rules[1].expects(:rep_name).returns('wrong')
|
8
|
+
rules[2].expects(:applicable_to?).returns(true)
|
9
|
+
rules[2].expects(:rep_name).returns('right')
|
10
|
+
|
11
|
+
rules_collection = Nanoc::RuleDSL::RulesCollection.new
|
12
|
+
rules_collection.instance_eval { @item_compilation_rules = rules }
|
13
|
+
|
14
|
+
# Mock rep
|
15
|
+
rep = mock
|
16
|
+
rep.stubs(:name).returns('right')
|
17
|
+
item = mock
|
18
|
+
rep.stubs(:item).returns(item)
|
19
|
+
|
20
|
+
# Test
|
21
|
+
assert_equal rules[2], rules_collection.compilation_rule_for(rep)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_filter_for_layout_with_existant_layout
|
25
|
+
rules_collection = Nanoc::RuleDSL::RulesCollection.new
|
26
|
+
rules_collection.layout_filter_mapping[Nanoc::Int::Pattern.from(/.*/)] = [:erb, { foo: 'bar' }]
|
27
|
+
|
28
|
+
# Mock layout
|
29
|
+
layout = MiniTest::Mock.new
|
30
|
+
layout.expect(:identifier, '/some_layout/')
|
31
|
+
|
32
|
+
# Check
|
33
|
+
assert_equal([:erb, { foo: 'bar' }], rules_collection.filter_for_layout(layout))
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_filter_for_layout_with_existant_layout_and_unknown_filter
|
37
|
+
rules_collection = Nanoc::RuleDSL::RulesCollection.new
|
38
|
+
rules_collection.layout_filter_mapping[Nanoc::Int::Pattern.from(/.*/)] = [:some_unknown_filter, { foo: 'bar' }]
|
39
|
+
|
40
|
+
# Mock layout
|
41
|
+
layout = MiniTest::Mock.new
|
42
|
+
layout.expect(:identifier, '/some_layout/')
|
43
|
+
|
44
|
+
# Check
|
45
|
+
assert_equal([:some_unknown_filter, { foo: 'bar' }], rules_collection.filter_for_layout(layout))
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_filter_for_layout_with_nonexistant_layout
|
49
|
+
rules_collection = Nanoc::RuleDSL::RulesCollection.new
|
50
|
+
rules_collection.layout_filter_mapping[Nanoc::Int::Pattern.from(%r{^/foo/$})] = [:erb, { foo: 'bar' }]
|
51
|
+
|
52
|
+
# Mock layout
|
53
|
+
layout = MiniTest::Mock.new
|
54
|
+
layout.expect(:identifier, '/bar/')
|
55
|
+
|
56
|
+
# Check
|
57
|
+
assert_equal(nil, rules_collection.filter_for_layout(layout))
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_filter_for_layout_with_many_layouts
|
61
|
+
rules_collection = Nanoc::RuleDSL::RulesCollection.new
|
62
|
+
rules_collection.layout_filter_mapping[Nanoc::Int::Pattern.from(%r{^/a/b/c/.*/$})] = [:erb, { char: 'd' }]
|
63
|
+
rules_collection.layout_filter_mapping[Nanoc::Int::Pattern.from(%r{^/a/.*/$})] = [:erb, { char: 'b' }]
|
64
|
+
rules_collection.layout_filter_mapping[Nanoc::Int::Pattern.from(%r{^/a/b/.*/$})] = [:erb, { char: 'c' }] # never used!
|
65
|
+
rules_collection.layout_filter_mapping[Nanoc::Int::Pattern.from(%r{^/.*/$})] = [:erb, { char: 'a' }]
|
66
|
+
|
67
|
+
# Mock layout
|
68
|
+
layouts = [mock, mock, mock, mock]
|
69
|
+
layouts[0].stubs(:identifier).returns('/a/b/c/d/')
|
70
|
+
layouts[1].stubs(:identifier).returns('/a/b/c/')
|
71
|
+
layouts[2].stubs(:identifier).returns('/a/b/')
|
72
|
+
layouts[3].stubs(:identifier).returns('/a/')
|
73
|
+
|
74
|
+
# Get expectations
|
75
|
+
expectations = {
|
76
|
+
0 => 'd',
|
77
|
+
1 => 'b', # never used! not c, because b takes priority
|
78
|
+
2 => 'b',
|
79
|
+
3 => 'a',
|
80
|
+
}
|
81
|
+
|
82
|
+
# Check
|
83
|
+
expectations.each_pair do |num, char|
|
84
|
+
filter_and_args = rules_collection.filter_for_layout(layouts[num])
|
85
|
+
refute_nil(filter_and_args)
|
86
|
+
assert_equal(char, filter_and_args[1][:char])
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nanoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.1.
|
4
|
+
version: 4.1.0b1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Denis Defreyne
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cri
|
@@ -74,14 +74,11 @@ files:
|
|
74
74
|
- lib/nanoc/base.rb
|
75
75
|
- lib/nanoc/base/checksummer.rb
|
76
76
|
- lib/nanoc/base/compilation/compiler.rb
|
77
|
-
- lib/nanoc/base/compilation/compiler_dsl.rb
|
78
77
|
- lib/nanoc/base/compilation/dependency_tracker.rb
|
79
78
|
- lib/nanoc/base/compilation/filter.rb
|
80
79
|
- lib/nanoc/base/compilation/item_rep_repo.rb
|
81
80
|
- lib/nanoc/base/compilation/outdatedness_checker.rb
|
82
81
|
- lib/nanoc/base/compilation/outdatedness_reasons.rb
|
83
|
-
- lib/nanoc/base/compilation/rule.rb
|
84
|
-
- lib/nanoc/base/compilation/rule_context.rb
|
85
82
|
- lib/nanoc/base/context.rb
|
86
83
|
- lib/nanoc/base/core_ext.rb
|
87
84
|
- lib/nanoc/base/core_ext/array.rb
|
@@ -106,7 +103,6 @@ files:
|
|
106
103
|
- lib/nanoc/base/entities/rule_memory_actions/filter.rb
|
107
104
|
- lib/nanoc/base/entities/rule_memory_actions/layout.rb
|
108
105
|
- lib/nanoc/base/entities/rule_memory_actions/snapshot.rb
|
109
|
-
- lib/nanoc/base/entities/rules_collection.rb
|
110
106
|
- lib/nanoc/base/entities/site.rb
|
111
107
|
- lib/nanoc/base/entities/snapshot_def.rb
|
112
108
|
- lib/nanoc/base/error.rb
|
@@ -123,6 +119,7 @@ files:
|
|
123
119
|
- lib/nanoc/base/repos/site_loader.rb
|
124
120
|
- lib/nanoc/base/repos/store.rb
|
125
121
|
- lib/nanoc/base/services.rb
|
122
|
+
- lib/nanoc/base/services/action_provider.rb
|
126
123
|
- lib/nanoc/base/services/compiler_loader.rb
|
127
124
|
- lib/nanoc/base/services/executor.rb
|
128
125
|
- lib/nanoc/base/services/item_rep_builder.rb
|
@@ -130,11 +127,6 @@ files:
|
|
130
127
|
- lib/nanoc/base/services/item_rep_selector.rb
|
131
128
|
- lib/nanoc/base/services/item_rep_writer.rb
|
132
129
|
- lib/nanoc/base/services/notification_center.rb
|
133
|
-
- lib/nanoc/base/services/postprocessor.rb
|
134
|
-
- lib/nanoc/base/services/preprocessor.rb
|
135
|
-
- lib/nanoc/base/services/recording_executor.rb
|
136
|
-
- lib/nanoc/base/services/rule_memory_calculator.rb
|
137
|
-
- lib/nanoc/base/services/rules_loader.rb
|
138
130
|
- lib/nanoc/base/services/temp_filename_factory.rb
|
139
131
|
- lib/nanoc/base/views.rb
|
140
132
|
- lib/nanoc/base/views/config_view.rb
|
@@ -247,10 +239,17 @@ files:
|
|
247
239
|
- lib/nanoc/helpers/tagging.rb
|
248
240
|
- lib/nanoc/helpers/text.rb
|
249
241
|
- lib/nanoc/helpers/xml_sitemap.rb
|
242
|
+
- lib/nanoc/rule_dsl.rb
|
243
|
+
- lib/nanoc/rule_dsl/action_provider.rb
|
244
|
+
- lib/nanoc/rule_dsl/compiler_dsl.rb
|
245
|
+
- lib/nanoc/rule_dsl/recording_executor.rb
|
246
|
+
- lib/nanoc/rule_dsl/rule.rb
|
247
|
+
- lib/nanoc/rule_dsl/rule_context.rb
|
248
|
+
- lib/nanoc/rule_dsl/rule_memory_calculator.rb
|
249
|
+
- lib/nanoc/rule_dsl/rules_collection.rb
|
250
|
+
- lib/nanoc/rule_dsl/rules_loader.rb
|
250
251
|
- lib/nanoc/version.rb
|
251
|
-
- nanoc-4.0.2.gem
|
252
252
|
- nanoc.gemspec
|
253
|
-
- tags
|
254
253
|
- tasks/doc.rake
|
255
254
|
- tasks/rubocop.rake
|
256
255
|
- tasks/test.rake
|
@@ -262,7 +261,6 @@ files:
|
|
262
261
|
- test/base/test_checksum_store.rb
|
263
262
|
- test/base/test_code_snippet.rb
|
264
263
|
- test/base/test_compiler.rb
|
265
|
-
- test/base/test_compiler_dsl.rb
|
266
264
|
- test/base/test_context.rb
|
267
265
|
- test/base/test_data_source.rb
|
268
266
|
- test/base/test_dependency_tracker.rb
|
@@ -276,7 +274,6 @@ files:
|
|
276
274
|
- test/base/test_notification_center.rb
|
277
275
|
- test/base/test_outdatedness_checker.rb
|
278
276
|
- test/base/test_plugin.rb
|
279
|
-
- test/base/test_rule.rb
|
280
277
|
- test/base/test_site.rb
|
281
278
|
- test/base/test_store.rb
|
282
279
|
- test/cli/commands/test_check.rb
|
@@ -351,6 +348,10 @@ files:
|
|
351
348
|
- test/helpers/test_tagging.rb
|
352
349
|
- test/helpers/test_text.rb
|
353
350
|
- test/helpers/test_xml_sitemap.rb
|
351
|
+
- test/rule_dsl/test_action_provider.rb
|
352
|
+
- test/rule_dsl/test_compiler_dsl.rb
|
353
|
+
- test/rule_dsl/test_rule.rb
|
354
|
+
- test/rule_dsl/test_rules_collection.rb
|
354
355
|
- test/test_gem.rb
|
355
356
|
homepage: http://nanoc.ws/
|
356
357
|
licenses:
|
@@ -374,7 +375,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
374
375
|
version: 1.3.1
|
375
376
|
requirements: []
|
376
377
|
rubyforge_project:
|
377
|
-
rubygems_version: 2.
|
378
|
+
rubygems_version: 2.5.1
|
378
379
|
signing_key:
|
379
380
|
specification_version: 4
|
380
381
|
summary: A static-site generator with a focus on flexibility.
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module Nanoc::Int
|
2
|
-
# @api private
|
3
|
-
class Postprocessor
|
4
|
-
def initialize(context, site:, rules_collection:)
|
5
|
-
@context = context
|
6
|
-
@site = site
|
7
|
-
@rules_collection = rules_collection
|
8
|
-
end
|
9
|
-
|
10
|
-
def run
|
11
|
-
ctx = new_postprocessor_context
|
12
|
-
|
13
|
-
@rules_collection.postprocessors.each_value do |postprocessor|
|
14
|
-
ctx.instance_eval(&postprocessor)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# @api private
|
19
|
-
def new_postprocessor_context
|
20
|
-
Nanoc::Int::Context.new(
|
21
|
-
config: Nanoc::ConfigView.new(@site.config, @context),
|
22
|
-
items: Nanoc::PostCompileItemCollectionView.new(@site.items, @context),
|
23
|
-
)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module Nanoc::Int
|
2
|
-
# @api private
|
3
|
-
class Preprocessor
|
4
|
-
def initialize(site:, rules_collection:)
|
5
|
-
@site = site
|
6
|
-
@rules_collection = rules_collection
|
7
|
-
end
|
8
|
-
|
9
|
-
def run
|
10
|
-
ctx = new_preprocessor_context
|
11
|
-
|
12
|
-
@rules_collection.preprocessors.each_value do |preprocessor|
|
13
|
-
ctx.instance_eval(&preprocessor)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
# @api private
|
18
|
-
def new_preprocessor_context
|
19
|
-
Nanoc::Int::Context.new(
|
20
|
-
config: Nanoc::MutableConfigView.new(@site.config, nil),
|
21
|
-
items: Nanoc::MutableItemCollectionView.new(@site.items, nil),
|
22
|
-
layouts: Nanoc::MutableLayoutCollectionView.new(@site.layouts, nil),
|
23
|
-
)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
data/nanoc-4.0.2.gem
DELETED
Binary file
|