nanoc 3.6.4 → 3.6.5
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.lock +42 -43
- data/NEWS.md +8 -1
- data/lib/nanoc.rb +1 -1
- data/lib/nanoc/base/compilation/compiler.rb +2 -1
- data/lib/nanoc/base/compilation/dependency_tracker.rb +5 -0
- data/lib/nanoc/data_sources/filesystem_unified.rb +3 -3
- data/nanoc.gemspec +1 -1
- data/test/base/test_compiler.rb +34 -0
- data/test/data_sources/test_filesystem_unified.rb +40 -0
- metadata +23 -11
- checksums.yaml +0 -15
- data/Architecture.md +0 -70
- data/TODO.md +0 -114
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
nanoc (3.6.
|
|
4
|
+
nanoc (3.6.5)
|
|
5
5
|
cri (~> 2.3)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
@@ -11,43 +11,42 @@ GEM
|
|
|
11
11
|
adsf (1.1.1)
|
|
12
12
|
rack (>= 1.0.0)
|
|
13
13
|
bluecloth (2.2.0)
|
|
14
|
-
builder (3.2.
|
|
14
|
+
builder (3.2.2)
|
|
15
15
|
coderay (1.0.9)
|
|
16
16
|
coffee-script (2.2.0)
|
|
17
17
|
coffee-script-source
|
|
18
18
|
execjs
|
|
19
|
-
coffee-script-source (1.6.
|
|
19
|
+
coffee-script-source (1.6.3)
|
|
20
20
|
colored (1.2)
|
|
21
21
|
commonjs (0.2.6)
|
|
22
|
-
cri (2.
|
|
22
|
+
cri (2.4.0)
|
|
23
23
|
colored (>= 1.2)
|
|
24
24
|
erubis (2.7.0)
|
|
25
|
-
excon (0.
|
|
26
|
-
execjs (
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
fog (1.10.1)
|
|
25
|
+
excon (0.25.3)
|
|
26
|
+
execjs (2.0.1)
|
|
27
|
+
ffi (1.9.0)
|
|
28
|
+
fog (1.15.0)
|
|
30
29
|
builder
|
|
31
|
-
excon (~> 0.
|
|
30
|
+
excon (~> 0.25.0)
|
|
32
31
|
formatador (~> 0.2.0)
|
|
33
32
|
mime-types
|
|
34
33
|
multi_json (~> 1.0)
|
|
35
34
|
net-scp (~> 1.1)
|
|
36
35
|
net-ssh (>= 2.1.3)
|
|
37
|
-
nokogiri (~> 1.5
|
|
36
|
+
nokogiri (~> 1.5)
|
|
38
37
|
ruby-hmac
|
|
39
38
|
formatador (0.2.4)
|
|
40
|
-
haml (4.0.
|
|
39
|
+
haml (4.0.3)
|
|
41
40
|
tilt
|
|
42
41
|
handlebars (0.4.0)
|
|
43
42
|
commonjs (~> 0.2.3)
|
|
44
43
|
therubyracer (~> 0.11.1)
|
|
45
|
-
json (1.
|
|
46
|
-
kramdown (1.0
|
|
47
|
-
less (2.3.
|
|
44
|
+
json (1.8.0)
|
|
45
|
+
kramdown (1.2.0)
|
|
46
|
+
less (2.3.3)
|
|
48
47
|
commonjs (~> 0.2.6)
|
|
49
48
|
libv8 (3.11.8.17)
|
|
50
|
-
listen (1.0
|
|
49
|
+
listen (1.3.0)
|
|
51
50
|
rb-fsevent (>= 0.9.3)
|
|
52
51
|
rb-inotify (>= 0.9)
|
|
53
52
|
rb-kqueue (>= 0.2)
|
|
@@ -56,63 +55,63 @@ GEM
|
|
|
56
55
|
maruku (0.6.1)
|
|
57
56
|
syntax (>= 1.0.0)
|
|
58
57
|
metaclass (0.0.1)
|
|
59
|
-
method_source (0.8.
|
|
60
|
-
mime-types (1.
|
|
61
|
-
minitest (4.7.
|
|
62
|
-
mocha (0.
|
|
58
|
+
method_source (0.8.2)
|
|
59
|
+
mime-types (1.25)
|
|
60
|
+
minitest (4.7.5)
|
|
61
|
+
mocha (0.14.0)
|
|
63
62
|
metaclass (~> 0.0.1)
|
|
64
|
-
multi_json (1.7.
|
|
63
|
+
multi_json (1.7.9)
|
|
65
64
|
mustache (0.99.4)
|
|
66
|
-
net-scp (1.1.
|
|
65
|
+
net-scp (1.1.2)
|
|
67
66
|
net-ssh (>= 2.6.5)
|
|
68
|
-
net-ssh (2.6.
|
|
69
|
-
nokogiri (1.5.
|
|
70
|
-
pandoc-ruby (0.
|
|
67
|
+
net-ssh (2.6.8)
|
|
68
|
+
nokogiri (1.5.10)
|
|
69
|
+
pandoc-ruby (0.7.5)
|
|
71
70
|
posix-spawn (0.3.6)
|
|
72
|
-
pry (0.9.12.
|
|
71
|
+
pry (0.9.12.2)
|
|
73
72
|
coderay (~> 1.0.5)
|
|
74
73
|
method_source (~> 0.8)
|
|
75
74
|
slop (~> 3.4)
|
|
76
|
-
pygments.rb (0.5.
|
|
75
|
+
pygments.rb (0.5.2)
|
|
77
76
|
posix-spawn (~> 0.3.6)
|
|
78
77
|
yajl-ruby (~> 1.1.0)
|
|
79
78
|
rack (1.5.2)
|
|
80
79
|
rainpress (1.0)
|
|
81
|
-
rake (10.0
|
|
80
|
+
rake (10.1.0)
|
|
82
81
|
rb-fsevent (0.9.3)
|
|
83
|
-
rb-inotify (0.9.
|
|
82
|
+
rb-inotify (0.9.1)
|
|
84
83
|
ffi (>= 0.5.0)
|
|
85
84
|
rb-kqueue (0.2.0)
|
|
86
85
|
ffi (>= 0.5.0)
|
|
87
|
-
rdiscount (2.
|
|
86
|
+
rdiscount (2.1.6)
|
|
88
87
|
rdoc (4.0.1)
|
|
89
88
|
json (~> 1.4)
|
|
90
|
-
redcarpet (
|
|
91
|
-
ref (1.0.
|
|
89
|
+
redcarpet (3.0.0)
|
|
90
|
+
ref (1.0.5)
|
|
92
91
|
ruby-hmac (0.4.0)
|
|
93
92
|
rubypants (0.2.0)
|
|
94
|
-
sass (3.2.
|
|
95
|
-
slim (
|
|
96
|
-
temple (~> 0.6.
|
|
97
|
-
tilt (
|
|
98
|
-
slop (3.4.
|
|
93
|
+
sass (3.2.10)
|
|
94
|
+
slim (2.0.1)
|
|
95
|
+
temple (~> 0.6.6)
|
|
96
|
+
tilt (>= 1.3.3, < 2.1)
|
|
97
|
+
slop (3.4.6)
|
|
99
98
|
syntax (1.0.0)
|
|
100
99
|
systemu (2.5.2)
|
|
101
|
-
temple (0.6.
|
|
100
|
+
temple (0.6.6)
|
|
102
101
|
therubyracer (0.11.4)
|
|
103
102
|
libv8 (~> 3.11.8.12)
|
|
104
103
|
ref
|
|
105
|
-
tilt (1.
|
|
106
|
-
typogruby (1.0.
|
|
104
|
+
tilt (1.4.1)
|
|
105
|
+
typogruby (1.0.16)
|
|
107
106
|
rubypants
|
|
108
|
-
uglifier (2.
|
|
107
|
+
uglifier (2.2.1)
|
|
109
108
|
execjs (>= 0.3.0)
|
|
110
109
|
multi_json (~> 1.0, >= 1.0.2)
|
|
111
110
|
w3c_validators (1.2)
|
|
112
111
|
json
|
|
113
112
|
nokogiri
|
|
114
113
|
yajl-ruby (1.1.0)
|
|
115
|
-
yard (0.8.
|
|
114
|
+
yard (0.8.7)
|
|
116
115
|
yuicompressor (1.2.1)
|
|
117
116
|
|
|
118
117
|
PLATFORMS
|
|
@@ -135,7 +134,7 @@ DEPENDENCIES
|
|
|
135
134
|
markaby
|
|
136
135
|
maruku
|
|
137
136
|
mime-types
|
|
138
|
-
minitest
|
|
137
|
+
minitest (~> 4.0)
|
|
139
138
|
mocha
|
|
140
139
|
mustache
|
|
141
140
|
nanoc!
|
data/NEWS.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# nanoc news
|
|
2
2
|
|
|
3
|
+
## 3.6.5 (2013-09-29)
|
|
4
|
+
|
|
5
|
+
Fixes:
|
|
6
|
+
|
|
7
|
+
* Fixed bug which could cause incorrect dependencies to be generated in some cases
|
|
8
|
+
* Fixed handling of index filenames when allowing periods in identifiers
|
|
9
|
+
|
|
3
10
|
## 3.6.4 (2013-05-29)
|
|
4
11
|
|
|
5
12
|
Enhancements:
|
|
@@ -154,7 +161,7 @@ Improvements:
|
|
|
154
161
|
## 3.4 (2012-06-09)
|
|
155
162
|
|
|
156
163
|
* Improved error output and added crash log
|
|
157
|
-
* Renamed `debug` and `info` commands to `show-data` and `show-plugins`, respectively
|
|
164
|
+
* Renamed `debug` and `info` commands to `show-data` and `show-plugins`, respectively
|
|
158
165
|
* Added `show-rules` command (aka `explain`)
|
|
159
166
|
|
|
160
167
|
Extensions:
|
data/lib/nanoc.rb
CHANGED
|
@@ -389,13 +389,14 @@ module Nanoc
|
|
|
389
389
|
rep.compiled = true
|
|
390
390
|
compiled_content_cache[rep] = rep.content
|
|
391
391
|
|
|
392
|
-
Nanoc::NotificationCenter.post(:visit_ended, rep.item)
|
|
393
392
|
Nanoc::NotificationCenter.post(:processing_ended, rep)
|
|
394
393
|
Nanoc::NotificationCenter.post(:compilation_ended, rep)
|
|
395
394
|
rescue => e
|
|
396
395
|
rep.forget_progress
|
|
397
396
|
Nanoc::NotificationCenter.post(:compilation_failed, rep, e)
|
|
398
397
|
raise e
|
|
398
|
+
ensure
|
|
399
|
+
Nanoc::NotificationCenter.post(:visit_ended, rep.item)
|
|
399
400
|
end
|
|
400
401
|
|
|
401
402
|
# Clears the list of dependencies for items that will be recompiled.
|
|
@@ -70,6 +70,11 @@ module Nanoc
|
|
|
70
70
|
#
|
|
71
71
|
# @return [void]
|
|
72
72
|
def stop
|
|
73
|
+
# Sanity check
|
|
74
|
+
if !@stack.empty?
|
|
75
|
+
raise "Internal inconsistency: dependency tracker stack not empty at end of compilation"
|
|
76
|
+
end
|
|
77
|
+
|
|
73
78
|
# Unregister
|
|
74
79
|
Nanoc::NotificationCenter.remove(:visit_started, self)
|
|
75
80
|
Nanoc::NotificationCenter.remove(:visit_ended, self)
|
|
@@ -36,7 +36,7 @@ module Nanoc::DataSources
|
|
|
36
36
|
#
|
|
37
37
|
# (`allow_periods_in_identifiers` set to true)
|
|
38
38
|
# foo.entry.html → /foo.entry/
|
|
39
|
-
#
|
|
39
|
+
#
|
|
40
40
|
# (`allow_periods_in_identifiers` set to false)
|
|
41
41
|
# foo.html.erb → /foo/
|
|
42
42
|
#
|
|
@@ -108,8 +108,8 @@ module Nanoc::DataSources
|
|
|
108
108
|
# Returns the identifier derived from the given filename, first stripping
|
|
109
109
|
# the given directory name off the filename.
|
|
110
110
|
def identifier_for_filename(filename)
|
|
111
|
-
if filename =~ /(^|\/)index\.[^\/]
|
|
112
|
-
regex = ((@config && @config[:allow_periods_in_identifiers]) ? /\/?index\.[^\/\.]
|
|
111
|
+
if filename =~ /(^|\/)index(\.[^\/]+)?$/
|
|
112
|
+
regex = ((@config && @config[:allow_periods_in_identifiers]) ? /\/?(index)?(\.[^\/\.]+)?$/ : /\/?index(\.[^\/]+)?$/)
|
|
113
113
|
else
|
|
114
114
|
regex = ((@config && @config[:allow_periods_in_identifiers]) ? /\.[^\/\.]+$/ : /\.[^\/]+$/)
|
|
115
115
|
end
|
data/nanoc.gemspec
CHANGED
|
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
|
26
26
|
|
|
27
27
|
s.add_runtime_dependency('cri', '~> 2.3')
|
|
28
28
|
|
|
29
|
-
s.add_development_dependency('minitest')
|
|
29
|
+
s.add_development_dependency('minitest', '~> 4.0')
|
|
30
30
|
s.add_development_dependency('mocha')
|
|
31
31
|
s.add_development_dependency('rake')
|
|
32
32
|
s.add_development_dependency('rdiscount')
|
data/test/base/test_compiler.rb
CHANGED
|
@@ -556,4 +556,38 @@ class Nanoc::CompilerTest < Nanoc::TestCase
|
|
|
556
556
|
end
|
|
557
557
|
end
|
|
558
558
|
|
|
559
|
+
def test_compiler_dependency_on_unmet_dependency
|
|
560
|
+
with_site do
|
|
561
|
+
File.open('content/a.html', 'w') do |io|
|
|
562
|
+
io.write('<% @items["/b/"].compiled_content %>')
|
|
563
|
+
end
|
|
564
|
+
File.open('content/b.html', 'w') do |io|
|
|
565
|
+
io.write('I am feeling so dependent!')
|
|
566
|
+
end
|
|
567
|
+
File.open('Rules', 'w') do |io|
|
|
568
|
+
io.write "compile '*' do\n"
|
|
569
|
+
io.write " filter :erb\n"
|
|
570
|
+
io.write "end\n"
|
|
571
|
+
io.write "\n"
|
|
572
|
+
io.write "route '*' do\n"
|
|
573
|
+
io.write " item.identifier.chop + '.' + item[:extension]\n"
|
|
574
|
+
io.write "end\n"
|
|
575
|
+
io.write "\n"
|
|
576
|
+
io.write "layout '*', :erb\n"
|
|
577
|
+
end
|
|
578
|
+
|
|
579
|
+
site = Nanoc::Site.new('.')
|
|
580
|
+
rep = site.items['/a/'].reps[0]
|
|
581
|
+
dt = site.compiler.dependency_tracker
|
|
582
|
+
dt.start
|
|
583
|
+
assert_raises Nanoc::Errors::UnmetDependency do
|
|
584
|
+
site.compiler.send :compile_rep, rep
|
|
585
|
+
end
|
|
586
|
+
dt.stop
|
|
587
|
+
|
|
588
|
+
stack = dt.instance_eval { @stack }
|
|
589
|
+
assert_empty stack
|
|
590
|
+
end
|
|
591
|
+
end
|
|
592
|
+
|
|
559
593
|
end
|
|
@@ -238,6 +238,46 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
|
|
|
238
238
|
end
|
|
239
239
|
end
|
|
240
240
|
|
|
241
|
+
def test_identifier_for_filename_with_index_filenames_allowing_periods_in_identifier
|
|
242
|
+
expected = {
|
|
243
|
+
'/index.html.erb' => '/index.html/',
|
|
244
|
+
'/index.html' => '/',
|
|
245
|
+
'/index' => '/',
|
|
246
|
+
'/foo/index.html.erb' => '/foo/index.html/',
|
|
247
|
+
'/foo/index.html' => '/foo/',
|
|
248
|
+
'/foo/index' => '/foo/',
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
data_source = new_data_source(:allow_periods_in_identifiers => true)
|
|
252
|
+
expected.each_pair do |input, expected_output|
|
|
253
|
+
actual_output = data_source.send(:identifier_for_filename, input)
|
|
254
|
+
assert_equal(
|
|
255
|
+
expected_output, actual_output,
|
|
256
|
+
"identifier_for_filename(#{input.inspect}) should equal #{expected_output.inspect}, not #{actual_output.inspect}"
|
|
257
|
+
)
|
|
258
|
+
end
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
def test_identifier_for_filename_with_index_filenames_disallowing_periods_in_identifier
|
|
262
|
+
expected = {
|
|
263
|
+
'/index.html.erb' => '/',
|
|
264
|
+
'/index.html' => '/',
|
|
265
|
+
'/index' => '/',
|
|
266
|
+
'/foo/index.html.erb' => '/foo/',
|
|
267
|
+
'/foo/index.html' => '/foo/',
|
|
268
|
+
'/foo/index' => '/foo/',
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
data_source = new_data_source
|
|
272
|
+
expected.each_pair do |input, expected_output|
|
|
273
|
+
actual_output = data_source.send(:identifier_for_filename, input)
|
|
274
|
+
assert_equal(
|
|
275
|
+
expected_output, actual_output,
|
|
276
|
+
"identifier_for_filename(#{input.inspect}) should equal #{expected_output.inspect}, not #{actual_output.inspect}"
|
|
277
|
+
)
|
|
278
|
+
end
|
|
279
|
+
end
|
|
280
|
+
|
|
241
281
|
def test_load_objects_allowing_periods_in_identifiers
|
|
242
282
|
# Create data source
|
|
243
283
|
data_source = new_data_source(:allow_periods_in_identifiers => true)
|
metadata
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nanoc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.6.
|
|
4
|
+
version: 3.6.5
|
|
5
|
+
prerelease:
|
|
5
6
|
platform: ruby
|
|
6
7
|
authors:
|
|
7
8
|
- Denis Defreyne
|
|
8
9
|
autorequire:
|
|
9
10
|
bindir: bin
|
|
10
11
|
cert_chain: []
|
|
11
|
-
date: 2013-
|
|
12
|
+
date: 2013-09-29 00:00:00.000000000 Z
|
|
12
13
|
dependencies:
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
|
14
15
|
name: cri
|
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
none: false
|
|
16
18
|
requirements:
|
|
17
19
|
- - ~>
|
|
18
20
|
- !ruby/object:Gem::Version
|
|
@@ -20,6 +22,7 @@ dependencies:
|
|
|
20
22
|
type: :runtime
|
|
21
23
|
prerelease: false
|
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
23
26
|
requirements:
|
|
24
27
|
- - ~>
|
|
25
28
|
- !ruby/object:Gem::Version
|
|
@@ -27,20 +30,23 @@ dependencies:
|
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
|
28
31
|
name: minitest
|
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
+
none: false
|
|
30
34
|
requirements:
|
|
31
|
-
- -
|
|
35
|
+
- - ~>
|
|
32
36
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0'
|
|
37
|
+
version: '4.0'
|
|
34
38
|
type: :development
|
|
35
39
|
prerelease: false
|
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
37
42
|
requirements:
|
|
38
|
-
- -
|
|
43
|
+
- - ~>
|
|
39
44
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0'
|
|
45
|
+
version: '4.0'
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
|
42
47
|
name: mocha
|
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
+
none: false
|
|
44
50
|
requirements:
|
|
45
51
|
- - ! '>='
|
|
46
52
|
- !ruby/object:Gem::Version
|
|
@@ -48,6 +54,7 @@ dependencies:
|
|
|
48
54
|
type: :development
|
|
49
55
|
prerelease: false
|
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
none: false
|
|
51
58
|
requirements:
|
|
52
59
|
- - ! '>='
|
|
53
60
|
- !ruby/object:Gem::Version
|
|
@@ -55,6 +62,7 @@ dependencies:
|
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
|
56
63
|
name: rake
|
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
|
65
|
+
none: false
|
|
58
66
|
requirements:
|
|
59
67
|
- - ! '>='
|
|
60
68
|
- !ruby/object:Gem::Version
|
|
@@ -62,6 +70,7 @@ dependencies:
|
|
|
62
70
|
type: :development
|
|
63
71
|
prerelease: false
|
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
+
none: false
|
|
65
74
|
requirements:
|
|
66
75
|
- - ! '>='
|
|
67
76
|
- !ruby/object:Gem::Version
|
|
@@ -69,6 +78,7 @@ dependencies:
|
|
|
69
78
|
- !ruby/object:Gem::Dependency
|
|
70
79
|
name: rdiscount
|
|
71
80
|
requirement: !ruby/object:Gem::Requirement
|
|
81
|
+
none: false
|
|
72
82
|
requirements:
|
|
73
83
|
- - ! '>='
|
|
74
84
|
- !ruby/object:Gem::Version
|
|
@@ -76,6 +86,7 @@ dependencies:
|
|
|
76
86
|
type: :development
|
|
77
87
|
prerelease: false
|
|
78
88
|
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
+
none: false
|
|
79
90
|
requirements:
|
|
80
91
|
- - ! '>='
|
|
81
92
|
- !ruby/object:Gem::Version
|
|
@@ -83,6 +94,7 @@ dependencies:
|
|
|
83
94
|
- !ruby/object:Gem::Dependency
|
|
84
95
|
name: yard
|
|
85
96
|
requirement: !ruby/object:Gem::Requirement
|
|
97
|
+
none: false
|
|
86
98
|
requirements:
|
|
87
99
|
- - ! '>='
|
|
88
100
|
- !ruby/object:Gem::Version
|
|
@@ -90,6 +102,7 @@ dependencies:
|
|
|
90
102
|
type: :development
|
|
91
103
|
prerelease: false
|
|
92
104
|
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
+
none: false
|
|
93
106
|
requirements:
|
|
94
107
|
- - ! '>='
|
|
95
108
|
- !ruby/object:Gem::Version
|
|
@@ -108,7 +121,6 @@ extra_rdoc_files:
|
|
|
108
121
|
- README.md
|
|
109
122
|
- NEWS.md
|
|
110
123
|
files:
|
|
111
|
-
- Architecture.md
|
|
112
124
|
- ChangeLog
|
|
113
125
|
- CONTRIBUTING.md
|
|
114
126
|
- Gemfile
|
|
@@ -117,7 +129,6 @@ files:
|
|
|
117
129
|
- NEWS.md
|
|
118
130
|
- Rakefile
|
|
119
131
|
- README.md
|
|
120
|
-
- TODO.md
|
|
121
132
|
- doc/yardoc_templates/default/layout/html/footer.erb
|
|
122
133
|
- bin/nanoc
|
|
123
134
|
- lib/nanoc/base/compilation/checksum_store.rb
|
|
@@ -395,7 +406,6 @@ files:
|
|
|
395
406
|
homepage: http://nanoc.ws/
|
|
396
407
|
licenses:
|
|
397
408
|
- MIT
|
|
398
|
-
metadata: {}
|
|
399
409
|
post_install_message:
|
|
400
410
|
rdoc_options:
|
|
401
411
|
- --main
|
|
@@ -403,20 +413,22 @@ rdoc_options:
|
|
|
403
413
|
require_paths:
|
|
404
414
|
- lib
|
|
405
415
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
416
|
+
none: false
|
|
406
417
|
requirements:
|
|
407
418
|
- - ! '>='
|
|
408
419
|
- !ruby/object:Gem::Version
|
|
409
420
|
version: '0'
|
|
410
421
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
422
|
+
none: false
|
|
411
423
|
requirements:
|
|
412
424
|
- - ! '>='
|
|
413
425
|
- !ruby/object:Gem::Version
|
|
414
426
|
version: '0'
|
|
415
427
|
requirements: []
|
|
416
428
|
rubyforge_project:
|
|
417
|
-
rubygems_version:
|
|
429
|
+
rubygems_version: 1.8.23
|
|
418
430
|
signing_key:
|
|
419
|
-
specification_version:
|
|
431
|
+
specification_version: 3
|
|
420
432
|
summary: a web publishing system written in Ruby for building small to medium-sized
|
|
421
433
|
websites.
|
|
422
434
|
test_files: []
|
checksums.yaml
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
!binary "U0hBMQ==":
|
|
3
|
-
metadata.gz: !binary |-
|
|
4
|
-
NzhlOGM4MmEyNTNlMTNmZGU1Y2MzN2E1MzBjNzE2ZTdmNjgxYTQ2OA==
|
|
5
|
-
data.tar.gz: !binary |-
|
|
6
|
-
ZmY2MDVlNjQyMGViOTdlZDg4NDA3YWUzN2E4YjcwODI3YjUwOTZhMg==
|
|
7
|
-
!binary "U0hBNTEy":
|
|
8
|
-
metadata.gz: !binary |-
|
|
9
|
-
YzU3ZGNlMTcwOGExMTgzNGQzNmFhNzc2OTc2ZmU2NDJlMDFhZjc0YzMxNGQz
|
|
10
|
-
NTRiNzk3OWU4ZWIyNTRjMTU2MzRjZDg5YmFmNzQ3MGFkZWNlYmQ1NjYzNzM4
|
|
11
|
-
ZTY1MjhlN2EzZmQyMTFlOWNkZmFiNDNiNWVlNGU1ZWNiYjcwZTg=
|
|
12
|
-
data.tar.gz: !binary |-
|
|
13
|
-
NzNiMjNjOTA0NTI5NTc0ZjhlOGYwNGIxNTgzZTZkOTNiMGNmMjZhM2MzYmM3
|
|
14
|
-
ODQwMmQ3NTYwMThhN2QzZTUzMTQ5MmY3MmVmMDAwODEyOWQwMTg4MWNhZDll
|
|
15
|
-
YjRiMzA3MmJhMTIzMjZiNzYzNTczMGNhNDQ1ZDA5MDhhYmFlNmE=
|
data/Architecture.md
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
nanoc Architecture
|
|
2
|
-
==================
|
|
3
|
-
|
|
4
|
-
Independent
|
|
5
|
-
-----------
|
|
6
|
-
|
|
7
|
-
* Context
|
|
8
|
-
* DirectedGraph
|
|
9
|
-
* NotificationCenter
|
|
10
|
-
* PluginRegistry
|
|
11
|
-
* Memoization
|
|
12
|
-
|
|
13
|
-
Interactors
|
|
14
|
-
-----------
|
|
15
|
-
|
|
16
|
-
* Compiler
|
|
17
|
-
|
|
18
|
-
Entities
|
|
19
|
-
--------
|
|
20
|
-
|
|
21
|
-
* Site
|
|
22
|
-
* Item
|
|
23
|
-
* ItemRep
|
|
24
|
-
* Layout
|
|
25
|
-
* Rule
|
|
26
|
-
* RulesCollection
|
|
27
|
-
* CodeSnippet
|
|
28
|
-
* Configuration
|
|
29
|
-
|
|
30
|
-
Stores
|
|
31
|
-
------
|
|
32
|
-
|
|
33
|
-
* DataSource
|
|
34
|
-
* FilesystemDataSource
|
|
35
|
-
* RulesStore
|
|
36
|
-
* FilesystemRulesStore + CompilerDSL
|
|
37
|
-
* SnapshotStore
|
|
38
|
-
* InMemorySnapshotStore
|
|
39
|
-
* SQLite3SnapshotStore
|
|
40
|
-
|
|
41
|
-
### Ugly
|
|
42
|
-
|
|
43
|
-
* ChecksumStore
|
|
44
|
-
* CompiledContentCache
|
|
45
|
-
* RuleMemoryStore
|
|
46
|
-
|
|
47
|
-
Meh
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
* proxies
|
|
51
|
-
* ItemRepProxy (used in Rules)
|
|
52
|
-
* ItemRepRecorderProxy (used in determining Rules changes)
|
|
53
|
-
* DependencyTracker
|
|
54
|
-
* Filter
|
|
55
|
-
* OutdatednessChecker
|
|
56
|
-
* RuleContext
|
|
57
|
-
* RuleMemoryCalculator
|
|
58
|
-
* Store
|
|
59
|
-
|
|
60
|
-
### Not classes
|
|
61
|
-
|
|
62
|
-
* OutdatednessReasons
|
|
63
|
-
* Errors
|
|
64
|
-
|
|
65
|
-
### Extensions
|
|
66
|
-
|
|
67
|
-
* ArrayExtensions
|
|
68
|
-
* HashExtensions
|
|
69
|
-
* PathnameExtensions
|
|
70
|
-
* StringExtensions
|
data/TODO.md
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
To Do for nanoc 4.0
|
|
2
|
-
===================
|
|
3
|
-
|
|
4
|
-
New
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
* [3.x] assert that textual filter must return string
|
|
8
|
-
* Get rid of notification center (use delegation)
|
|
9
|
-
* Get rid of core ext
|
|
10
|
-
* Don't recursively clean attributes
|
|
11
|
-
* All stores should be pluggable
|
|
12
|
-
* filters should accept content, not a string
|
|
13
|
-
* Layouts could be binary too! (maybe not super useful)
|
|
14
|
-
|
|
15
|
-
Proxies
|
|
16
|
-
-------
|
|
17
|
-
|
|
18
|
-
Item should not contain a list of item reps
|
|
19
|
-
Instead, there should be an ItemRepsCollection that you can query
|
|
20
|
-
item_reps_for(item)
|
|
21
|
-
|
|
22
|
-
Item-per-item compilation
|
|
23
|
-
-------------------------
|
|
24
|
-
|
|
25
|
-
There should be a transaction around each item compilation, instead of around the entire site.
|
|
26
|
-
|
|
27
|
-
True partials?
|
|
28
|
-
--------------
|
|
29
|
-
|
|
30
|
-
Rendering layouts is ugly! What about partial layouts though? (render box do ... end)
|
|
31
|
-
|
|
32
|
-
Populate in data sources
|
|
33
|
-
------------------------
|
|
34
|
-
|
|
35
|
-
`Nanoc::DEFAULT_CONTENT`
|
|
36
|
-
|
|
37
|
-
all data sources are told to populate
|
|
38
|
-
|
|
39
|
-
Finding modified items
|
|
40
|
-
----------------------
|
|
41
|
-
|
|
42
|
-
Data sources should be queried to find out removed, added and changed items.
|
|
43
|
-
|
|
44
|
-
Item proxies
|
|
45
|
-
------------
|
|
46
|
-
|
|
47
|
-
Maybe this can be implemented as decorators.
|
|
48
|
-
|
|
49
|
-
* core
|
|
50
|
-
* proxies
|
|
51
|
-
* while in rules
|
|
52
|
-
* while being filtered
|
|
53
|
-
|
|
54
|
-
### Core
|
|
55
|
-
|
|
56
|
-
Nanoc::Core::Item
|
|
57
|
-
identifier
|
|
58
|
-
content
|
|
59
|
-
attributes
|
|
60
|
-
|
|
61
|
-
Nanoc::Core::ItemRep
|
|
62
|
-
item_identifier
|
|
63
|
-
name
|
|
64
|
-
|
|
65
|
-
Nanoc::Core::ItemRepSnapshot
|
|
66
|
-
item_identifier
|
|
67
|
-
item_rep_name
|
|
68
|
-
name
|
|
69
|
-
content
|
|
70
|
-
|
|
71
|
-
### Proxies
|
|
72
|
-
|
|
73
|
-
Nanoc::???::Item
|
|
74
|
-
site
|
|
75
|
-
children
|
|
76
|
-
parent
|
|
77
|
-
reps
|
|
78
|
-
compiled_content
|
|
79
|
-
|
|
80
|
-
Nanoc::???::ItemRep
|
|
81
|
-
item_identifier
|
|
82
|
-
item (weak ref?)
|
|
83
|
-
compiled_content
|
|
84
|
-
|
|
85
|
-
Nanoc::???::ItemRepSnapshot
|
|
86
|
-
item_identifier
|
|
87
|
-
item_rep_name
|
|
88
|
-
item_rep (weak ref?)
|
|
89
|
-
|
|
90
|
-
Dependency types
|
|
91
|
-
----------------
|
|
92
|
-
|
|
93
|
-
* Item -> Item
|
|
94
|
-
* Item -> All items (@items.select { ... })
|
|
95
|
-
* Item -> Pattern (@item.children)
|
|
96
|
-
|
|
97
|
-
Query language
|
|
98
|
-
--------------
|
|
99
|
-
|
|
100
|
-
Is this strictly necessary? Maybe create an @items proxy that detects whether #find, #detect, #select, #each, ... are called. #[] would create a direct dependency. @items.children would also create a dependency on all its children and possible future ones (pattern dependency?).
|
|
101
|
-
|
|
102
|
-
### Capabilities
|
|
103
|
-
|
|
104
|
-
* @item.parent
|
|
105
|
-
* @item.children
|
|
106
|
-
* @items.select{ |i| i[:kind] == 'article' }
|
|
107
|
-
|
|
108
|
-
### Examples
|
|
109
|
-
|
|
110
|
-
@items.query(:identifier, equals: '/foo/')
|
|
111
|
-
@items.query(:identifier, starts_with: '/reviews/')
|
|
112
|
-
@items.query(
|
|
113
|
-
|
|
114
|
-
-> how to distinguish between identifier and attributes?
|