nanoc 4.5.2 → 4.5.3
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 +7 -7
- data/NEWS.md +7 -0
- data/lib/nanoc/base/entities/item_rep.rb +0 -46
- data/lib/nanoc/base/repos.rb +1 -0
- data/lib/nanoc/base/repos/snapshot_repo.rb +60 -0
- data/lib/nanoc/base/services/compiler.rb +30 -17
- data/lib/nanoc/base/services/executor.rb +17 -8
- data/lib/nanoc/base/services/item_rep_writer.rb +3 -3
- data/lib/nanoc/base/views/item_rep_collection_view.rb +1 -1
- data/lib/nanoc/base/views/item_rep_view.rb +2 -2
- data/lib/nanoc/base/views/post_compile_item_rep_view.rb +9 -7
- data/lib/nanoc/base/views/view_context.rb +3 -1
- data/lib/nanoc/cli/commands/compile.rb +3 -3
- data/lib/nanoc/cli/commands/shell.rb +1 -0
- data/lib/nanoc/extra/parallel_collection.rb +1 -1
- data/lib/nanoc/helpers/capturing.rb +9 -5
- data/lib/nanoc/rule_dsl/action_provider.rb +2 -0
- data/lib/nanoc/rule_dsl/rule_memory_calculator.rb +4 -1
- data/lib/nanoc/spec.rb +17 -18
- data/lib/nanoc/version.rb +1 -1
- data/spec/nanoc/base/compiler_spec.rb +9 -8
- data/spec/nanoc/base/entities/item_rep_spec.rb +0 -222
- data/spec/nanoc/base/filter_spec.rb +1 -0
- data/spec/nanoc/base/item_rep_writer_spec.rb +9 -4
- data/spec/nanoc/base/repos/snapshot_repo_spec.rb +314 -0
- data/spec/nanoc/base/services/compiler/phases/cache_spec.rb +107 -0
- data/spec/nanoc/base/services/executor_spec.rb +230 -44
- data/spec/nanoc/base/views/document_view_spec.rb +1 -0
- data/spec/nanoc/base/views/item_rep_view_spec.rb +18 -5
- data/spec/nanoc/base/views/item_view_spec.rb +18 -7
- data/spec/nanoc/base/views/mutable_document_view_spec.rb +6 -5
- data/spec/nanoc/base/views/post_compile_item_rep_view_spec.rb +8 -3
- data/spec/nanoc/cli/commands/compile/file_action_printer_spec.rb +3 -3
- data/spec/nanoc/helpers/capturing_spec.rb +8 -5
- data/spec/nanoc/regressions/gh_1064_spec.rb +18 -0
- data/spec/nanoc/rule_dsl/rule_context_spec.rb +2 -1
- data/spec/nanoc/rule_dsl/rule_memory_calculator_spec.rb +15 -3
- data/spec/spec_helper.rb +43 -0
- data/test/cli/commands/test_compile.rb +1 -1
- data/test/filters/test_xsl.rb +1 -0
- data/test/helpers/test_capturing.rb +9 -2
- data/test/helpers/test_xml_sitemap.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 313d3c808d70b4205249d9c65a62bacb56ed63d6
|
4
|
+
data.tar.gz: d583fb40f3264a55ba3bc283a4db921d65c488f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e521ca2081dd8fe9377ab40e09d31b603f08cc6100ec875fee3cd0f629d982a8d142f94877f0f7335998737ad860bb8bb62ad16f26edf3c5b10a798325e15021
|
7
|
+
data.tar.gz: f64f51bfa27c7e6db9ef29a3266e5bc6a52797dfdc69e442fbedee9665afcc8a2216fea8b647f7513490745afc42a2babeeeaf8d9e5d69ad79f69217d142ce4b
|
data/Gemfile.lock
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
GIT
|
2
2
|
remote: git://github.com/bbatsov/rubocop.git
|
3
|
-
revision:
|
3
|
+
revision: d2652328e819cc8317e69b883449e71b83dcdffc
|
4
4
|
specs:
|
5
5
|
rubocop (0.46.0)
|
6
6
|
parser (>= 2.3.3.1, < 3.0)
|
@@ -48,7 +48,7 @@ GEM
|
|
48
48
|
thor (>= 0.14.0)
|
49
49
|
ast (2.3.0)
|
50
50
|
bluecloth (2.2.0)
|
51
|
-
builder (3.2.
|
51
|
+
builder (3.2.3)
|
52
52
|
chunky_png (1.3.8)
|
53
53
|
coderay (1.1.1)
|
54
54
|
coffee-script (2.4.1)
|
@@ -87,7 +87,7 @@ GEM
|
|
87
87
|
erubis (2.7.0)
|
88
88
|
excon (0.54.0)
|
89
89
|
execjs (2.7.0)
|
90
|
-
ffi (1.9.
|
90
|
+
ffi (1.9.17)
|
91
91
|
fission (0.5.0)
|
92
92
|
CFPropertyList (~> 2.2)
|
93
93
|
fog (1.38.0)
|
@@ -242,7 +242,7 @@ GEM
|
|
242
242
|
hashdiff (0.3.2)
|
243
243
|
inflecto (0.0.2)
|
244
244
|
ipaddress (0.8.3)
|
245
|
-
json (2.0.
|
245
|
+
json (2.0.3)
|
246
246
|
kramdown (1.13.2)
|
247
247
|
less (2.6.0)
|
248
248
|
commonjs (~> 0.2.7)
|
@@ -257,7 +257,7 @@ GEM
|
|
257
257
|
rake (>= 0.9.2.2)
|
258
258
|
markaby (0.8.0)
|
259
259
|
builder
|
260
|
-
maruku (0.7.
|
260
|
+
maruku (0.7.3)
|
261
261
|
metaclass (0.0.4)
|
262
262
|
method_source (0.8.2)
|
263
263
|
mime-types (3.1)
|
@@ -344,7 +344,7 @@ GEM
|
|
344
344
|
rubypants
|
345
345
|
uglifier (3.0.4)
|
346
346
|
execjs (>= 0.3.0, < 3)
|
347
|
-
unicode-display_width (1.1.
|
347
|
+
unicode-display_width (1.1.3)
|
348
348
|
vcr (3.0.3)
|
349
349
|
w3c_validators (1.3.1)
|
350
350
|
json (~> 2.0)
|
@@ -354,7 +354,7 @@ GEM
|
|
354
354
|
crack (>= 0.3.2)
|
355
355
|
hashdiff
|
356
356
|
xml-simple (1.1.5)
|
357
|
-
yard (0.9.
|
357
|
+
yard (0.9.8)
|
358
358
|
yard-contracts (0.1.5)
|
359
359
|
contracts (~> 0.7)
|
360
360
|
yard (~> 0.8)
|
data/NEWS.md
CHANGED
@@ -3,9 +3,6 @@ module Nanoc::Int
|
|
3
3
|
class ItemRep
|
4
4
|
include Nanoc::Int::ContractsSupport
|
5
5
|
|
6
|
-
# @return [Hash<Symbol,Nanoc::Int::Content>]
|
7
|
-
attr_accessor :snapshot_contents
|
8
|
-
|
9
6
|
# @return [Boolean]
|
10
7
|
attr_accessor :compiled
|
11
8
|
alias compiled? compiled
|
@@ -42,54 +39,11 @@ module Nanoc::Int
|
|
42
39
|
@raw_paths = {}
|
43
40
|
@paths = {}
|
44
41
|
@snapshot_defs = []
|
45
|
-
@snapshot_contents = { last: @item.content }
|
46
42
|
|
47
43
|
# Reset flags
|
48
44
|
@compiled = false
|
49
45
|
end
|
50
46
|
|
51
|
-
contract C::None => C::Bool
|
52
|
-
def binary?
|
53
|
-
@snapshot_contents[:last].binary?
|
54
|
-
end
|
55
|
-
|
56
|
-
contract C::KeywordArgs[snapshot: C::Optional[C::Maybe[Symbol]]] => String
|
57
|
-
# Returns the compiled content from a given snapshot.
|
58
|
-
#
|
59
|
-
# @param [Symbol] snapshot The name of the snapshot from which to
|
60
|
-
# fetch the compiled content. By default, the returned compiled content
|
61
|
-
# will be the content compiled right before the first layout call (if
|
62
|
-
# any).
|
63
|
-
#
|
64
|
-
# @return [String] The compiled content at the given snapshot (or the
|
65
|
-
# default snapshot if no snapshot is specified)
|
66
|
-
def compiled_content(snapshot: nil)
|
67
|
-
# Get name of last pre-layout snapshot
|
68
|
-
snapshot_name = snapshot || (@snapshot_contents[:pre] ? :pre : :last)
|
69
|
-
|
70
|
-
# Check existance of snapshot
|
71
|
-
snapshot_def = snapshot_defs.reverse.find { |sd| sd.name == snapshot_name }
|
72
|
-
unless snapshot_def
|
73
|
-
raise Nanoc::Int::Errors::NoSuchSnapshot.new(self, snapshot_name)
|
74
|
-
end
|
75
|
-
|
76
|
-
# Verify snapshot is usable
|
77
|
-
stopped_moving = snapshot_name != :last || compiled?
|
78
|
-
is_usable_snapshot = @snapshot_contents[snapshot_name] && stopped_moving
|
79
|
-
unless is_usable_snapshot
|
80
|
-
Fiber.yield(Nanoc::Int::Errors::UnmetDependency.new(self))
|
81
|
-
return compiled_content(snapshot: snapshot)
|
82
|
-
end
|
83
|
-
|
84
|
-
# Verify snapshot is not binary
|
85
|
-
snapshot_content = @snapshot_contents[snapshot_name]
|
86
|
-
if snapshot_content.binary?
|
87
|
-
raise Nanoc::Int::Errors::CannotGetCompiledContentOfBinaryItem.new(self)
|
88
|
-
end
|
89
|
-
|
90
|
-
snapshot_content.string
|
91
|
-
end
|
92
|
-
|
93
47
|
contract C::KeywordArgs[snapshot: C::Optional[Symbol]] => C::Maybe[String]
|
94
48
|
# Returns the item rep’s raw path. It includes the path to the output
|
95
49
|
# directory and the full filename.
|
data/lib/nanoc/base/repos.rb
CHANGED
@@ -0,0 +1,60 @@
|
|
1
|
+
module Nanoc::Int
|
2
|
+
# @api private
|
3
|
+
class SnapshotRepo
|
4
|
+
include Nanoc::Int::ContractsSupport
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@contents = {}
|
8
|
+
end
|
9
|
+
|
10
|
+
contract Nanoc::Int::ItemRep, Symbol => C::Maybe[Nanoc::Int::Content]
|
11
|
+
def get(rep, snapshot_name)
|
12
|
+
@contents[rep] ||= {}
|
13
|
+
@contents[rep][snapshot_name]
|
14
|
+
end
|
15
|
+
|
16
|
+
contract Nanoc::Int::ItemRep, Symbol, Nanoc::Int::Content => C::Any
|
17
|
+
def set(rep, snapshot_name, contents)
|
18
|
+
@contents[rep] ||= {}
|
19
|
+
@contents[rep][snapshot_name] = contents
|
20
|
+
end
|
21
|
+
|
22
|
+
contract Nanoc::Int::ItemRep => C::HashOf[Symbol => Nanoc::Int::Content]
|
23
|
+
def get_all(rep)
|
24
|
+
@contents[rep] || {}
|
25
|
+
end
|
26
|
+
|
27
|
+
contract Nanoc::Int::ItemRep, C::HashOf[Symbol => Nanoc::Int::Content] => C::Any
|
28
|
+
def set_all(rep, contents_per_snapshot)
|
29
|
+
@contents[rep] = contents_per_snapshot
|
30
|
+
end
|
31
|
+
|
32
|
+
contract C::KeywordArgs[rep: Nanoc::Int::ItemRep, snapshot: C::Optional[C::Maybe[Symbol]]] => String
|
33
|
+
def compiled_content(rep:, snapshot: nil)
|
34
|
+
# Get name of last pre-layout snapshot
|
35
|
+
snapshot_name = snapshot || (get(rep, :pre) ? :pre : :last)
|
36
|
+
|
37
|
+
# Check existance of snapshot
|
38
|
+
snapshot_def = rep.snapshot_defs.reverse.find { |sd| sd.name == snapshot_name }
|
39
|
+
unless snapshot_def
|
40
|
+
raise Nanoc::Int::Errors::NoSuchSnapshot.new(rep, snapshot_name)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Verify snapshot is usable
|
44
|
+
stopped_moving = snapshot_name != :last || rep.compiled?
|
45
|
+
is_usable_snapshot = get(rep, snapshot_name) && stopped_moving
|
46
|
+
unless is_usable_snapshot
|
47
|
+
Fiber.yield(Nanoc::Int::Errors::UnmetDependency.new(rep))
|
48
|
+
return compiled_content(rep: rep, snapshot: snapshot)
|
49
|
+
end
|
50
|
+
|
51
|
+
# Verify snapshot is not binary
|
52
|
+
snapshot_content = get(rep, snapshot_name)
|
53
|
+
if snapshot_content.binary?
|
54
|
+
raise Nanoc::Int::Errors::CannotGetCompiledContentOfBinaryItem.new(rep)
|
55
|
+
end
|
56
|
+
|
57
|
+
snapshot_content.string
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -20,11 +20,16 @@ module Nanoc::Int
|
|
20
20
|
class Compiler
|
21
21
|
# Provides common functionality for accesing “context” of an item that is being compiled.
|
22
22
|
class CompilationContext
|
23
|
-
|
23
|
+
attr_reader :site
|
24
|
+
attr_reader :compiled_content_cache
|
25
|
+
attr_reader :snapshot_repo
|
26
|
+
|
27
|
+
def initialize(action_provider:, reps:, site:, compiled_content_cache:, snapshot_repo:)
|
24
28
|
@action_provider = action_provider
|
25
29
|
@reps = reps
|
26
30
|
@site = site
|
27
31
|
@compiled_content_cache = compiled_content_cache
|
32
|
+
@snapshot_repo = snapshot_repo
|
28
33
|
end
|
29
34
|
|
30
35
|
def filter_name_and_args_for_layout(layout)
|
@@ -41,15 +46,17 @@ module Nanoc::Int
|
|
41
46
|
items: @site.items,
|
42
47
|
dependency_tracker: dependency_tracker,
|
43
48
|
compilation_context: self,
|
49
|
+
snapshot_repo: @snapshot_repo,
|
44
50
|
)
|
45
51
|
end
|
46
52
|
|
47
53
|
def assigns_for(rep, dependency_tracker)
|
54
|
+
last_content = @snapshot_repo.get(rep, :last)
|
48
55
|
content_or_filename_assigns =
|
49
|
-
if
|
50
|
-
{ filename:
|
56
|
+
if last_content.binary?
|
57
|
+
{ filename: last_content.filename }
|
51
58
|
else
|
52
|
-
{ content:
|
59
|
+
{ content: last_content.string }
|
53
60
|
end
|
54
61
|
|
55
62
|
view_context = create_view_context(dependency_tracker)
|
@@ -63,14 +70,6 @@ module Nanoc::Int
|
|
63
70
|
config: Nanoc::ConfigView.new(@site.config, view_context),
|
64
71
|
)
|
65
72
|
end
|
66
|
-
|
67
|
-
def site
|
68
|
-
@site
|
69
|
-
end
|
70
|
-
|
71
|
-
def compiled_content_cache
|
72
|
-
@compiled_content_cache
|
73
|
-
end
|
74
73
|
end
|
75
74
|
|
76
75
|
# All phases for the compilation of a single item rep. Phases will be repeated for every rep.
|
@@ -93,6 +92,8 @@ module Nanoc::Int
|
|
93
92
|
|
94
93
|
executor = Nanoc::Int::Executor.new(rep, @compilation_context, dependency_tracker)
|
95
94
|
|
95
|
+
@compilation_context.snapshot_repo.set(rep, :last, rep.item.content)
|
96
|
+
|
96
97
|
@action_provider.memory_for(rep).each do |action|
|
97
98
|
case action
|
98
99
|
when Nanoc::Int::ProcessingActions::Filter
|
@@ -115,8 +116,9 @@ module Nanoc::Int
|
|
115
116
|
class Cache
|
116
117
|
include Nanoc::Int::ContractsSupport
|
117
118
|
|
118
|
-
def initialize(compiled_content_cache:, wrapped:)
|
119
|
+
def initialize(compiled_content_cache:, snapshot_repo:, wrapped:)
|
119
120
|
@compiled_content_cache = compiled_content_cache
|
121
|
+
@snapshot_repo = snapshot_repo
|
120
122
|
@wrapped = wrapped
|
121
123
|
end
|
122
124
|
|
@@ -124,13 +126,14 @@ module Nanoc::Int
|
|
124
126
|
def run(rep, is_outdated:)
|
125
127
|
if can_reuse_content_for_rep?(rep, is_outdated: is_outdated)
|
126
128
|
Nanoc::Int::NotificationCenter.post(:cached_content_used, rep)
|
127
|
-
|
129
|
+
|
130
|
+
@snapshot_repo.set_all(rep, @compiled_content_cache[rep])
|
128
131
|
else
|
129
132
|
@wrapped.run(rep, is_outdated: is_outdated)
|
130
133
|
end
|
131
134
|
|
132
135
|
rep.compiled = true
|
133
|
-
@compiled_content_cache[rep] = rep
|
136
|
+
@compiled_content_cache[rep] = @snapshot_repo.get_all(rep)
|
134
137
|
end
|
135
138
|
|
136
139
|
contract Nanoc::Int::ItemRep, C::KeywordArgs[is_outdated: C::Bool] => C::Bool
|
@@ -187,7 +190,8 @@ module Nanoc::Int
|
|
187
190
|
class Write
|
188
191
|
include Nanoc::Int::ContractsSupport
|
189
192
|
|
190
|
-
def initialize(wrapped:)
|
193
|
+
def initialize(snapshot_repo:, wrapped:)
|
194
|
+
@snapshot_repo = snapshot_repo
|
191
195
|
@wrapped = wrapped
|
192
196
|
end
|
193
197
|
|
@@ -196,7 +200,7 @@ module Nanoc::Int
|
|
196
200
|
@wrapped.run(rep, is_outdated: is_outdated)
|
197
201
|
|
198
202
|
rep.snapshot_defs.each do |sdef|
|
199
|
-
ItemRepWriter.new.write(rep, sdef.name)
|
203
|
+
ItemRepWriter.new.write(rep, @snapshot_repo, sdef.name)
|
200
204
|
end
|
201
205
|
end
|
202
206
|
end
|
@@ -321,6 +325,7 @@ module Nanoc::Int
|
|
321
325
|
|
322
326
|
cache_phase = Phases::Cache.new(
|
323
327
|
compiled_content_cache: @compiled_content_cache,
|
328
|
+
snapshot_repo: @compilation_context.snapshot_repo,
|
324
329
|
wrapped: recalculate_phase,
|
325
330
|
)
|
326
331
|
|
@@ -329,6 +334,7 @@ module Nanoc::Int
|
|
329
334
|
)
|
330
335
|
|
331
336
|
write_phase = Phases::Write.new(
|
337
|
+
snapshot_repo: @compilation_context.snapshot_repo,
|
332
338
|
wrapped: resume_phase,
|
333
339
|
)
|
334
340
|
|
@@ -372,6 +378,9 @@ module Nanoc::Int
|
|
372
378
|
# @api private
|
373
379
|
attr_reader :outdatedness_store
|
374
380
|
|
381
|
+
# @api private
|
382
|
+
attr_reader :snapshot_repo
|
383
|
+
|
375
384
|
def initialize(site, compiled_content_cache:, checksum_store:, rule_memory_store:, action_provider:, dependency_store:, outdatedness_checker:, reps:, outdatedness_store:)
|
376
385
|
@site = site
|
377
386
|
|
@@ -383,6 +392,9 @@ module Nanoc::Int
|
|
383
392
|
@reps = reps
|
384
393
|
@action_provider = action_provider
|
385
394
|
@outdatedness_store = outdatedness_store
|
395
|
+
|
396
|
+
# TODO: inject
|
397
|
+
@snapshot_repo = Nanoc::Int::SnapshotRepo.new
|
386
398
|
end
|
387
399
|
|
388
400
|
def run_all
|
@@ -443,6 +455,7 @@ module Nanoc::Int
|
|
443
455
|
reps: @reps,
|
444
456
|
site: @site,
|
445
457
|
compiled_content_cache: compiled_content_cache,
|
458
|
+
snapshot_repo: snapshot_repo,
|
446
459
|
)
|
447
460
|
end
|
448
461
|
|
@@ -20,17 +20,20 @@ module Nanoc
|
|
20
20
|
Nanoc::Int::NotificationCenter.post(:filtering_started, @rep, filter_name)
|
21
21
|
|
22
22
|
# Run filter
|
23
|
-
last = @rep
|
24
|
-
source =
|
23
|
+
last = @compilation_context.snapshot_repo.get(@rep, :last)
|
24
|
+
source = last.binary? ? last.filename : last.string
|
25
25
|
filter_args.freeze
|
26
26
|
result = filter.setup_and_run(source, filter_args)
|
27
|
-
|
27
|
+
last =
|
28
28
|
if filter.class.to_binary?
|
29
29
|
Nanoc::Int::BinaryContent.new(filter.output_filename).tap(&:freeze)
|
30
30
|
else
|
31
31
|
Nanoc::Int::TextualContent.new(result).tap(&:freeze)
|
32
32
|
end
|
33
33
|
|
34
|
+
# Store
|
35
|
+
@compilation_context.snapshot_repo.set(@rep, :last, last)
|
36
|
+
|
34
37
|
# Check whether file was written
|
35
38
|
if filter.class.to_binary? && !File.file?(filter.output_filename)
|
36
39
|
raise OutputNotWrittenError.new(filter_name, filter.output_filename)
|
@@ -50,7 +53,8 @@ module Nanoc
|
|
50
53
|
filter_args.freeze
|
51
54
|
|
52
55
|
# Check whether item can be laid out
|
53
|
-
|
56
|
+
last = @compilation_context.snapshot_repo.get(@rep, :last)
|
57
|
+
raise Nanoc::Int::Errors::CannotLayoutBinaryItem.new(@rep) if last.binary?
|
54
58
|
|
55
59
|
# Create filter
|
56
60
|
klass = Nanoc::Filter.named(filter_name)
|
@@ -69,14 +73,18 @@ module Nanoc
|
|
69
73
|
content = layout.content
|
70
74
|
arg = content.binary? ? content.filename : content.string
|
71
75
|
res = filter.setup_and_run(arg, filter_args)
|
72
|
-
|
76
|
+
|
77
|
+
# Store
|
78
|
+
last = Nanoc::Int::TextualContent.new(res).tap(&:freeze)
|
79
|
+
@compilation_context.snapshot_repo.set(@rep, :last, last)
|
73
80
|
ensure
|
74
81
|
Nanoc::Int::NotificationCenter.post(:filtering_ended, @rep, filter_name)
|
75
82
|
end
|
76
83
|
end
|
77
84
|
|
78
85
|
def snapshot(snapshot_name)
|
79
|
-
|
86
|
+
last = @compilation_context.snapshot_repo.get(@rep, :last)
|
87
|
+
@compilation_context.snapshot_repo.set(@rep, snapshot_name, last)
|
80
88
|
end
|
81
89
|
|
82
90
|
def assigns_for(rep)
|
@@ -105,9 +113,10 @@ module Nanoc
|
|
105
113
|
klass = Nanoc::Filter.named(filter_name)
|
106
114
|
raise Nanoc::Int::Errors::UnknownFilter.new(filter_name) if klass.nil?
|
107
115
|
|
108
|
-
|
116
|
+
last = @compilation_context.snapshot_repo.get(@rep, :last)
|
117
|
+
if klass.from_binary? && !last.binary?
|
109
118
|
raise Nanoc::Int::Errors::CannotUseBinaryFilter.new(rep, klass)
|
110
|
-
elsif !klass.from_binary? &&
|
119
|
+
elsif !klass.from_binary? && last.binary?
|
111
120
|
raise Nanoc::Int::Errors::CannotUseTextualFilter.new(rep, klass)
|
112
121
|
end
|
113
122
|
|
@@ -3,7 +3,7 @@ module Nanoc::Int
|
|
3
3
|
class ItemRepWriter
|
4
4
|
TMP_TEXT_ITEMS_DIR = 'text_items'.freeze
|
5
5
|
|
6
|
-
def write(item_rep, snapshot_name)
|
6
|
+
def write(item_rep, snapshot_repo, snapshot_name)
|
7
7
|
raw_path = item_rep.raw_path(snapshot: snapshot_name)
|
8
8
|
return unless raw_path
|
9
9
|
|
@@ -18,7 +18,7 @@ module Nanoc::Int
|
|
18
18
|
:will_write_rep, item_rep, raw_path
|
19
19
|
)
|
20
20
|
|
21
|
-
content = item_rep
|
21
|
+
content = snapshot_repo.get(item_rep, snapshot_name)
|
22
22
|
if content.binary?
|
23
23
|
temp_path = content.filename
|
24
24
|
else
|
@@ -36,7 +36,7 @@ module Nanoc::Int
|
|
36
36
|
|
37
37
|
# Notify
|
38
38
|
Nanoc::Int::NotificationCenter.post(
|
39
|
-
:rep_written, item_rep, raw_path, is_created, is_modified
|
39
|
+
:rep_written, item_rep, content.binary?, raw_path, is_created, is_modified
|
40
40
|
)
|
41
41
|
end
|
42
42
|
|