nanoc 3.6.7 → 3.6.8
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 +8 -8
- data/CONTRIBUTING.md +9 -13
- data/Gemfile +5 -1
- data/Gemfile.lock +70 -45
- data/NEWS.md +15 -1
- data/README.md +12 -119
- data/doc/yardoc_handlers/identifier.rb +34 -0
- data/lib/nanoc/base/compilation/checksum_store.rb +2 -2
- data/lib/nanoc/base/compilation/compiler.rb +3 -3
- data/lib/nanoc/base/compilation/compiler_dsl.rb +20 -15
- data/lib/nanoc/base/compilation/dependency_tracker.rb +4 -4
- data/lib/nanoc/base/compilation/filter.rb +5 -5
- data/lib/nanoc/base/compilation/item_rep_proxy.rb +2 -2
- data/lib/nanoc/base/compilation/item_rep_recorder_proxy.rb +3 -3
- data/lib/nanoc/base/compilation/outdatedness_checker.rb +49 -46
- data/lib/nanoc/base/compilation/rule.rb +6 -4
- data/lib/nanoc/base/compilation/rule_context.rb +10 -4
- data/lib/nanoc/base/compilation/rule_memory_calculator.rb +8 -7
- data/lib/nanoc/base/compilation/rule_memory_store.rb +2 -2
- data/lib/nanoc/base/compilation/rules_collection.rb +2 -2
- data/lib/nanoc/base/core_ext/array.rb +2 -2
- data/lib/nanoc/base/core_ext/date.rb +4 -2
- data/lib/nanoc/base/core_ext/hash.rb +3 -3
- data/lib/nanoc/base/core_ext/pathname.rb +1 -1
- data/lib/nanoc/base/directed_graph.rb +6 -6
- data/lib/nanoc/base/errors.rb +1 -1
- data/lib/nanoc/base/memoization.rb +4 -4
- data/lib/nanoc/base/notification_center.rb +1 -1
- data/lib/nanoc/base/ordered_hash.rb +207 -179
- data/lib/nanoc/base/plugin_registry.rb +7 -7
- data/lib/nanoc/base/result_data/item_rep.rb +25 -26
- data/lib/nanoc/base/source_data/code_snippet.rb +2 -2
- data/lib/nanoc/base/source_data/configuration.rb +1 -1
- data/lib/nanoc/base/source_data/data_source.rb +2 -2
- data/lib/nanoc/base/source_data/item.rb +16 -15
- data/lib/nanoc/base/source_data/item_array.rb +4 -4
- data/lib/nanoc/base/source_data/layout.rb +5 -5
- data/lib/nanoc/base/source_data/site.rb +6 -6
- data/lib/nanoc/base/store.rb +8 -8
- data/lib/nanoc/cli/cleaning_stream.rb +11 -12
- data/lib/nanoc/cli/command_runner.rb +8 -8
- data/lib/nanoc/cli/commands/autocompile.rb +5 -4
- data/lib/nanoc/cli/commands/check.rb +12 -11
- data/lib/nanoc/cli/commands/compile.rb +50 -52
- data/lib/nanoc/cli/commands/create-item.rb +6 -6
- data/lib/nanoc/cli/commands/create-layout.rb +6 -6
- data/lib/nanoc/cli/commands/create-site.rb +10 -13
- data/lib/nanoc/cli/commands/deploy.rb +11 -11
- data/lib/nanoc/cli/commands/prune.rb +10 -10
- data/lib/nanoc/cli/commands/shell.rb +7 -7
- data/lib/nanoc/cli/commands/show-data.rb +22 -23
- data/lib/nanoc/cli/commands/show-plugins.rb +3 -3
- data/lib/nanoc/cli/commands/show-rules.rb +8 -8
- data/lib/nanoc/cli/commands/sync.rb +4 -2
- data/lib/nanoc/cli/commands/update.rb +4 -4
- data/lib/nanoc/cli/commands/validate-css.rb +3 -3
- data/lib/nanoc/cli/commands/validate-html.rb +3 -3
- data/lib/nanoc/cli/commands/validate-links.rb +3 -3
- data/lib/nanoc/cli/commands/view.rb +5 -3
- data/lib/nanoc/cli/commands/watch.rb +12 -12
- data/lib/nanoc/cli/error_handler.rb +58 -58
- data/lib/nanoc/cli/logger.rb +6 -6
- data/lib/nanoc/cli/stream_cleaners/abstract.rb +1 -1
- data/lib/nanoc/cli/stream_cleaners.rb +0 -1
- data/lib/nanoc/cli.rb +24 -22
- data/lib/nanoc/data_sources/deprecated/delicious.rb +1 -1
- data/lib/nanoc/data_sources/deprecated/last_fm.rb +16 -14
- data/lib/nanoc/data_sources/deprecated/twitter.rb +1 -1
- data/lib/nanoc/data_sources/filesystem.rb +22 -20
- data/lib/nanoc/data_sources/filesystem_unified.rb +4 -5
- data/lib/nanoc/data_sources/filesystem_verbose.rb +2 -3
- data/lib/nanoc/data_sources/static.rb +2 -2
- data/lib/nanoc/extra/auto_compiler.rb +3 -3
- data/lib/nanoc/extra/checking/check.rb +3 -3
- data/lib/nanoc/extra/checking/checks/css.rb +2 -2
- data/lib/nanoc/extra/checking/checks/external_links.rb +9 -9
- data/lib/nanoc/extra/checking/checks/html.rb +2 -3
- data/lib/nanoc/extra/checking/checks/internal_links.rb +6 -7
- data/lib/nanoc/extra/checking/checks/stale.rb +6 -6
- data/lib/nanoc/extra/checking/dsl.rb +1 -1
- data/lib/nanoc/extra/checking/runner.rb +19 -19
- data/lib/nanoc/extra/chick.rb +11 -9
- data/lib/nanoc/extra/core_ext/pathname.rb +1 -2
- data/lib/nanoc/extra/core_ext/time.rb +2 -2
- data/lib/nanoc/extra/core_ext.rb +0 -1
- data/lib/nanoc/extra/deployer.rb +2 -2
- data/lib/nanoc/extra/deployers/fog.rb +12 -12
- data/lib/nanoc/extra/deployers/rsync.rb +6 -6
- data/lib/nanoc/extra/file_proxy.rb +1 -1
- data/lib/nanoc/extra/filesystem_tools.rb +5 -5
- data/lib/nanoc/extra/link_collector.rb +4 -3
- data/lib/nanoc/extra/pruner.rb +5 -5
- data/lib/nanoc/extra/validators/links.rb +3 -3
- data/lib/nanoc/extra/vcs.rb +1 -1
- data/lib/nanoc/filters/asciidoc.rb +3 -3
- data/lib/nanoc/filters/bluecloth.rb +1 -1
- data/lib/nanoc/filters/coderay.rb +2 -2
- data/lib/nanoc/filters/coffeescript.rb +2 -0
- data/lib/nanoc/filters/colorize_syntax.rb +16 -16
- data/lib/nanoc/filters/erb.rb +5 -5
- data/lib/nanoc/filters/erubis.rb +1 -1
- data/lib/nanoc/filters/haml.rb +1 -1
- data/lib/nanoc/filters/handlebars.rb +2 -2
- data/lib/nanoc/filters/kramdown.rb +1 -1
- data/lib/nanoc/filters/less.rb +1 -1
- data/lib/nanoc/filters/markaby.rb +1 -1
- data/lib/nanoc/filters/maruku.rb +1 -1
- data/lib/nanoc/filters/mustache.rb +1 -1
- data/lib/nanoc/filters/pandoc.rb +1 -1
- data/lib/nanoc/filters/rainpress.rb +1 -1
- data/lib/nanoc/filters/rdiscount.rb +1 -1
- data/lib/nanoc/filters/rdoc.rb +1 -1
- data/lib/nanoc/filters/redcarpet.rb +2 -2
- data/lib/nanoc/filters/redcloth.rb +9 -9
- data/lib/nanoc/filters/relativize_paths.rb +7 -8
- data/lib/nanoc/filters/rubypants.rb +1 -1
- data/lib/nanoc/filters/sass/sass_filesystem_importer.rb +1 -1
- data/lib/nanoc/filters/sass.rb +1 -1
- data/lib/nanoc/filters/slim.rb +1 -1
- data/lib/nanoc/filters/typogruby.rb +1 -1
- data/lib/nanoc/filters/uglify_js.rb +1 -1
- data/lib/nanoc/filters/xsl.rb +9 -7
- data/lib/nanoc/filters/yui_compressor.rb +2 -0
- data/lib/nanoc/helpers/blogging.rb +6 -6
- data/lib/nanoc/helpers/breadcrumbs.rb +1 -1
- data/lib/nanoc/helpers/capturing.rb +2 -2
- data/lib/nanoc/helpers/filtering.rb +1 -1
- data/lib/nanoc/helpers/html_escape.rb +3 -3
- data/lib/nanoc/helpers/link_to.rb +6 -6
- data/lib/nanoc/helpers/rendering.rb +2 -2
- data/lib/nanoc/helpers/tagging.rb +2 -2
- data/lib/nanoc/helpers/text.rb +1 -1
- data/lib/nanoc/helpers/xml_sitemap.rb +2 -2
- data/lib/nanoc/version.rb +1 -1
- data/lib/nanoc.rb +3 -2
- data/nanoc.gemspec +2 -6
- data/tasks/rubocop.rake +5 -0
- data/test/base/test_compiler_dsl.rb +20 -1
- data/test/cli/commands/test_compile.rb +4 -3
- data/test/cli/test_error_handler.rb +32 -0
- data/test/filters/test_erb.rb +1 -1
- data/test/filters/test_less.rb +1 -1
- data/test/filters/test_xsl.rb +95 -8
- metadata +30 -84
|
@@ -1,200 +1,228 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
1
2
|
|
|
2
3
|
# AUTHOR
|
|
3
4
|
# jan molic /mig/at/1984/dot/cz/
|
|
4
5
|
#
|
|
5
6
|
# DESCRIPTION
|
|
6
7
|
# Hash with preserved order and some array-like extensions
|
|
7
|
-
# Public domain.
|
|
8
|
+
# Public domain.
|
|
8
9
|
#
|
|
9
10
|
# THANKS
|
|
10
11
|
# Andrew Johnson for his suggestions and fixes of Hash[],
|
|
11
12
|
# merge, to_a, inspect and shift
|
|
12
13
|
class OrderedHash < ::Hash
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
hsh
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
def initialize(*a, &b)
|
|
32
|
-
super
|
|
33
|
-
@order = []
|
|
34
|
-
end
|
|
35
|
-
def store_only a,b
|
|
36
|
-
store a,b
|
|
37
|
-
end
|
|
38
|
-
alias orig_store store
|
|
39
|
-
def store a,b
|
|
40
|
-
@order.push a unless has_key? a
|
|
41
|
-
super a,b
|
|
42
|
-
end
|
|
43
|
-
alias []= store
|
|
44
|
-
def == hsh2
|
|
45
|
-
return false if @order != hsh2.order
|
|
46
|
-
super hsh2
|
|
47
|
-
end
|
|
48
|
-
def clear
|
|
49
|
-
@order = []
|
|
50
|
-
super
|
|
51
|
-
end
|
|
52
|
-
def delete key
|
|
53
|
-
@order.delete key
|
|
54
|
-
super
|
|
55
|
-
end
|
|
56
|
-
def each_key
|
|
57
|
-
@order.each { |k| yield k }
|
|
58
|
-
self
|
|
59
|
-
end
|
|
60
|
-
def each_value
|
|
61
|
-
@order.each { |k| yield self[k] }
|
|
62
|
-
self
|
|
63
|
-
end
|
|
64
|
-
def each
|
|
65
|
-
@order.each { |k| yield k,self[k] }
|
|
66
|
-
self
|
|
67
|
-
end
|
|
68
|
-
alias each_pair each
|
|
69
|
-
def delete_if
|
|
70
|
-
@order.clone.each { |k|
|
|
71
|
-
delete k if yield(k)
|
|
72
|
-
}
|
|
73
|
-
self
|
|
74
|
-
end
|
|
75
|
-
def values
|
|
76
|
-
ary = []
|
|
77
|
-
@order.each { |k| ary.push self[k] }
|
|
78
|
-
ary
|
|
79
|
-
end
|
|
80
|
-
def keys
|
|
81
|
-
@order
|
|
82
|
-
end
|
|
83
|
-
def first
|
|
84
|
-
{@order.first => self[@order.first]}
|
|
85
|
-
end
|
|
86
|
-
def last
|
|
87
|
-
{@order.last => self[@order.last]}
|
|
88
|
-
end
|
|
89
|
-
def invert
|
|
90
|
-
hsh2 = Hash.new
|
|
91
|
-
@order.each { |k| hsh2[self[k]] = k }
|
|
92
|
-
hsh2
|
|
93
|
-
end
|
|
94
|
-
def reject &block
|
|
95
|
-
self.dup.delete_if &block
|
|
96
|
-
end
|
|
97
|
-
def reject! &block
|
|
98
|
-
hsh2 = reject &block
|
|
99
|
-
self == hsh2 ? nil : hsh2
|
|
100
|
-
end
|
|
101
|
-
def replace hsh2
|
|
102
|
-
@order = hsh2.keys
|
|
103
|
-
super hsh2
|
|
104
|
-
end
|
|
105
|
-
def shift
|
|
106
|
-
key = @order.first
|
|
107
|
-
key ? [key,delete(key)] : super
|
|
108
|
-
end
|
|
109
|
-
def unshift k,v
|
|
110
|
-
unless self.include? k
|
|
111
|
-
@order.unshift k
|
|
112
|
-
orig_store(k,v)
|
|
113
|
-
true
|
|
114
|
-
else
|
|
115
|
-
false
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
def push k,v
|
|
119
|
-
unless self.include? k
|
|
120
|
-
@order.push k
|
|
121
|
-
orig_store(k,v)
|
|
122
|
-
true
|
|
123
|
-
else
|
|
124
|
-
false
|
|
14
|
+
attr_accessor :order
|
|
15
|
+
|
|
16
|
+
class << self
|
|
17
|
+
def [](*args)
|
|
18
|
+
hsh = OrderedHash.new
|
|
19
|
+
if args[0].is_a?(Hash)
|
|
20
|
+
hsh.replace args[0]
|
|
21
|
+
elsif args.size.odd?
|
|
22
|
+
raise ArgumentError, 'odd number of elements for Hash'
|
|
23
|
+
else
|
|
24
|
+
0.step(args.size - 1, 2) do |a|
|
|
25
|
+
b = a + 1
|
|
26
|
+
hsh[args[a]] = args[b]
|
|
125
27
|
end
|
|
28
|
+
end
|
|
29
|
+
hsh
|
|
126
30
|
end
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def initialize(*a, &b)
|
|
34
|
+
super
|
|
35
|
+
@order = []
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def store_only(a, b)
|
|
39
|
+
store a, b
|
|
40
|
+
end
|
|
41
|
+
alias_method :orig_store, :store
|
|
42
|
+
|
|
43
|
+
def store(a, b)
|
|
44
|
+
@order.push a unless key? a
|
|
45
|
+
super a, b
|
|
46
|
+
end
|
|
47
|
+
alias_method :[]=, :store
|
|
48
|
+
|
|
49
|
+
def ==(other)
|
|
50
|
+
return false if @order != other.order
|
|
51
|
+
super other
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def clear
|
|
55
|
+
@order = []
|
|
56
|
+
super
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def delete(key)
|
|
60
|
+
@order.delete key
|
|
61
|
+
super
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def each_key
|
|
65
|
+
@order.each { |k| yield k }
|
|
66
|
+
self
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def each_value
|
|
70
|
+
@order.each { |k| yield self[k] }
|
|
71
|
+
self
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def each
|
|
75
|
+
@order.each { |k| yield k, self[k] }
|
|
76
|
+
self
|
|
77
|
+
end
|
|
78
|
+
alias_method :each_pair, :each
|
|
79
|
+
|
|
80
|
+
def delete_if
|
|
81
|
+
@order.clone.each do |k|
|
|
82
|
+
delete k if yield(k)
|
|
162
83
|
end
|
|
84
|
+
self
|
|
85
|
+
end
|
|
163
86
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
87
|
+
def values
|
|
88
|
+
ary = []
|
|
89
|
+
@order.each { |k| ary.push self[k] }
|
|
90
|
+
ary
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
def keys
|
|
94
|
+
@order
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def first
|
|
98
|
+
{ @order.first => self[@order.first] }
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
def last
|
|
102
|
+
{ @order.last => self[@order.last] }
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def invert
|
|
106
|
+
hsh2 = {}
|
|
107
|
+
@order.each { |k| hsh2[self[k]] = k }
|
|
108
|
+
hsh2
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def reject(&block)
|
|
112
|
+
dup.delete_if(&block)
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
def reject!(&block)
|
|
116
|
+
hsh2 = reject(&block)
|
|
117
|
+
self == hsh2 ? nil : hsh2
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def replace(hsh2)
|
|
121
|
+
@order = hsh2.keys
|
|
122
|
+
super hsh2
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def shift
|
|
126
|
+
key = @order.first
|
|
127
|
+
key ? [key, delete(key)] : super
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
def unshift(k, v)
|
|
131
|
+
if self.include? k
|
|
132
|
+
false
|
|
133
|
+
else
|
|
134
|
+
@order.unshift k
|
|
135
|
+
orig_store(k, v)
|
|
136
|
+
true
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def push(k, v)
|
|
141
|
+
if self.include? k
|
|
142
|
+
false
|
|
143
|
+
else
|
|
144
|
+
@order.push k
|
|
145
|
+
orig_store(k, v)
|
|
146
|
+
true
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def pop
|
|
151
|
+
key = @order.last
|
|
152
|
+
key ? [key, delete(key)] : nil
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def to_a
|
|
156
|
+
ary = []
|
|
157
|
+
each { |k, v| ary << [k, v] }
|
|
158
|
+
ary
|
|
159
|
+
end
|
|
160
|
+
|
|
161
|
+
def to_s
|
|
162
|
+
to_a.to_s
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
def inspect
|
|
166
|
+
ary = []
|
|
167
|
+
each { |k, v| ary << k.inspect + '=>' + v.inspect }
|
|
168
|
+
'{' + ary.join(', ') + '}'
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
def update(hsh2)
|
|
172
|
+
hsh2.each { |k, v| self[k] = v }
|
|
173
|
+
self
|
|
174
|
+
end
|
|
175
|
+
alias_method :merge!, :update
|
|
176
|
+
|
|
177
|
+
def merge(hsh2)
|
|
178
|
+
dup update(hsh2)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
def select
|
|
182
|
+
ary = []
|
|
183
|
+
each { |k, v| ary << [k, v] if yield k, v }
|
|
184
|
+
ary
|
|
185
|
+
end
|
|
186
|
+
|
|
187
|
+
def class
|
|
188
|
+
Hash
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def __class__
|
|
192
|
+
OrderedHash
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
attr_accessor 'to_yaml_style'
|
|
196
|
+
def yaml_inline=(bool)
|
|
197
|
+
if respond_to?('to_yaml_style')
|
|
198
|
+
self.to_yaml_style = :inline
|
|
199
|
+
else
|
|
200
|
+
unless defined? @__yaml_inline_meth
|
|
201
|
+
@__yaml_inline_meth =
|
|
202
|
+
lambda do |opts|
|
|
203
|
+
YAML.quick_emit(object_id, opts) do |emitter|
|
|
204
|
+
emitter << '{ ' << map { |kv| kv.join ': ' }.join(', ') << ' }'
|
|
205
|
+
end
|
|
206
|
+
end
|
|
207
|
+
class << self
|
|
208
|
+
def to_yaml(opts = {})
|
|
209
|
+
@__yaml_inline ? @__yaml_inline_meth[ opts ] : super
|
|
210
|
+
rescue
|
|
211
|
+
@to_yaml_style = :inline
|
|
212
|
+
super
|
|
185
213
|
end
|
|
186
214
|
end
|
|
187
215
|
end
|
|
188
|
-
@__yaml_inline = bool
|
|
189
216
|
end
|
|
190
|
-
|
|
217
|
+
@__yaml_inline = bool
|
|
218
|
+
end
|
|
191
219
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
end
|
|
196
|
-
end # class OrderedHash
|
|
220
|
+
def yaml_inline!
|
|
221
|
+
self.yaml_inline = true
|
|
222
|
+
end
|
|
197
223
|
|
|
198
|
-
def
|
|
199
|
-
|
|
200
|
-
|
|
224
|
+
def each_with_index
|
|
225
|
+
@order.each_with_index { |k, index| yield k, self[k], index }
|
|
226
|
+
self
|
|
227
|
+
end
|
|
228
|
+
end # class OrderedHash
|
|
@@ -28,7 +28,7 @@ module Nanoc
|
|
|
28
28
|
# @return [Array<Symbol>] The identifiers for this plugin
|
|
29
29
|
def identifiers(*identifiers)
|
|
30
30
|
if identifiers.empty?
|
|
31
|
-
Nanoc::PluginRegistry.instance.identifiers_of(
|
|
31
|
+
Nanoc::PluginRegistry.instance.identifiers_of(superclass, self)
|
|
32
32
|
else
|
|
33
33
|
register(self, *identifiers)
|
|
34
34
|
end
|
|
@@ -45,11 +45,11 @@ module Nanoc
|
|
|
45
45
|
# @overload identifier
|
|
46
46
|
#
|
|
47
47
|
# @return [Symbol] The first identifier for this plugin
|
|
48
|
-
def identifier(identifier=nil)
|
|
48
|
+
def identifier(identifier = nil)
|
|
49
49
|
if identifier
|
|
50
|
-
|
|
50
|
+
identifiers(identifier)
|
|
51
51
|
else
|
|
52
|
-
Nanoc::PluginRegistry.instance.identifiers_of(
|
|
52
|
+
Nanoc::PluginRegistry.instance.identifiers_of(superclass, self).first
|
|
53
53
|
end
|
|
54
54
|
end
|
|
55
55
|
|
|
@@ -94,7 +94,7 @@ module Nanoc
|
|
|
94
94
|
#
|
|
95
95
|
# @return [Nanoc::PluginRegistry] The shared plugin registry
|
|
96
96
|
def self.instance
|
|
97
|
-
@instance ||=
|
|
97
|
+
@instance ||= new
|
|
98
98
|
end
|
|
99
99
|
|
|
100
100
|
# Creates a new plugin registry. This should usually not be necessary; it
|
|
@@ -160,7 +160,7 @@ module Nanoc
|
|
|
160
160
|
def find_all(klass)
|
|
161
161
|
@identifiers_to_classes[klass] ||= {}
|
|
162
162
|
res = {}
|
|
163
|
-
@identifiers_to_classes[klass].each_pair { |k,v| res[k] = resolve(v, k) }
|
|
163
|
+
@identifiers_to_classes[klass].each_pair { |k, v| res[k] = resolve(v, k) }
|
|
164
164
|
res
|
|
165
165
|
end
|
|
166
166
|
|
|
@@ -206,7 +206,7 @@ module Nanoc
|
|
|
206
206
|
|
|
207
207
|
def resolve(class_or_name, klass)
|
|
208
208
|
if class_or_name.is_a?(String)
|
|
209
|
-
class_or_name.scan(/\w+/).
|
|
209
|
+
class_or_name.scan(/\w+/).reduce(Kernel) do |memo, part|
|
|
210
210
|
memo.const_get(part)
|
|
211
211
|
end
|
|
212
212
|
else
|
|
@@ -22,38 +22,38 @@ module Nanoc
|
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
# @deprecated Use {Nanoc::ItemRep#compiled_content} instead.
|
|
25
|
-
def content_at_snapshot(snapshot
|
|
25
|
+
def content_at_snapshot(snapshot = :pre)
|
|
26
26
|
compiled_content(:snapshot => snapshot)
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
# @deprecated
|
|
30
30
|
def created
|
|
31
|
-
raise NotImplementedError,
|
|
31
|
+
raise NotImplementedError, 'Nanoc::ItemRep#created is no longer implemented'
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
# @deprecated
|
|
35
35
|
def created?
|
|
36
|
-
raise NotImplementedError,
|
|
36
|
+
raise NotImplementedError, 'Nanoc::ItemRep#created? is no longer implemented'
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
# @deprecated
|
|
40
40
|
def modified
|
|
41
|
-
raise NotImplementedError,
|
|
41
|
+
raise NotImplementedError, 'Nanoc::ItemRep#modified is no longer implemented'
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
# @deprecated
|
|
45
45
|
def modified?
|
|
46
|
-
raise NotImplementedError,
|
|
46
|
+
raise NotImplementedError, 'Nanoc::ItemRep#modified? is no longer implemented'
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
# @deprecated
|
|
50
50
|
def written
|
|
51
|
-
raise NotImplementedError,
|
|
51
|
+
raise NotImplementedError, 'Nanoc::ItemRep#written is no longer implemented'
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
# @deprecated
|
|
55
55
|
def written?
|
|
56
|
-
raise NotImplementedError,
|
|
56
|
+
raise NotImplementedError, 'Nanoc::ItemRep#written? is no longer implemented'
|
|
57
57
|
end
|
|
58
58
|
|
|
59
59
|
end
|
|
@@ -118,7 +118,7 @@ module Nanoc
|
|
|
118
118
|
# @param [Symbol, nil] snapshot The name of the snapshot to write.
|
|
119
119
|
#
|
|
120
120
|
# @return [void]
|
|
121
|
-
def write(snapshot
|
|
121
|
+
def write(snapshot = :last)
|
|
122
122
|
# Get raw path
|
|
123
123
|
raw_path = self.raw_path(:snapshot => snapshot)
|
|
124
124
|
return if raw_path.nil?
|
|
@@ -135,7 +135,7 @@ module Nanoc
|
|
|
135
135
|
if self.binary?
|
|
136
136
|
temp_path = temporary_filenames[:last]
|
|
137
137
|
else
|
|
138
|
-
temp_path =
|
|
138
|
+
temp_path = temp_filename
|
|
139
139
|
File.open(temp_path, 'w') { |io| io.write(@content[:last]) }
|
|
140
140
|
end
|
|
141
141
|
|
|
@@ -235,15 +235,15 @@ module Nanoc
|
|
|
235
235
|
#
|
|
236
236
|
# @return [String] The compiled content at the given snapshot (or the
|
|
237
237
|
# default snapshot if no snapshot is specified)
|
|
238
|
-
def compiled_content(params={})
|
|
238
|
+
def compiled_content(params = {})
|
|
239
239
|
# Make sure we're not binary
|
|
240
|
-
if
|
|
240
|
+
if item.binary?
|
|
241
241
|
raise Nanoc::Errors::CannotGetCompiledContentOfBinaryItem.new(self)
|
|
242
242
|
end
|
|
243
243
|
|
|
244
244
|
# Notify
|
|
245
|
-
Nanoc::NotificationCenter.post(:visit_started,
|
|
246
|
-
Nanoc::NotificationCenter.post(:visit_ended,
|
|
245
|
+
Nanoc::NotificationCenter.post(:visit_started, item)
|
|
246
|
+
Nanoc::NotificationCenter.post(:visit_ended, item)
|
|
247
247
|
|
|
248
248
|
# Get name of last pre-layout snapshot
|
|
249
249
|
snapshot = params.fetch(:snapshot) { @content[:pre] ? :pre : :last }
|
|
@@ -279,9 +279,9 @@ module Nanoc
|
|
|
279
279
|
# path should be returned
|
|
280
280
|
#
|
|
281
281
|
# @return [String] The item rep’s path
|
|
282
|
-
def raw_path(params={})
|
|
283
|
-
Nanoc3::NotificationCenter.post(:visit_started,
|
|
284
|
-
Nanoc3::NotificationCenter.post(:visit_ended,
|
|
282
|
+
def raw_path(params = {})
|
|
283
|
+
Nanoc3::NotificationCenter.post(:visit_started, item)
|
|
284
|
+
Nanoc3::NotificationCenter.post(:visit_ended, item)
|
|
285
285
|
|
|
286
286
|
snapshot_name = params[:snapshot] || :last
|
|
287
287
|
@raw_paths[snapshot_name]
|
|
@@ -296,9 +296,9 @@ module Nanoc
|
|
|
296
296
|
# path should be returned
|
|
297
297
|
#
|
|
298
298
|
# @return [String] The item rep’s path
|
|
299
|
-
def path(params={})
|
|
300
|
-
Nanoc3::NotificationCenter.post(:visit_started,
|
|
301
|
-
Nanoc3::NotificationCenter.post(:visit_ended,
|
|
299
|
+
def path(params = {})
|
|
300
|
+
Nanoc3::NotificationCenter.post(:visit_started, item)
|
|
301
|
+
Nanoc3::NotificationCenter.post(:visit_ended, item)
|
|
302
302
|
|
|
303
303
|
snapshot_name = params[:snapshot] || :last
|
|
304
304
|
@paths[snapshot_name]
|
|
@@ -320,7 +320,7 @@ module Nanoc
|
|
|
320
320
|
# the filter's #run method
|
|
321
321
|
#
|
|
322
322
|
# @return [void]
|
|
323
|
-
def filter(filter_name, filter_args={})
|
|
323
|
+
def filter(filter_name, filter_args = {})
|
|
324
324
|
# Get filter class
|
|
325
325
|
klass = filter_named(filter_name)
|
|
326
326
|
raise Nanoc::Errors::UnknownFilter.new(filter_name) if klass.nil?
|
|
@@ -352,8 +352,7 @@ module Nanoc
|
|
|
352
352
|
|
|
353
353
|
# Check whether file was written
|
|
354
354
|
if self.binary? && !File.file?(filter.output_filename)
|
|
355
|
-
raise
|
|
356
|
-
"The #{filter_name.inspect} filter did not write anything to the required output file, #{filter.output_filename}."
|
|
355
|
+
raise "The #{filter_name.inspect} filter did not write anything to the required output file, #{filter.output_filename}."
|
|
357
356
|
end
|
|
358
357
|
|
|
359
358
|
# Create snapshot
|
|
@@ -426,10 +425,10 @@ module Nanoc
|
|
|
426
425
|
# snapshot (such as `:pre`, `:post` or `:last`)
|
|
427
426
|
#
|
|
428
427
|
# @return [void]
|
|
429
|
-
def snapshot(snapshot_name, params={})
|
|
428
|
+
def snapshot(snapshot_name, params = {})
|
|
430
429
|
is_final = params.fetch(:final) { true }
|
|
431
430
|
@content[snapshot_name] = @content[:last] unless self.binary?
|
|
432
|
-
|
|
431
|
+
write(snapshot_name) if is_final
|
|
433
432
|
end
|
|
434
433
|
|
|
435
434
|
# Returns a recording proxy that is used for determining whether the
|
|
@@ -462,11 +461,11 @@ module Nanoc
|
|
|
462
461
|
#
|
|
463
462
|
# @return [Object] An unique reference to this object
|
|
464
463
|
def reference
|
|
465
|
-
[ type,
|
|
464
|
+
[ type, item.identifier, name ]
|
|
466
465
|
end
|
|
467
466
|
|
|
468
467
|
def inspect
|
|
469
|
-
"<#{self.class} name=\"#{
|
|
468
|
+
"<#{self.class} name=\"#{name}\" binary=#{self.binary?} raw_path=\"#{raw_path}\" item.identifier=\"#{item.identifier}\">"
|
|
470
469
|
end
|
|
471
470
|
|
|
472
471
|
private
|
|
@@ -24,7 +24,7 @@ module Nanoc
|
|
|
24
24
|
#
|
|
25
25
|
# @param [Time, Hash] params Extra parameters. Ignored by nanoc; it is
|
|
26
26
|
# only included for backwards compatibility.
|
|
27
|
-
def initialize(data, filename, params=nil)
|
|
27
|
+
def initialize(data, filename, params = nil)
|
|
28
28
|
@data = data
|
|
29
29
|
@filename = filename
|
|
30
30
|
end
|
|
@@ -44,7 +44,7 @@ module Nanoc
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
def inspect
|
|
47
|
-
"<#{self.class} filename=\"#{
|
|
47
|
+
"<#{self.class} filename=\"#{filename}\">"
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
# @return [String] The checksum for this object. If its contents change,
|
|
@@ -207,7 +207,7 @@ module Nanoc
|
|
|
207
207
|
# files that should be generated.
|
|
208
208
|
#
|
|
209
209
|
# @return [void]
|
|
210
|
-
def create_item(content, attributes, identifier, params={})
|
|
210
|
+
def create_item(content, attributes, identifier, params = {})
|
|
211
211
|
not_implemented('create_item')
|
|
212
212
|
end
|
|
213
213
|
|
|
@@ -230,7 +230,7 @@ module Nanoc
|
|
|
230
230
|
# files that should be generated.
|
|
231
231
|
#
|
|
232
232
|
# @return [void]
|
|
233
|
-
def create_layout(content, attributes, identifier, params={})
|
|
233
|
+
def create_layout(content, attributes, identifier, params = {})
|
|
234
234
|
not_implemented('create_layout')
|
|
235
235
|
end
|
|
236
236
|
|