nanoc 4.8.10 → 4.8.11

Sign up to get free protection for your applications and to get access to all the features.
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.