nanoc 4.8.10 → 4.8.11

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.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +6 -0
  3. data/NEWS.md +7 -0
  4. data/lib/nanoc.rb +11 -6
  5. data/lib/nanoc/base.rb +1 -0
  6. data/lib/nanoc/base/changes_stream.rb +53 -0
  7. data/lib/nanoc/base/contracts_support.rb +0 -2
  8. data/lib/nanoc/base/feature.rb +3 -0
  9. data/lib/nanoc/base/memoization.rb +0 -2
  10. data/lib/nanoc/base/repos/aggregate_data_source.rb +8 -0
  11. data/lib/nanoc/base/repos/data_source.rb +12 -0
  12. data/lib/nanoc/base/repos/in_mem_data_source.rb +10 -1
  13. data/lib/nanoc/base/repos/prefixed_data_source.rb +8 -0
  14. data/lib/nanoc/base/repos/site_loader.rb +11 -7
  15. data/lib/nanoc/base/services/compiler.rb +2 -3
  16. data/lib/nanoc/base/services/compiler/stages/postprocess.rb +2 -3
  17. data/lib/nanoc/base/services/compiler/stages/preprocess.rb +1 -1
  18. data/lib/nanoc/base/services/pruner.rb +0 -2
  19. data/lib/nanoc/base/services/temp_filename_factory.rb +0 -2
  20. data/lib/nanoc/checking/checks/external_links.rb +0 -5
  21. data/lib/nanoc/checking/checks/internal_links.rb +0 -2
  22. data/lib/nanoc/checking/checks/stale.rb +0 -2
  23. data/lib/nanoc/cli.rb +7 -1
  24. data/lib/nanoc/cli/commands/compile_listeners/diff_generator.rb +0 -3
  25. data/lib/nanoc/cli/commands/live.rb +30 -0
  26. data/lib/nanoc/cli/commands/view.rb +4 -5
  27. data/lib/nanoc/cli/error_handler.rb +52 -36
  28. data/lib/nanoc/cli/logger.rb +0 -2
  29. data/lib/nanoc/cli/stack_trace_writer.rb +50 -0
  30. data/lib/nanoc/data_sources/filesystem.rb +25 -0
  31. data/lib/nanoc/extra.rb +1 -0
  32. data/lib/nanoc/extra/jruby_nokogiri_warner.rb +0 -2
  33. data/lib/nanoc/extra/link_collector.rb +0 -2
  34. data/lib/nanoc/extra/live_recompiler.rb +131 -0
  35. data/lib/nanoc/extra/parallel_collection.rb +0 -2
  36. data/lib/nanoc/extra/piper.rb +0 -2
  37. data/lib/nanoc/filters/relativize_paths.rb +8 -7
  38. data/lib/nanoc/helpers/link_to.rb +0 -2
  39. data/lib/nanoc/rule_dsl/action_provider.rb +2 -2
  40. data/lib/nanoc/version.rb +1 -1
  41. data/nanoc.gemspec +15 -4
  42. data/nanoc.manifest +545 -0
  43. data/spec/manifest_spec.rb +22 -0
  44. data/spec/nanoc/base/changes_stream_spec.rb +45 -0
  45. data/spec/nanoc/base/checksummer_spec.rb +0 -2
  46. data/spec/nanoc/base/directed_graph_spec.rb +66 -0
  47. data/spec/nanoc/base/entities/code_snippet_spec.rb +9 -0
  48. data/spec/nanoc/base/entities/context_spec.rb +26 -0
  49. data/spec/nanoc/base/entities/identifiable_collection_spec.rb +53 -0
  50. data/spec/nanoc/base/repos/aggregate_data_source_spec.rb +87 -0
  51. data/spec/nanoc/base/repos/data_source_spec.rb +95 -0
  52. data/spec/nanoc/base/repos/in_mem_data_source_spec.rb +39 -0
  53. data/spec/nanoc/base/repos/prefixed_data_source_spec.rb +39 -0
  54. data/spec/nanoc/cli/error_handler_spec.rb +43 -0
  55. data/spec/nanoc/cli/stack_trace_writer_spec.rb +156 -0
  56. data/spec/nanoc/data_sources/filesystem_spec.rb +46 -0
  57. data/spec/nanoc/extra/live_recompiler_spec.rb +129 -0
  58. data/spec/nanoc/helpers/blogging_spec.rb +1 -1
  59. data/spec/spec_helper.rb +60 -0
  60. data/test/base/test_compiler.rb +11 -11
  61. data/test/cli/test_cli.rb +0 -1
  62. data/test/cli/test_error_handler.rb +4 -5
  63. data/test/filters/test_relativize_paths.rb +30 -0
  64. data/test/filters/test_sass.rb +3 -3
  65. data/test/rule_dsl/test_compiler_dsl.rb +2 -2
  66. metadata +39 -43
  67. data/.github/CONTRIBUTING.md +0 -17
  68. data/.github/ISSUE_TEMPLATE.md +0 -23
  69. data/.github/PULL_REQUEST_TEMPLATE.md +0 -18
  70. data/.gitignore +0 -10
  71. data/.travis.yml +0 -27
  72. data/Gemfile +0 -73
  73. data/Guardfile +0 -5
  74. data/scripts/release +0 -95
  75. data/test/base/test_code_snippet.rb +0 -17
  76. data/test/base/test_context.rb +0 -35
  77. data/test/base/test_data_source.rb +0 -60
  78. data/test/base/test_directed_graph.rb +0 -56
  79. data/test/base/test_item_array.rb +0 -37
@@ -155,7 +155,7 @@ describe Nanoc::Helpers::Blogging, helper: true do
155
155
  end
156
156
 
157
157
  context 'with DateTime instance' do
158
- let(:arg) { DateTime.new(2015, 11, 7, 13, 31, 16) }
158
+ let(:arg) { DateTime.new(2015, 11, 7, 13, 31, 16) } # rubocop:disable Style/DateTime
159
159
  it { is_expected.to eql(around_noon_utc) }
160
160
  end
161
161
 
data/spec/spec_helper.rb CHANGED
@@ -10,9 +10,11 @@ require 'nanoc'
10
10
  require 'nanoc/cli'
11
11
  require 'nanoc/spec'
12
12
 
13
+ require 'ddbuffer'
13
14
  require 'timecop'
14
15
  require 'rspec/its'
15
16
  require 'fuubar'
17
+ require 'yard'
16
18
 
17
19
  Nanoc::CLI.setup
18
20
 
@@ -277,6 +279,64 @@ RSpec::Matchers.define :send_notification do |name, *expected_args|
277
279
  end
278
280
  end
279
281
 
282
+ RSpec::Matchers.define :have_correct_yard_examples do |_name, *_expected_args|
283
+ chain :in_file do |file|
284
+ root_dir = File.expand_path(__dir__ + '/..')
285
+ YARD.parse(root_dir + '/' + file)
286
+ end
287
+
288
+ match do |actual|
289
+ examples =
290
+ P(actual).tags(:example).flat_map do |example|
291
+ # Classify
292
+ lines = example.text.lines.map do |line|
293
+ [line =~ /^\s*# ?=>/ ? :result : :code, line]
294
+ end
295
+
296
+ # Join
297
+ pieces = []
298
+ lines.each do |line|
299
+ if !pieces.empty? && pieces.last.first == line.first
300
+ pieces.last.last << line.last
301
+ else
302
+ pieces << line
303
+ end
304
+ end
305
+ lines = pieces.map(&:last)
306
+
307
+ # Collect
308
+ lines.each_slice(2).to_a
309
+ end
310
+
311
+ b = binding
312
+ executed_examples = examples.map do |pair|
313
+ {
314
+ input: pair.first,
315
+ expected: eval(pair.last.match(/# ?=>(.*)/)[1], b),
316
+ actual: eval(pair.first, b),
317
+ }
318
+ end
319
+
320
+ @failing_examples = executed_examples.reject { |ex| ex[:expected] == ex[:actual] }
321
+
322
+ @failing_examples.empty?
323
+ end
324
+
325
+ failure_message do |_actual|
326
+ parts =
327
+ @failing_examples.map do |ex|
328
+ format(
329
+ "%s\nexpected to be\n %s\nbut was\n %s",
330
+ ex[:input],
331
+ ex[:expected].inspect,
332
+ ex[:actual].inspect,
333
+ )
334
+ end
335
+
336
+ parts.join("\n\n---\n\n")
337
+ end
338
+ end
339
+
280
340
  RSpec::Matchers.define :leak_open_files do |_name, *_expected_args|
281
341
  # Some remarks:
282
342
  #
@@ -4,7 +4,7 @@ require 'helper'
4
4
 
5
5
  class Nanoc::Int::CompilerTest < Nanoc::TestCase
6
6
  def test_compile_rep_should_write_proper_snapshots_real
7
- with_site do |site|
7
+ with_site do |_site|
8
8
  File.write('content/moo.txt', '<%= 1 %> <%%= 2 %> <%%%= 3 %>')
9
9
  File.write('layouts/default.erb', 'head <%= yield %> foot')
10
10
 
@@ -58,7 +58,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
58
58
  end
59
59
 
60
60
  def test_compile_with_one_rep
61
- with_site do |site|
61
+ with_site do |_site|
62
62
  File.open('content/index.html', 'w') { |io| io.write('o hello') }
63
63
 
64
64
  site = Nanoc::Int::SiteLoader.new.new_from_cwd
@@ -71,7 +71,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
71
71
  end
72
72
 
73
73
  def test_compile_with_two_independent_reps
74
- with_site do |site|
74
+ with_site do |_site|
75
75
  File.open('content/foo.html', 'w') { |io| io.write('o hai') }
76
76
  File.open('content/bar.html', 'w') { |io| io.write('o bai') }
77
77
 
@@ -87,7 +87,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
87
87
  end
88
88
 
89
89
  def test_compile_with_two_dependent_reps
90
- with_site(compilation_rule_content: 'filter :erb') do |site|
90
+ with_site(compilation_rule_content: 'filter :erb') do |_site|
91
91
  File.open('content/foo.html', 'w') do |io|
92
92
  io.write('<%= @items.find { |i| i.identifier == "/bar/" }.compiled_content %>!!!')
93
93
  end
@@ -107,7 +107,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
107
107
  end
108
108
 
109
109
  def test_compile_with_two_mutually_dependent_reps
110
- with_site(compilation_rule_content: 'filter :erb') do |site|
110
+ with_site(compilation_rule_content: 'filter :erb') do |_site|
111
111
  File.open('content/foo.html', 'w') do |io|
112
112
  io.write('<%= @items.find { |i| i.identifier == "/bar/" }.compiled_content %>')
113
113
  end
@@ -204,7 +204,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
204
204
  end
205
205
 
206
206
  def test_include_compiled_content_of_active_item_at_previous_snapshot
207
- with_site do |site|
207
+ with_site do |_site|
208
208
  # Create item
209
209
  File.open('content/index.html', 'w') do |io|
210
210
  io.write('[<%= @item.compiled_content(:snapshot => :aaa) %>]')
@@ -235,7 +235,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
235
235
  end
236
236
 
237
237
  def test_mutually_include_compiled_content_at_previous_snapshot
238
- with_site do |site|
238
+ with_site do |_site|
239
239
  # Create items
240
240
  File.open('content/a.html', 'w') do |io|
241
241
  io.write('[<%= @items.find { |i| i.identifier == "/z/" }.compiled_content(:snapshot => :guts) %>]')
@@ -269,7 +269,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
269
269
  end
270
270
 
271
271
  def test_layout_with_extra_filter_args
272
- with_site do |site|
272
+ with_site do |_site|
273
273
  # Create item
274
274
  File.open('content/index.html', 'w') do |io|
275
275
  io.write('This is <%= @foo %>.')
@@ -298,7 +298,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
298
298
  end
299
299
 
300
300
  def test_change_routing_rule_and_recompile
301
- with_site do |site|
301
+ with_site do |_site|
302
302
  # Create items
303
303
  File.open('content/a.html', 'w') do |io|
304
304
  io.write('<h1>A</h1>')
@@ -352,7 +352,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
352
352
  end
353
353
 
354
354
  def test_rep_assigns
355
- with_site do |site|
355
+ with_site do |_site|
356
356
  # Create item
357
357
  File.open('content/index.html', 'w') do |io|
358
358
  io.write('@rep.name = <%= @rep.name %> - @item_rep.name = <%= @item_rep.name %>')
@@ -406,7 +406,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
406
406
  end
407
407
 
408
408
  def test_tmp_text_items_are_removed_after_compilation
409
- with_site do |site|
409
+ with_site do |_site|
410
410
  # Create item
411
411
  File.open('content/index.html', 'w') do |io|
412
412
  io.write('stuff')
data/test/cli/test_cli.rb CHANGED
@@ -124,7 +124,6 @@ EOS
124
124
 
125
125
  # Check error output
126
126
  stderr_addition = $stderr.string[position_before, position_after]
127
- assert_match(/Stack trace:/, stderr_addition)
128
127
  assert_match(/commands\/_test.rb/, stderr_addition)
129
128
  end
130
129
  end
@@ -39,15 +39,15 @@ class Nanoc::CLI::ErrorHandlerTest < Nanoc::TestCase
39
39
 
40
40
  stream = StringIO.new
41
41
  @handler.send(:write_stack_trace, stream, error, verbose: false)
42
- assert_match(/See full crash log for details./, stream.string)
42
+ assert_match(/ lines omitted \(see crash\.log for details\)/, stream.string)
43
43
 
44
44
  stream = StringIO.new
45
45
  @handler.send(:write_stack_trace, stream, error, verbose: false)
46
- assert_match(/See full crash log for details./, stream.string)
46
+ assert_match(/ lines omitted \(see crash\.log for details\)/, stream.string)
47
47
 
48
48
  stream = StringIO.new
49
49
  @handler.send(:write_stack_trace, stream, error, verbose: true)
50
- refute_match(/See full crash log for details./, stream.string)
50
+ refute_match(/ lines omitted \(see crash\.log for details\)/, stream.string)
51
51
  end
52
52
 
53
53
  def test_write_error_message_wrapped
@@ -65,8 +65,7 @@ class Nanoc::CLI::ErrorHandlerTest < Nanoc::TestCase
65
65
  def test_write_item_rep
66
66
  stream = StringIO.new
67
67
  @handler.send(:write_item_rep, stream, new_wrapped_error(new_error), verbose: false)
68
- assert_match(/^Item identifier: \/about\.md$/, stream.string)
69
- assert_match(/^Item rep name: :latex$/, stream.string)
68
+ assert_match(/^Current item: \/about\.md \(:latex representation\)$/, stream.string)
70
69
  end
71
70
 
72
71
  def test_resolution_for_wrapped
@@ -854,4 +854,34 @@ XML
854
854
  actual_content = filter.setup_and_run(raw_content, type: :html)
855
855
  assert_equal(expected_content, actual_content)
856
856
  end
857
+
858
+ def test_filter_nokogiri_save_with
859
+ if_have 'nokogiri' do
860
+ # Create filter with mock item
861
+ filter = Nanoc::Filters::RelativizePaths.new
862
+
863
+ # Mock item
864
+ filter.instance_eval do
865
+ @item_rep = Nanoc::Int::ItemRep.new(
866
+ Nanoc::Int::Item.new(
867
+ 'content',
868
+ {},
869
+ '/foo/baz',
870
+ ),
871
+ :blah,
872
+ )
873
+ @item_rep.paths[:last] = ['/foo/baz/']
874
+ end
875
+
876
+ # Set content
877
+ raw_content = %(
878
+ <td><span>some</span><span>moderately</span><span>long</span><span>content</span></td>
879
+ )
880
+
881
+ # Test
882
+ nokogiri_save_options = Nokogiri::XML::Node::SaveOptions::DEFAULT_HTML & ~Nokogiri::XML::Node::SaveOptions::FORMAT
883
+ actual_content = filter.setup_and_run(raw_content.freeze, type: :html, nokogiri_save_options: nokogiri_save_options)
884
+ assert_equal(actual_content, raw_content)
885
+ end
886
+ end
857
887
  end
@@ -109,7 +109,7 @@ class Nanoc::Filters::SassTest < Nanoc::TestCase
109
109
 
110
110
  def test_recompile_includes
111
111
  if_have 'sass' do
112
- with_site do |site|
112
+ with_site do |_site|
113
113
  # Create two Sass files
114
114
  Dir['content/*'].each { |i| FileUtils.rm(i) }
115
115
  File.open('content/a.sass', 'w') do |io|
@@ -164,7 +164,7 @@ class Nanoc::Filters::SassTest < Nanoc::TestCase
164
164
 
165
165
  def test_recompile_includes_with_underscore_without_extension
166
166
  if_have 'sass' do
167
- with_site do |site|
167
+ with_site do |_site|
168
168
  # Create two Sass files
169
169
  Dir['content/*'].each { |i| FileUtils.rm(i) }
170
170
  File.open('content/a.sass', 'w') do |io|
@@ -219,7 +219,7 @@ class Nanoc::Filters::SassTest < Nanoc::TestCase
219
219
 
220
220
  def test_recompile_includes_with_relative_path
221
221
  if_have 'sass', 'compass' do
222
- with_site do |site|
222
+ with_site do |_site|
223
223
  # Write compass config
224
224
  FileUtils.mkdir_p('compass')
225
225
  File.open('compass/config.rb', 'w') do |io|
@@ -54,7 +54,7 @@ class Nanoc::RuleDSL::CompilerDSLTest < Nanoc::TestCase
54
54
  end
55
55
 
56
56
  def test_postprocessor_modified_method
57
- with_site do |site|
57
+ with_site do |_site|
58
58
  # Create rules
59
59
  File.open('Rules', 'w') do |io|
60
60
  io.write <<~EOS
@@ -80,7 +80,7 @@ EOS
80
80
  end
81
81
 
82
82
  def test_include_rules
83
- with_site(legacy: false) do |site|
83
+ with_site(legacy: false) do |_site|
84
84
  # Create a bonus rules file
85
85
  File.write(
86
86
  'more_rules.rb',
metadata CHANGED
@@ -1,105 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.8.10
4
+ version: 4.8.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Defreyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-08 00:00:00.000000000 Z
11
+ date: 2017-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: cri
14
+ name: addressable
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.8'
19
+ version: '2.5'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.8'
26
+ version: '2.5'
27
27
  - !ruby/object:Gem::Dependency
28
- name: hamster
28
+ name: cri
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3.0'
33
+ version: '2.8'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3.0'
40
+ version: '2.8'
41
41
  - !ruby/object:Gem::Dependency
42
- name: ref
42
+ name: ddplugin
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '2.0'
47
+ version: '1.0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '2.0'
54
+ version: '1.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: ddplugin
56
+ name: hamster
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.0'
61
+ version: '3.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.0'
68
+ version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: addressable
70
+ name: ref
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.5'
75
+ version: '2.0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.5'
82
+ version: '2.0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: bundler
84
+ name: slow_enumerator_tools
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 1.7.10
90
- - - "<"
87
+ - - "~>"
91
88
  - !ruby/object:Gem::Version
92
- version: '2.0'
93
- type: :development
89
+ version: '1.0'
90
+ type: :runtime
94
91
  prerelease: false
95
92
  version_requirements: !ruby/object:Gem::Requirement
96
93
  requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- version: 1.7.10
100
- - - "<"
94
+ - - "~>"
101
95
  - !ruby/object:Gem::Version
102
- version: '2.0'
96
+ version: '1.0'
103
97
  - !ruby/object:Gem::Dependency
104
98
  name: appraisal
105
99
  requirement: !ruby/object:Gem::Requirement
@@ -127,17 +121,10 @@ extra_rdoc_files:
127
121
  - README.md
128
122
  - NEWS.md
129
123
  files:
130
- - ".github/CONTRIBUTING.md"
131
- - ".github/ISSUE_TEMPLATE.md"
132
- - ".github/PULL_REQUEST_TEMPLATE.md"
133
- - ".gitignore"
134
124
  - ".rspec"
135
125
  - ".rubocop.yml"
136
- - ".travis.yml"
137
126
  - Appraisals
138
127
  - CODE_OF_CONDUCT.md
139
- - Gemfile
140
- - Guardfile
141
128
  - LICENSE
142
129
  - NEWS.md
143
130
  - README.md
@@ -145,6 +132,7 @@ files:
145
132
  - bin/nanoc
146
133
  - lib/nanoc.rb
147
134
  - lib/nanoc/base.rb
135
+ - lib/nanoc/base/changes_stream.rb
148
136
  - lib/nanoc/base/contracts_support.rb
149
137
  - lib/nanoc/base/core_ext.rb
150
138
  - lib/nanoc/base/core_ext/array.rb
@@ -302,6 +290,7 @@ files:
302
290
  - lib/nanoc/cli/commands/compile_listeners/timing_recorder.rb
303
291
  - lib/nanoc/cli/commands/create-site.rb
304
292
  - lib/nanoc/cli/commands/deploy.rb
293
+ - lib/nanoc/cli/commands/live.rb
305
294
  - lib/nanoc/cli/commands/nanoc.rb
306
295
  - lib/nanoc/cli/commands/prune.rb
307
296
  - lib/nanoc/cli/commands/shell.rb
@@ -311,6 +300,7 @@ files:
311
300
  - lib/nanoc/cli/commands/view.rb
312
301
  - lib/nanoc/cli/error_handler.rb
313
302
  - lib/nanoc/cli/logger.rb
303
+ - lib/nanoc/cli/stack_trace_writer.rb
314
304
  - lib/nanoc/cli/stream_cleaners.rb
315
305
  - lib/nanoc/cli/stream_cleaners/abstract.rb
316
306
  - lib/nanoc/cli/stream_cleaners/ansi_colors.rb
@@ -331,6 +321,7 @@ files:
331
321
  - lib/nanoc/extra/core_ext/time.rb
332
322
  - lib/nanoc/extra/jruby_nokogiri_warner.rb
333
323
  - lib/nanoc/extra/link_collector.rb
324
+ - lib/nanoc/extra/live_recompiler.rb
334
325
  - lib/nanoc/extra/parallel_collection.rb
335
326
  - lib/nanoc/extra/piper.rb
336
327
  - lib/nanoc/filters.rb
@@ -397,8 +388,10 @@ files:
397
388
  - lib/nanoc/telemetry/table.rb
398
389
  - lib/nanoc/version.rb
399
390
  - nanoc.gemspec
400
- - scripts/release
391
+ - nanoc.manifest
401
392
  - spec/contributors_spec.rb
393
+ - spec/manifest_spec.rb
394
+ - spec/nanoc/base/changes_stream_spec.rb
402
395
  - spec/nanoc/base/checksummer_spec.rb
403
396
  - spec/nanoc/base/compiler_spec.rb
404
397
  - spec/nanoc/base/core_ext/array_spec.rb
@@ -409,6 +402,7 @@ files:
409
402
  - spec/nanoc/base/entities/code_snippet_spec.rb
410
403
  - spec/nanoc/base/entities/configuration_spec.rb
411
404
  - spec/nanoc/base/entities/content_spec.rb
405
+ - spec/nanoc/base/entities/context_spec.rb
412
406
  - spec/nanoc/base/entities/document_spec.rb
413
407
  - spec/nanoc/base/entities/identifiable_collection_spec.rb
414
408
  - spec/nanoc/base/entities/identifier_spec.rb
@@ -429,11 +423,15 @@ files:
429
423
  - spec/nanoc/base/filter_spec.rb
430
424
  - spec/nanoc/base/item_rep_writer_spec.rb
431
425
  - spec/nanoc/base/memoization_spec.rb
426
+ - spec/nanoc/base/repos/aggregate_data_source_spec.rb
432
427
  - spec/nanoc/base/repos/checksum_store_spec.rb
433
428
  - spec/nanoc/base/repos/compiled_content_cache_spec.rb
434
429
  - spec/nanoc/base/repos/config_loader_spec.rb
430
+ - spec/nanoc/base/repos/data_source_spec.rb
435
431
  - spec/nanoc/base/repos/dependency_store_spec.rb
432
+ - spec/nanoc/base/repos/in_mem_data_source_spec.rb
436
433
  - spec/nanoc/base/repos/outdatedness_store_spec.rb
434
+ - spec/nanoc/base/repos/prefixed_data_source_spec.rb
437
435
  - spec/nanoc/base/repos/site_loader_spec.rb
438
436
  - spec/nanoc/base/repos/snapshot_repo_spec.rb
439
437
  - spec/nanoc/base/repos/store_spec.rb
@@ -489,11 +487,14 @@ files:
489
487
  - spec/nanoc/cli/commands/show_plugins_spec.rb
490
488
  - spec/nanoc/cli/commands/show_rules_spec.rb
491
489
  - spec/nanoc/cli/commands/view_spec.rb
490
+ - spec/nanoc/cli/error_handler_spec.rb
491
+ - spec/nanoc/cli/stack_trace_writer_spec.rb
492
492
  - spec/nanoc/cli/stream_cleaners/utf8_spec.rb
493
493
  - spec/nanoc/cli_spec.rb
494
494
  - spec/nanoc/data_sources/filesystem_spec.rb
495
495
  - spec/nanoc/deploying/fog_spec.rb
496
496
  - spec/nanoc/deploying/git_spec.rb
497
+ - spec/nanoc/extra/live_recompiler_spec.rb
497
498
  - spec/nanoc/extra/parallel_collection_spec.rb
498
499
  - spec/nanoc/filters/asciidoctor_spec.rb
499
500
  - spec/nanoc/filters/colorize_syntax/rouge_spec.rb
@@ -583,14 +584,9 @@ files:
583
584
  - spec/nanoc/telemetry_spec.rb
584
585
  - spec/regression_filenames_spec.rb
585
586
  - spec/spec_helper.rb
586
- - test/base/test_code_snippet.rb
587
587
  - test/base/test_compiler.rb
588
- - test/base/test_context.rb
589
- - test/base/test_data_source.rb
590
588
  - test/base/test_dependency_tracker.rb
591
- - test/base/test_directed_graph.rb
592
589
  - test/base/test_filter.rb
593
- - test/base/test_item_array.rb
594
590
  - test/base/test_notification_center.rb
595
591
  - test/base/test_site.rb
596
592
  - test/base/test_store.rb
@@ -688,7 +684,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
688
684
  version: '0'
689
685
  requirements: []
690
686
  rubyforge_project:
691
- rubygems_version: 2.6.13
687
+ rubygems_version: 2.6.14
692
688
  signing_key:
693
689
  specification_version: 4
694
690
  summary: A static-site generator with a focus on flexibility.