nanoc 4.0.0b3 → 4.0.0b4

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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +4 -2
  4. data/NEWS.md +10 -0
  5. data/TODO.md +15 -0
  6. data/lib/nanoc/base.rb +4 -27
  7. data/lib/nanoc/base/checksummer.rb +69 -19
  8. data/lib/nanoc/base/compilation/compiler.rb +14 -12
  9. data/lib/nanoc/base/compilation/compiler_dsl.rb +2 -0
  10. data/lib/nanoc/base/compilation/filter.rb +4 -2
  11. data/lib/nanoc/base/compilation/outdatedness_checker.rb +7 -7
  12. data/lib/nanoc/base/compilation/rule.rb +5 -6
  13. data/lib/nanoc/base/compilation/rule_context.rb +16 -34
  14. data/lib/nanoc/base/compilation/rule_memory_calculator.rb +3 -3
  15. data/lib/nanoc/base/compilation/rules_collection.rb +4 -10
  16. data/lib/nanoc/base/context.rb +2 -0
  17. data/lib/nanoc/base/core_ext/array.rb +0 -10
  18. data/lib/nanoc/base/core_ext/hash.rb +0 -10
  19. data/lib/nanoc/base/core_ext/pathname.rb +0 -9
  20. data/lib/nanoc/base/core_ext/string.rb +0 -10
  21. data/lib/nanoc/base/entities.rb +5 -0
  22. data/lib/nanoc/base/entities/content.rb +86 -0
  23. data/lib/nanoc/base/entities/document.rb +56 -0
  24. data/lib/nanoc/base/{source_data → entities}/identifier.rb +12 -1
  25. data/lib/nanoc/base/entities/layout.rb +8 -0
  26. data/lib/nanoc/base/{pattern.rb → entities/pattern.rb} +0 -0
  27. data/lib/nanoc/base/errors.rb +2 -1
  28. data/lib/nanoc/base/result_data/item_rep.rb +13 -278
  29. data/lib/nanoc/base/services.rb +5 -0
  30. data/lib/nanoc/base/services/executor.rb +141 -0
  31. data/lib/nanoc/base/services/item_rep_writer.rb +40 -0
  32. data/lib/nanoc/base/{notification_center.rb → services/notification_center.rb} +0 -0
  33. data/lib/nanoc/base/services/recording_executor.rb +41 -0
  34. data/lib/nanoc/base/{temp_filename_factory.rb → services/temp_filename_factory.rb} +0 -0
  35. data/lib/nanoc/base/source_data/code_snippet.rb +0 -6
  36. data/lib/nanoc/base/source_data/data_source.rb +4 -3
  37. data/lib/nanoc/base/source_data/item.rb +23 -213
  38. data/lib/nanoc/base/source_data/site.rb +0 -1
  39. data/lib/nanoc/base/views.rb +18 -0
  40. data/lib/nanoc/base/views/config.rb +1 -1
  41. data/lib/nanoc/base/views/item.rb +8 -73
  42. data/lib/nanoc/base/views/item_rep.rb +9 -0
  43. data/lib/nanoc/base/views/item_rep_collection.rb +17 -0
  44. data/lib/nanoc/base/views/layout.rb +1 -40
  45. data/lib/nanoc/base/views/mixins/document.rb +76 -0
  46. data/lib/nanoc/base/views/mixins/mutable_document.rb +22 -0
  47. data/lib/nanoc/base/views/mutable_identifiable_collection.rb +1 -1
  48. data/lib/nanoc/base/views/mutable_item.rb +1 -18
  49. data/lib/nanoc/base/views/mutable_item_collection.rb +6 -2
  50. data/lib/nanoc/base/views/mutable_layout.rb +1 -8
  51. data/lib/nanoc/cli/commands/compile.rb +1 -2
  52. data/lib/nanoc/cli/commands/create-site.rb +5 -5
  53. data/lib/nanoc/cli/commands/show-data.rb +11 -1
  54. data/lib/nanoc/data_sources/filesystem.rb +17 -10
  55. data/lib/nanoc/helpers/capturing.rb +1 -2
  56. data/lib/nanoc/helpers/filtering.rb +13 -1
  57. data/lib/nanoc/helpers/rendering.rb +4 -2
  58. data/lib/nanoc/version.rb +1 -1
  59. data/test/base/core_ext/array_spec.rb +0 -7
  60. data/test/base/core_ext/hash_spec.rb +0 -13
  61. data/test/base/core_ext/pathname_spec.rb +0 -33
  62. data/test/base/core_ext/string_spec.rb +0 -10
  63. data/test/base/test_compiler_dsl.rb +3 -3
  64. data/test/base/test_data_source.rb +2 -2
  65. data/test/base/test_item.rb +5 -129
  66. data/test/base/test_item_rep.rb +26 -558
  67. data/test/base/test_layout.rb +2 -26
  68. data/test/base/test_rule.rb +3 -3
  69. data/test/base/test_rule_context.rb +34 -15
  70. data/test/data_sources/test_filesystem.rb +2 -2
  71. data/test/data_sources/test_filesystem_unified.rb +39 -33
  72. data/test/extra/checking/checks/test_html.rb +0 -1
  73. data/test/extra/checking/checks/test_mixed_content.rb +3 -3
  74. data/test/extra/deployers/test_fog.rb +24 -24
  75. data/test/filters/test_less.rb +4 -4
  76. data/test/filters/test_sass.rb +10 -5
  77. data/test/filters/test_xsl.rb +6 -0
  78. data/test/helpers/test_capturing.rb +0 -1
  79. data/test/helpers/test_filtering.rb +5 -19
  80. data/test/helpers/test_tagging.rb +6 -6
  81. metadata +18 -11
  82. data/lib/nanoc/base/compilation/item_rep_proxy.rb +0 -109
  83. data/lib/nanoc/base/compilation/item_rep_recorder_proxy.rb +0 -97
  84. data/lib/nanoc/base/source_data/layout.rb +0 -111
  85. data/test/base/checksummer_spec.rb +0 -256
  86. data/test/base/test_item_rep_recorder_proxy.rb +0 -17
@@ -5,32 +5,8 @@ class Nanoc::Int::LayoutTest < Nanoc::TestCase
5
5
  assert_equal({ foo: 'bar' }, layout.attributes)
6
6
  end
7
7
 
8
- def test_lookup_with_known_attribute
9
- # Create layout
8
+ def test_attributes
10
9
  layout = Nanoc::Int::Layout.new('content', { 'foo' => 'bar' }, '/foo/')
11
-
12
- # Check attributes
13
- assert_equal('bar', layout[:foo])
14
- end
15
-
16
- def test_lookup_with_unknown_attribute
17
- # Create layout
18
- layout = Nanoc::Int::Layout.new('content', { 'foo' => 'bar' }, '/foo/')
19
-
20
- # Check attributes
21
- assert_equal(nil, layout[:filter])
22
- end
23
-
24
- def test_dump_and_load
25
- layout = Nanoc::Int::Layout.new(
26
- 'foobar',
27
- { a: { b: 123 } },
28
- '/foo/')
29
-
30
- layout = Marshal.load(Marshal.dump(layout))
31
-
32
- assert_equal Nanoc::Identifier.new('/foo/'), layout.identifier
33
- assert_equal 'foobar', layout.raw_content
34
- assert_equal({ a: { b: 123 } }, layout.attributes)
10
+ assert_equal({ foo: 'bar' }, layout.attributes)
35
11
  end
36
12
  end
@@ -12,11 +12,11 @@ class Nanoc::Int::RuleTest < Nanoc::TestCase
12
12
  end
13
13
 
14
14
  def test_matches
15
- pattern = Nanoc::Int::Pattern.from(%r</(.*)/(.*)/>)
15
+ pattern = Nanoc::Int::Pattern.from(%r{/(.*)/(.*)/})
16
16
  identifier = '/anything/else/'
17
- expected = ['anything', 'else']
17
+ expected = %w(anything else)
18
18
 
19
- rule = Nanoc::Int::Rule.new(pattern, :string, Proc.new {})
19
+ rule = Nanoc::Int::Rule.new(pattern, :string, proc {})
20
20
 
21
21
  assert_equal expected, rule.send(:matches, identifier)
22
22
  end
@@ -15,15 +15,24 @@ class Nanoc::Int::RuleContextTest < Nanoc::TestCase
15
15
  compiler = Nanoc::Int::Compiler.new(site)
16
16
 
17
17
  # Create context
18
- @rule_context = Nanoc::Int::RuleContext.new(rep: rep, compiler: compiler)
18
+ executor = nil
19
+ rule_context = Nanoc::Int::RuleContext.new(rep: rep, executor: executor, compiler: compiler)
19
20
 
20
- # Check
21
- assert_equal rep, @rule_context.rep
22
- assert_equal item, @rule_context.item
23
- assert_equal site, @rule_context.site
24
- assert_equal config, @rule_context.config
25
- assert_equal layouts, @rule_context.layouts
26
- assert_equal items, @rule_context.items
21
+ # Check classes
22
+ assert_equal Nanoc::ItemRepView, rule_context.rep.class
23
+ assert_equal Nanoc::ItemView, rule_context.item.class
24
+ assert_equal Nanoc::SiteView, rule_context.site.class
25
+ assert_equal Nanoc::ConfigView, rule_context.config.class
26
+ assert_equal Nanoc::LayoutCollectionView, rule_context.layouts.class
27
+ assert_equal Nanoc::ItemCollectionView, rule_context.items.class
28
+
29
+ # Check content
30
+ assert_equal rep, rule_context.rep.unwrap
31
+ assert_equal item, rule_context.item.unwrap
32
+ assert_equal site, rule_context.site.unwrap
33
+ assert_equal config, rule_context.config.unwrap
34
+ assert_equal layouts, rule_context.layouts.unwrap
35
+ assert_equal items, rule_context.items.unwrap
27
36
  end
28
37
 
29
38
  def test_actions
@@ -41,19 +50,29 @@ class Nanoc::Int::RuleContextTest < Nanoc::TestCase
41
50
  # Mock rep
42
51
  rep = mock
43
52
  rep.stubs(:item).returns(item)
44
- rep.expects(:filter).with(:foo, { bar: 'baz' })
45
- rep.expects(:layout).with('foo')
46
- rep.expects(:snapshot).with('awesome')
47
53
 
48
54
  # Mock compiler
49
55
  compiler = Nanoc::Int::Compiler.new(site)
50
56
 
51
57
  # Create context
52
- @rule_context = Nanoc::Int::RuleContext.new(rep: rep, compiler: compiler)
58
+ executor = nil
59
+ rule_context = Nanoc::Int::RuleContext.new(rep: rep, executor: executor, compiler: compiler)
53
60
 
54
61
  # Check
55
- rep.filter :foo, bar: 'baz'
56
- rep.layout 'foo'
57
- rep.snapshot 'awesome'
62
+ assert_raises(NoMethodError) do
63
+ rule_context.instance_eval do
64
+ item_rep.filter :foo, bar: 'baz'
65
+ end
66
+ end
67
+ assert_raises(NoMethodError) do
68
+ rule_context.instance_eval do
69
+ item_rep.layout 'foo'
70
+ end
71
+ end
72
+ assert_raises(NoMethodError) do
73
+ rule_context.instance_eval do
74
+ item_rep.snapshot 'awesome'
75
+ end
76
+ end
58
77
  end
59
78
  end
@@ -105,13 +105,13 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
105
105
  File.open(filename, 'w') { |io| io.write('test') }
106
106
  end
107
107
 
108
- # Check - { './stuff/foo' => ['yaml', ['html', 'md']] }
108
+ # Check - { './stuff/foo' => ['yaml', ['html', 'md']] }
109
109
  res = data_source.send(:all_split_files_in, '.')
110
110
  assert_equal ['./stuff/foo'], res.keys
111
111
  assert_equal 2, res.values[0].size
112
112
  assert_equal 'yaml', res.values[0][0]
113
113
  assert_equal Array, res.values[0][1].class
114
- assert_equal ['html', 'md'], res.values[0][1].sort
114
+ assert_equal %w(html md), res.values[0][1].sort
115
115
  end
116
116
 
117
117
  def test_all_split_files_in_with_multiple_content_files
@@ -41,31 +41,27 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
41
41
  expected_out = [
42
42
  klass.new(
43
43
  'test 1',
44
- { 'num' => 1, :filename => 'foo/bar.html', :extension => 'html' },
44
+ { 'num' => 1, :filename => 'foo/bar.html', :extension => 'html', mtime: File.mtime('foo/bar.html') },
45
45
  '/bar/',
46
- binary: false, mtime: File.mtime('foo/bar.html')
47
46
  ),
48
47
  klass.new(
49
48
  'test 2',
50
- { 'num' => 2, :filename => 'foo/b.c.html', :extension => 'c.html' },
49
+ { 'num' => 2, :filename => 'foo/b.c.html', :extension => 'c.html', mtime: File.mtime('foo/b.c.html') },
51
50
  '/b/',
52
- binary: false, mtime: File.mtime('foo/b.c.html')
53
51
  ),
54
52
  klass.new(
55
53
  'test 3',
56
- { 'num' => 3, :filename => 'foo/a/b/c.html', :extension => 'html' },
54
+ { 'num' => 3, :filename => 'foo/a/b/c.html', :extension => 'html', mtime: File.mtime('foo/a/b/c.html') },
57
55
  '/a/b/c/',
58
- binary: false, mtime: File.mtime('foo/a/b/c.html')
59
56
  )
60
57
  ]
61
- actual_out = data_source.send(:load_objects, 'foo', 'The Foo', klass).sort_by { |i| i.stuff[0] }
58
+ actual_out = data_source.send(:load_objects, 'foo', 'The Foo', klass).sort_by { |i| i.stuff[0].string }
62
59
 
63
60
  # Check
64
61
  (0..expected_out.size - 1).each do |i|
65
- assert_equal expected_out[i].stuff[0], actual_out[i].stuff[0], 'content must match'
62
+ assert_equal expected_out[i].stuff[0], actual_out[i].stuff[0].string, 'content must match'
66
63
  assert_equal expected_out[i].stuff[2], actual_out[i].stuff[2], 'identifier must match'
67
- assert_equal expected_out[i].stuff[3][:mtime], actual_out[i].stuff[3][:mtime], 'mtime must match'
68
- ['num', :filename, :extension].each do |key|
64
+ ['num', :filename, :extension, :mtime].each do |key|
69
65
  assert_equal expected_out[i].stuff[1][key], actual_out[i].stuff[1][key], "attribute key #{key} must match"
70
66
  end
71
67
  end
@@ -110,9 +106,9 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
110
106
 
111
107
  # Check
112
108
  assert_equal 1, items.size
113
- assert items[0].binary?
114
- assert_equal 'foo/stuff.dat', items[0].raw_filename
115
- assert_nil items[0].raw_content
109
+ assert items[0].content.binary?
110
+ assert_equal "#{Dir.getwd}/foo/stuff.dat", items[0].content.filename
111
+ assert_equal Nanoc::Int::BinaryContent, items[0].content.class
116
112
  end
117
113
 
118
114
  def test_load_layouts_with_nil_dir_name
@@ -340,10 +336,10 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
340
336
  :content_filename => nil,
341
337
  :meta_filename => 'foo/a/b/c.yaml',
342
338
  :extension => nil,
343
- :file => nil
339
+ :file => nil,
340
+ mtime: File.mtime('foo/a/b/c.yaml')
344
341
  },
345
342
  '/a/b/c/',
346
- binary: false, mtime: File.mtime('foo/a/b/c.yaml')
347
343
  ),
348
344
  klass.new(
349
345
  'test 2',
@@ -352,10 +348,10 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
352
348
  :content_filename => 'foo/b.c.html',
353
349
  :meta_filename => 'foo/b.c.yaml',
354
350
  :extension => 'html',
355
- :file => File.open('foo/b.c.html')
351
+ :file => File.open('foo/b.c.html'),
352
+ mtime: File.mtime('foo/b.c.html') > File.mtime('foo/b.c.yaml') ? File.mtime('foo/b.c.html') : File.mtime('foo/b.c.yaml')
356
353
  },
357
354
  '/b.c/',
358
- binary: false, mtime: File.mtime('foo/b.c.html') > File.mtime('foo/b.c.yaml') ? File.mtime('foo/b.c.html') : File.mtime('foo/b.c.yaml')
359
355
  ),
360
356
  klass.new(
361
357
  'test 3',
@@ -363,10 +359,10 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
363
359
  content_filename: 'foo/car.html',
364
360
  meta_filename: nil,
365
361
  extension: 'html',
366
- file: File.open('foo/car.html')
362
+ file: File.open('foo/car.html'),
363
+ mtime: File.mtime('foo/car.html')
367
364
  },
368
365
  '/car/',
369
- binary: false, mtime: File.mtime('foo/car.html')
370
366
  )
371
367
  ]
372
368
 
@@ -375,11 +371,10 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
375
371
 
376
372
  # Check
377
373
  (0..expected_out.size - 1).each do |i|
378
- assert_equal expected_out[i].stuff[0], actual_out[i].stuff[0], 'content must match'
374
+ assert_equal expected_out[i].stuff[0], actual_out[i].stuff[0].string, 'content must match'
379
375
  assert_equal expected_out[i].stuff[2], actual_out[i].stuff[2], 'identifier must match'
380
- assert_equal expected_out[i].stuff[3][:mtime], actual_out[i].stuff[3][:mtime], 'mtime must match'
381
376
 
382
- ['num', :content_filename, :meta_filename, :extension].each do |key|
377
+ ['num', :content_filename, :meta_filename, :extension, :mtime].each do |key|
383
378
  assert_equal expected_out[i].stuff[1][key], actual_out[i].stuff[1][key], "attribute key #{key} must match"
384
379
  end
385
380
  end
@@ -423,10 +418,10 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
423
418
  :content_filename => nil,
424
419
  :meta_filename => 'foo/a/b/c.yaml',
425
420
  :extension => nil,
426
- :file => nil
421
+ :file => nil,
422
+ mtime: File.mtime('foo/a/b/c.yaml')
427
423
  },
428
424
  '/a/b/c/',
429
- binary: false, mtime: File.mtime('foo/a/b/c.yaml')
430
425
  ),
431
426
  klass.new(
432
427
  'test 2',
@@ -435,10 +430,10 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
435
430
  :content_filename => 'foo/b.html.erb',
436
431
  :meta_filename => 'foo/b.yaml',
437
432
  :extension => 'html.erb',
438
- :file => File.open('foo/b.html.erb')
433
+ :file => File.open('foo/b.html.erb'),
434
+ mtime: File.mtime('foo/b.html.erb') > File.mtime('foo/b.yaml') ? File.mtime('foo/b.html.erb') : File.mtime('foo/b.yaml')
439
435
  },
440
436
  '/b/',
441
- binary: false, mtime: File.mtime('foo/b.html.erb') > File.mtime('foo/b.yaml') ? File.mtime('foo/b.html.erb') : File.mtime('foo/b.yaml')
442
437
  ),
443
438
  klass.new(
444
439
  'test 3',
@@ -446,10 +441,10 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
446
441
  content_filename: 'foo/car.html',
447
442
  meta_filename: nil,
448
443
  extension: 'html',
449
- file: File.open('foo/car.html')
444
+ file: File.open('foo/car.html'),
445
+ mtime: File.mtime('foo/car.html')
450
446
  },
451
447
  '/car/',
452
- binary: false, mtime: File.mtime('foo/car.html')
453
448
  )
454
449
  ]
455
450
 
@@ -458,16 +453,27 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
458
453
 
459
454
  # Check
460
455
  (0..expected_out.size - 1).each do |i|
461
- assert_equal expected_out[i].stuff[0], actual_out[i].stuff[0], 'content must match'
456
+ assert_equal expected_out[i].stuff[0], actual_out[i].stuff[0].string, 'content must match'
462
457
  assert_equal expected_out[i].stuff[2], actual_out[i].stuff[2], 'identifier must match'
463
- assert_equal expected_out[i].stuff[3][:mtime], actual_out[i].stuff[3][:mtime], 'mtime must match'
464
458
 
465
- ['num', :content_filename, :meta_filename, :extension].each do |key|
459
+ ['num', :content_filename, :meta_filename, :extension, :mtime].each do |key|
466
460
  assert_equal expected_out[i].stuff[1][key], actual_out[i].stuff[1][key], "attribute key #{key} must match"
467
461
  end
468
462
  end
469
463
  end
470
464
 
465
+ def test_load_objects_correct_identifier_with_separate_yaml_file
466
+ data_source = new_data_source({ identifier_type: 'full' })
467
+
468
+ FileUtils.mkdir_p('foo')
469
+ File.write('foo/donkey.jpeg', 'data')
470
+ File.write('foo/donkey.yaml', "---\nalt: Donkey\n")
471
+
472
+ objects = data_source.send(:load_objects, 'foo', 'The Foo', Nanoc::Int::Item)
473
+ assert_equal 1, objects.size
474
+ assert_equal '/donkey.jpeg', objects.first.identifier.to_s
475
+ end
476
+
471
477
  def test_filename_for
472
478
  data_source = new_data_source
473
479
 
@@ -517,7 +523,7 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
517
523
  items = data_source.items
518
524
 
519
525
  assert_equal 1, items.size
520
- assert_equal Encoding.find('UTF-8'), items[0].raw_content.encoding
526
+ assert_equal Encoding.find('UTF-8'), items[0].content.string.encoding
521
527
  ensure
522
528
  Encoding.default_external = original_default_external_encoding
523
529
  end
@@ -548,6 +554,6 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
548
554
  # Parse
549
555
  items = data_source.items
550
556
  assert_equal 1, items.size
551
- assert_equal Encoding.find('UTF-8'), items[0].raw_content.encoding
557
+ assert_equal Encoding.find('UTF-8'), items[0].content.string.encoding
552
558
  end
553
559
  end
@@ -34,7 +34,6 @@ class Nanoc::Extra::Checking::Checks::HTMLTest < Nanoc::TestCase
34
34
  assert_equal 2, check.issues.size
35
35
  assert_equal 'line 1: no document type declaration; will parse without validation: <h2>Hi!</h1>', check.issues.to_a[0].description
36
36
  assert_equal 'line 1: end tag for element "H1" which is not open: <h2>Hi!</h1>', check.issues.to_a[1].description
37
- check.issues.to_a[0].description
38
37
  end
39
38
  end
40
39
  end
@@ -1,9 +1,9 @@
1
1
  class Nanoc::Extra::Checking::Checks::MixedContentTest < Nanoc::TestCase
2
2
  def create_output_file(name, lines)
3
3
  FileUtils.mkdir_p('output')
4
- File.open('output/' + name, 'w') { |io|
4
+ File.open('output/' + name, 'w') do |io|
5
5
  io.write(lines.join('\n'))
6
- }
6
+ end
7
7
  end
8
8
 
9
9
  def assert_include(haystack, needle)
@@ -137,7 +137,7 @@ class Nanoc::Extra::Checking::Checks::MixedContentTest < Nanoc::TestCase
137
137
  issues = check.issues.to_a
138
138
  assert_equal 8, issues.count
139
139
 
140
- descriptions = issues.map { |issue| issue.description }
140
+ descriptions = issues.map(&:description)
141
141
  issues.each do |issue|
142
142
  assert_equal 'output/foo.html', issue.subject
143
143
  end
@@ -62,31 +62,31 @@ class Nanoc::Extra::Deployers::FogTest < Nanoc::TestCase
62
62
  def test_run_cdn_with_dry_run
63
63
  if_have 'fog' do
64
64
  begin
65
- # Create deployer
66
- fog = Nanoc::Extra::Deployers::Fog.new(
67
- 'output/',
68
- {
69
- :provider => 'aws',
70
- :cdn_id => 'id-cdn',
71
- # FIXME bucket is necessary for deployer but fog doesn't like it
72
- :bucket_name => 'doesntmatter',
73
- :aws_access_key_id => 'meh',
74
- :aws_secret_access_key => 'dontcare'},
75
- :dry_run => true)
76
-
77
- # Create site
78
- FileUtils.mkdir_p('output')
79
- File.open('output/meow', 'w') { |io| io.write "I am a cat!" }
80
- File.open('output/bark', 'w') { |io| io.write "I am a dog!" }
81
-
82
- # Create local cloud (but not bucket)
83
- FileUtils.mkdir_p('mylocalcloud')
84
-
85
- # Run
86
- fog.run
65
+ # Create deployer
66
+ fog = Nanoc::Extra::Deployers::Fog.new(
67
+ 'output/',
68
+ {
69
+ provider: 'aws',
70
+ cdn_id: 'id-cdn',
71
+ # FIXME: bucket is necessary for deployer but fog doesn't like it
72
+ bucket_name: 'doesntmatter',
73
+ aws_access_key_id: 'meh',
74
+ aws_secret_access_key: 'dontcare' },
75
+ dry_run: true)
76
+
77
+ # Create site
78
+ FileUtils.mkdir_p('output')
79
+ File.open('output/meow', 'w') { |io| io.write 'I am a cat!' }
80
+ File.open('output/bark', 'w') { |io| io.write 'I am a dog!' }
81
+
82
+ # Create local cloud (but not bucket)
83
+ FileUtils.mkdir_p('mylocalcloud')
84
+
85
+ # Run
86
+ fog.run
87
87
  ensure
88
- # Hack :(
89
- ::Fog.instance_eval { @mocking = false }
88
+ # HACK :(
89
+ ::Fog.instance_eval { @mocking = false }
90
90
  end
91
91
  end
92
92
  end
@@ -2,7 +2,7 @@ class Nanoc::Filters::LessTest < Nanoc::TestCase
2
2
  def test_filter
3
3
  if_have 'less' do
4
4
  # Create item
5
- @item = Nanoc::Int::Item.new('blah', { content_filename: 'content/foo/bar.txt' }, '/foo/bar/')
5
+ @item = Nanoc::ItemView.new(Nanoc::Int::Item.new('blah', { content_filename: 'content/foo/bar.txt' }, '/foo/bar/'))
6
6
 
7
7
  # Create filter
8
8
  filter = ::Nanoc::Filters::Less.new(item: @item, items: [@item])
@@ -20,7 +20,7 @@ class Nanoc::Filters::LessTest < Nanoc::TestCase
20
20
  File.open('content/foo/bar/imported_file.less', 'w') { |io| io.write('p { color: red; }') }
21
21
 
22
22
  # Create item
23
- @item = Nanoc::Int::Item.new('blah', { content_filename: 'content/foo/bar.txt' }, '/foo/bar/')
23
+ @item = Nanoc::ItemView.new(Nanoc::Int::Item.new('blah', { content_filename: 'content/foo/bar.txt' }, '/foo/bar/'))
24
24
 
25
25
  # Create filter
26
26
  filter = ::Nanoc::Filters::Less.new(item: @item, items: [@item])
@@ -39,7 +39,7 @@ class Nanoc::Filters::LessTest < Nanoc::TestCase
39
39
 
40
40
  # Create item
41
41
  File.open('content/foo/bar.txt', 'w') { |io| io.write('meh') }
42
- @item = Nanoc::Int::Item.new('blah', { content_filename: 'content/foo/bar.txt' }, '/foo/bar/')
42
+ @item = Nanoc::ItemView.new(Nanoc::Int::Item.new('blah', { content_filename: 'content/foo/bar.txt' }, '/foo/bar/'))
43
43
 
44
44
  # Create filter
45
45
  filter = ::Nanoc::Filters::Less.new(item: @item, items: [@item])
@@ -108,7 +108,7 @@ class Nanoc::Filters::LessTest < Nanoc::TestCase
108
108
  def test_compression
109
109
  if_have 'less' do
110
110
  # Create item
111
- @item = Nanoc::Int::Item.new('blah', { content_filename: 'content/foo/bar.txt' }, '/foo/bar/')
111
+ @item = Nanoc::ItemView.new(Nanoc::Int::Item.new('blah', { content_filename: 'content/foo/bar.txt' }, '/foo/bar/'))
112
112
 
113
113
  # Create filter
114
114
  filter = ::Nanoc::Filters::Less.new(item: @item, items: [@item])
@@ -274,7 +274,7 @@ class Nanoc::Filters::SassTest < Nanoc::TestCase
274
274
  io.write("p\n color: blue")
275
275
  end
276
276
 
277
- options = { :filename => File.join(Dir.getwd, 'test.sass') }
277
+ options = { filename: File.join(Dir.getwd, 'test.sass') }
278
278
  ::Sass::Engine.new('@import "morestuff"', options).render
279
279
  end
280
280
  end
@@ -285,10 +285,15 @@ class Nanoc::Filters::SassTest < Nanoc::TestCase
285
285
  FileUtils.mkdir_p('content')
286
286
  File.open('content/xyzzy.sass', 'w') { |io| io.write('p\n color: green') }
287
287
 
288
- items = [Nanoc::Int::Item.new(
289
- 'blah',
290
- { content_filename: 'content/xyzzy.sass' },
291
- '/blah/')]
288
+ items = [
289
+ Nanoc::ItemView.new(
290
+ Nanoc::Int::Item.new(
291
+ 'blah',
292
+ { content_filename: 'content/xyzzy.sass' },
293
+ '/blah/',
294
+ ),
295
+ ),
296
+ ]
292
297
  params = { item: items[0], items: items }.merge(params)
293
298
  ::Nanoc::Filters::Sass.new(params)
294
299
  end