nanoc 4.4.4 → 4.4.5

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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +9 -8
  4. data/NEWS.md +10 -0
  5. data/lib/nanoc/base.rb +0 -3
  6. data/lib/nanoc/base/contracts_support.rb +55 -2
  7. data/lib/nanoc/base/core_ext/array.rb +0 -2
  8. data/lib/nanoc/base/core_ext/hash.rb +0 -2
  9. data/lib/nanoc/base/entities.rb +1 -0
  10. data/lib/nanoc/base/entities/context.rb +1 -4
  11. data/lib/nanoc/base/entities/directed_graph.rb +0 -10
  12. data/lib/nanoc/base/entities/identifiable_collection.rb +1 -2
  13. data/lib/nanoc/base/entities/identifier.rb +6 -8
  14. data/lib/nanoc/base/entities/item_rep.rb +12 -18
  15. data/lib/nanoc/base/{compilation → entities}/outdatedness_reasons.rb +0 -0
  16. data/lib/nanoc/base/entities/site.rb +3 -19
  17. data/lib/nanoc/base/errors.rb +9 -0
  18. data/lib/nanoc/base/memoization.rb +0 -2
  19. data/lib/nanoc/base/repos/checksum_store.rb +21 -14
  20. data/lib/nanoc/base/repos/compiled_content_cache.rb +11 -15
  21. data/lib/nanoc/base/repos/dependency_store.rb +8 -27
  22. data/lib/nanoc/base/services.rb +3 -0
  23. data/lib/nanoc/base/services/compiler.rb +379 -0
  24. data/lib/nanoc/base/services/compiler_loader.rb +3 -1
  25. data/lib/nanoc/base/services/executor.rb +27 -41
  26. data/lib/nanoc/base/services/item_rep_builder.rb +4 -0
  27. data/lib/nanoc/base/services/item_rep_writer.rb +5 -2
  28. data/lib/nanoc/base/{compilation → services}/outdatedness_checker.rb +1 -1
  29. data/lib/nanoc/base/views/post_compile_item_rep_view.rb +1 -1
  30. data/lib/nanoc/base/views/view_context.rb +3 -3
  31. data/lib/nanoc/checking/check.rb +1 -1
  32. data/lib/nanoc/checking/checks/external_links.rb +1 -1
  33. data/lib/nanoc/cli.rb +0 -4
  34. data/lib/nanoc/cli/commands/compile.rb +2 -2
  35. data/lib/nanoc/cli/commands/shell.rb +1 -1
  36. data/lib/nanoc/data_sources/filesystem.rb +10 -20
  37. data/lib/nanoc/data_sources/filesystem/errors.rb +55 -0
  38. data/lib/nanoc/filters/asciidoc.rb +0 -2
  39. data/lib/nanoc/filters/coffeescript.rb +0 -2
  40. data/lib/nanoc/filters/colorize_syntax.rb +0 -2
  41. data/lib/nanoc/filters/handlebars.rb +0 -2
  42. data/lib/nanoc/filters/mustache.rb +0 -2
  43. data/lib/nanoc/filters/redcarpet.rb +0 -4
  44. data/lib/nanoc/filters/slim.rb +0 -2
  45. data/lib/nanoc/filters/typogruby.rb +0 -2
  46. data/lib/nanoc/filters/xsl.rb +0 -2
  47. data/lib/nanoc/filters/yui_compressor.rb +0 -2
  48. data/lib/nanoc/helpers/capturing.rb +22 -19
  49. data/lib/nanoc/helpers/link_to.rb +3 -7
  50. data/lib/nanoc/helpers/rendering.rb +1 -1
  51. data/lib/nanoc/rule_dsl/action_provider.rb +2 -2
  52. data/lib/nanoc/rule_dsl/compiler_dsl.rb +0 -2
  53. data/lib/nanoc/rule_dsl/recording_executor.rb +6 -6
  54. data/lib/nanoc/rule_dsl/rule.rb +0 -2
  55. data/lib/nanoc/rule_dsl/rule_context.rb +3 -3
  56. data/lib/nanoc/rule_dsl/rule_memory_calculator.rb +5 -5
  57. data/lib/nanoc/spec.rb +1 -1
  58. data/lib/nanoc/version.rb +1 -1
  59. data/test/base/test_compiler.rb +3 -1
  60. data/test/base/test_dependency_tracker.rb +0 -19
  61. data/test/base/test_item_rep.rb +3 -0
  62. data/test/cli/commands/test_create_site.rb +1 -1
  63. data/test/data_sources/test_filesystem.rb +5 -5
  64. data/test/filters/test_coffeescript.rb +2 -0
  65. data/test/filters/test_handlebars.rb +4 -0
  66. data/test/filters/test_uglify_js.rb +4 -0
  67. data/test/filters/test_xsl.rb +1 -1
  68. data/test/helper.rb +6 -0
  69. data/test/helpers/test_capturing.rb +6 -1
  70. data/test/helpers/test_xml_sitemap.rb +1 -1
  71. metadata +6 -6
  72. data/lib/nanoc/base/compilation/compiler.rb +0 -295
  73. data/test/base/test_checksum_store.rb +0 -28
@@ -1,6 +1,4 @@
1
1
  module Nanoc::Filters
2
- # @since 3.3.0
3
- #
4
2
  # @api private
5
3
  class CoffeeScript < Nanoc::Filter
6
4
  requires 'coffee-script'
@@ -250,8 +250,6 @@ module Nanoc::Filters
250
250
 
251
251
  # Runs the content through [Highlight](http://www.andre-simon.de/doku/highlight/en/highlight.html).
252
252
  #
253
- # @since 3.2.0
254
- #
255
253
  # @param [String] code The code to colorize
256
254
  #
257
255
  # @param [String] language The language the code is written in
@@ -1,6 +1,4 @@
1
1
  module Nanoc::Filters
2
- # @since 3.4.0
3
- #
4
2
  # @api private
5
3
  class Handlebars < Nanoc::Filter
6
4
  requires 'handlebars'
@@ -1,6 +1,4 @@
1
1
  module Nanoc::Filters
2
- # @since 3.2.0
3
- #
4
2
  # @api private
5
3
  class Mustache < Nanoc::Filter
6
4
  requires 'mustache'
@@ -1,6 +1,4 @@
1
1
  module Nanoc::Filters
2
- # @since 3.2.0
3
- #
4
2
  # @api private
5
3
  class Redcarpet < Nanoc::Filter
6
4
  requires 'redcarpet'
@@ -23,8 +21,6 @@ module Nanoc::Filters
23
21
  #
24
22
  # For Redcarpet 2.x
25
23
  #
26
- # @since 3.2.4
27
- #
28
24
  # @param [String] content The content to filter
29
25
  #
30
26
  # @option params [Hash] :options ({}) A list of options to pass on to
@@ -1,6 +1,4 @@
1
1
  module Nanoc::Filters
2
- # @since 3.2.0
3
- #
4
2
  # @api private
5
3
  class Slim < Nanoc::Filter
6
4
  requires 'slim'
@@ -1,6 +1,4 @@
1
1
  module Nanoc::Filters
2
- # @since 3.2.0
3
- #
4
2
  # @api private
5
3
  class Typogruby < Nanoc::Filter
6
4
  requires 'typogruby'
@@ -1,6 +1,4 @@
1
1
  module Nanoc::Filters
2
- # @since 3.3.0
3
- #
4
2
  # @api private
5
3
  class XSL < Nanoc::Filter
6
4
  requires 'nokogiri'
@@ -1,6 +1,4 @@
1
1
  module Nanoc::Filters
2
- # @since 3.3.0
3
- #
4
2
  # @api private
5
3
  class YUICompressor < Nanoc::Filter
6
4
  requires 'yuicompressor'
@@ -27,30 +27,32 @@ module Nanoc::Helpers
27
27
  existing_behavior = params.fetch(:existing, :error)
28
28
 
29
29
  # Capture
30
- content = capture(&block)
30
+ content_string = capture(&block)
31
31
 
32
- # Prepare for store
32
+ # Get existing contents and prep for store
33
33
  snapshot_contents = @item.reps[:default].unwrap.snapshot_contents
34
34
  capture_name = "__capture_#{name}".to_sym
35
- case existing_behavior
36
- when :overwrite
37
- snapshot_contents[capture_name] = ''
38
- when :append
39
- snapshot_contents[capture_name] ||= ''
40
- when :error
41
- if snapshot_contents[capture_name] && snapshot_contents[capture_name] != content
42
- # FIXME: get proper exception
43
- raise "a capture named #{name.inspect} for #{@item.identifier} already exists"
35
+ old_content_string =
36
+ case existing_behavior
37
+ when :overwrite
38
+ ''
39
+ when :append
40
+ c = snapshot_contents[capture_name]
41
+ c ? c.string : ''
42
+ when :error
43
+ if snapshot_contents[capture_name] && snapshot_contents[capture_name].string != content_string
44
+ # FIXME: get proper exception
45
+ raise "a capture named #{name.inspect} for #{@item.identifier} already exists"
46
+ else
47
+ ''
48
+ end
44
49
  else
45
- snapshot_contents[capture_name] = ''
50
+ raise ArgumentError, 'expected :existing_behavior param to #content_for to be one of ' \
51
+ ":overwrite, :append, or :error, but #{existing_behavior.inspect} was given"
46
52
  end
47
- else
48
- raise ArgumentError, 'expected :existing_behavior param to #content_for to be one of ' \
49
- ":overwrite, :append, or :error, but #{existing_behavior.inspect} was given"
50
- end
51
53
 
52
54
  # Store
53
- snapshot_contents[capture_name] << content
55
+ snapshot_contents[capture_name] = Nanoc::Int::TextualContent.new(old_content_string + content_string)
54
56
  else # Get content
55
57
  if args.size != 2
56
58
  raise ArgumentError, 'expected 2 arguments (the item ' \
@@ -72,7 +74,8 @@ module Nanoc::Helpers
72
74
  end
73
75
  end
74
76
 
75
- rep.snapshot_contents["__capture_#{name}".to_sym]
77
+ content = rep.snapshot_contents["__capture_#{name}".to_sym]
78
+ content ? content.string : nil
76
79
  end
77
80
  end
78
81
 
@@ -93,7 +96,7 @@ module Nanoc::Helpers
93
96
 
94
97
  # Depending on how the filter outputs, the result might be a
95
98
  # single string or an array of strings (slim outputs the latter).
96
- erbout_addition = erbout_addition.join if erbout_addition.is_a? Array
99
+ erbout_addition = erbout_addition.join('') if erbout_addition.is_a? Array
97
100
 
98
101
  # Done.
99
102
  erbout_addition
@@ -78,15 +78,11 @@ module Nanoc::Helpers
78
78
 
79
79
  # Calculate the relative path (method depends on whether destination is
80
80
  # a directory or not).
81
- relative_path =
82
- if src_path.to_s[-1, 1] != '/'
83
- dst_path.relative_path_from(src_path.dirname).to_s
84
- else
85
- dst_path.relative_path_from(src_path).to_s
86
- end
81
+ from = src_path.to_s.end_with?('/') ? src_path : src_path.dirname
82
+ relative_path = dst_path.relative_path_from(from).to_s
87
83
 
88
84
  # Add trailing slash if necessary
89
- if dst_path.to_s[-1, 1] == '/'
85
+ if dst_path.to_s.end_with?('/')
90
86
  relative_path << '/'
91
87
  end
92
88
 
@@ -37,7 +37,7 @@ module Nanoc::Helpers
37
37
  }.merge(other_assigns)
38
38
 
39
39
  # Get filter name
40
- filter_name, filter_args = *@config._context.compiler.filter_name_and_args_for_layout(layout)
40
+ filter_name, filter_args = *@config._context.compilation_context.filter_name_and_args_for_layout(layout)
41
41
  raise Nanoc::Int::Errors::CannotDetermineFilter.new(layout.identifier) if filter_name.nil?
42
42
 
43
43
  # Get filter class
@@ -55,7 +55,7 @@ module Nanoc::RuleDSL
55
55
  reps: reps,
56
56
  items: site.items,
57
57
  dependency_tracker: dependency_tracker,
58
- compiler: site.compiler,
58
+ compilation_context: site.compiler.compilation_context,
59
59
  )
60
60
  ctx = new_postprocessor_context(site, view_context)
61
61
 
@@ -72,7 +72,7 @@ module Nanoc::RuleDSL
72
72
  reps: nil,
73
73
  items: nil,
74
74
  dependency_tracker: dependency_tracker,
75
- compiler: nil,
75
+ compilation_context: nil,
76
76
  )
77
77
 
78
78
  Nanoc::Int::Context.new(
@@ -159,8 +159,6 @@ module Nanoc::RuleDSL
159
159
  #
160
160
  # @return [void]
161
161
  #
162
- # @since 3.2.0
163
- #
164
162
  # @example Copying the `/foo/` item as-is
165
163
  #
166
164
  # passthrough '/foo/'
@@ -19,11 +19,11 @@ module Nanoc
19
19
  @rule_memory = Nanoc::Int::RuleMemory.new(item_rep)
20
20
  end
21
21
 
22
- def filter(_rep, filter_name, filter_args = {})
22
+ def filter(filter_name, filter_args = {})
23
23
  @rule_memory.add_filter(filter_name, filter_args)
24
24
  end
25
25
 
26
- def layout(_rep, layout_identifier, extra_filter_args = {})
26
+ def layout(layout_identifier, extra_filter_args = {})
27
27
  unless layout_identifier.is_a?(String)
28
28
  raise ArgumentError.new('The layout passed to #layout must be a string')
29
29
  end
@@ -36,9 +36,9 @@ module Nanoc
36
36
  end
37
37
 
38
38
  Pathlike = C::Maybe[C::Or[String, Nanoc::Identifier]]
39
- contract C::Any, Symbol, C::KeywordArgs[path: C::Optional[Pathlike], final: C::Optional[C::Bool]] => nil
40
- def snapshot(rep, snapshot_name, final: true, path: nil)
41
- pathlike = final ? (path || basic_path_from_rules_for(rep, snapshot_name)) : nil
39
+ contract Symbol, C::KeywordArgs[path: C::Optional[Pathlike], final: C::Optional[C::Bool]] => nil
40
+ def snapshot(snapshot_name, final: true, path: nil)
41
+ pathlike = final ? (path || basic_path_from_rules_for(@item_rep, snapshot_name)) : nil
42
42
  actual_path = pathlike && pathlike.to_s
43
43
  @rule_memory.add_snapshot(snapshot_name, final, actual_path)
44
44
  nil
@@ -50,7 +50,7 @@ module Nanoc
50
50
  return nil if routing_rule.nil?
51
51
 
52
52
  dependency_tracker = Nanoc::Int::DependencyTracker::Null.new
53
- view_context = Nanoc::ViewContext.new(reps: nil, items: nil, dependency_tracker: dependency_tracker, compiler: nil)
53
+ view_context = Nanoc::ViewContext.new(reps: nil, items: nil, dependency_tracker: dependency_tracker, compilation_context: nil)
54
54
  basic_path = routing_rule.apply_to(rep, executor: nil, site: @site, view_context: view_context)
55
55
  if basic_path && !basic_path.start_with?('/')
56
56
  raise PathWithoutInitialSlashError.new(rep, basic_path)
@@ -9,8 +9,6 @@ module Nanoc::RuleDSL
9
9
 
10
10
  # @return [Symbol] The name of the snapshot this rule will apply to.
11
11
  # Ignored for compilation rules, but used for routing rules.
12
- #
13
- # @since 3.2.0
14
12
  attr_reader :snapshot_name
15
13
 
16
14
  attr_reader :pattern
@@ -35,7 +35,7 @@ module Nanoc::RuleDSL
35
35
  #
36
36
  # @return [void]
37
37
  def filter(filter_name, filter_args = {})
38
- @_executor.filter(rep.unwrap, filter_name, filter_args)
38
+ @_executor.filter(filter_name, filter_args)
39
39
  end
40
40
 
41
41
  # Layouts the current representation (calls {Nanoc::Int::ItemRep#layout} with
@@ -48,7 +48,7 @@ module Nanoc::RuleDSL
48
48
  #
49
49
  # @return [void]
50
50
  def layout(layout_identifier, extra_filter_args = nil)
51
- @_executor.layout(rep.unwrap, layout_identifier, extra_filter_args)
51
+ @_executor.layout(layout_identifier, extra_filter_args)
52
52
  end
53
53
 
54
54
  # Creates a snapshot of the current compiled item content. Calls
@@ -62,7 +62,7 @@ module Nanoc::RuleDSL
62
62
  #
63
63
  # @return [void]
64
64
  def snapshot(snapshot_name, path: nil)
65
- @_executor.snapshot(rep.unwrap, snapshot_name, path: path)
65
+ @_executor.snapshot(snapshot_name, path: path)
66
66
  end
67
67
 
68
68
  # Creates a snapshot named :last the current compiled item content, with
@@ -66,7 +66,7 @@ module Nanoc::RuleDSL
66
66
  # @return [Nanoc::Int::RuleMemory]
67
67
  def new_rule_memory_for_rep(rep)
68
68
  dependency_tracker = Nanoc::Int::DependencyTracker::Null.new
69
- view_context = @site.compiler.create_view_context(dependency_tracker)
69
+ view_context = @site.compiler.compilation_context.create_view_context(dependency_tracker)
70
70
 
71
71
  executor = Nanoc::RuleDSL::RecordingExecutor.new(rep, @rules_collection, @site)
72
72
  rule = @rules_collection.compilation_rule_for(rep)
@@ -75,14 +75,14 @@ module Nanoc::RuleDSL
75
75
  raise NoRuleMemoryForItemRepException.new(rep)
76
76
  end
77
77
 
78
- executor.snapshot(rep, :raw)
79
- executor.snapshot(rep, :pre, final: false)
78
+ executor.snapshot(:raw)
79
+ executor.snapshot(:pre, final: false)
80
80
  rule.apply_to(rep, executor: executor, site: @site, view_context: view_context)
81
81
  if executor.rule_memory.any_layouts?
82
- executor.snapshot(rep, :post)
82
+ executor.snapshot(:post)
83
83
  end
84
84
  unless executor.rule_memory.snapshot_actions.any? { |sa| sa.snapshot_name == :last }
85
- executor.snapshot(rep, :last)
85
+ executor.snapshot(:last)
86
86
  end
87
87
 
88
88
  executor.rule_memory
@@ -118,7 +118,7 @@ module Nanoc
118
118
  reps: @reps,
119
119
  items: @items,
120
120
  dependency_tracker: @dependency_tracker,
121
- compiler: new_site.compiler,
121
+ compilation_context: new_site.compiler.compilation_context,
122
122
  )
123
123
  end
124
124
 
@@ -1,4 +1,4 @@
1
1
  module Nanoc
2
2
  # The current Nanoc version.
3
- VERSION = '4.4.4'.freeze
3
+ VERSION = '4.4.5'.freeze
4
4
  end
@@ -11,9 +11,11 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
11
11
 
12
12
  action_provider = Nanoc::Int::ActionProvider.named(:rule_dsl).for(site)
13
13
 
14
+ objects = site.items.to_a + site.layouts.to_a
15
+
14
16
  params = {
15
17
  compiled_content_cache: Nanoc::Int::CompiledContentCache.new(items: site.items),
16
- checksum_store: Nanoc::Int::ChecksumStore.new(site: site),
18
+ checksum_store: Nanoc::Int::ChecksumStore.new(site: site, objects: objects),
17
19
  rule_memory_store: Nanoc::Int::RuleMemoryStore.new,
18
20
  dependency_store: Nanoc::Int::DependencyStore.new(
19
21
  site.items.to_a + site.layouts.to_a,
@@ -87,25 +87,6 @@ class Nanoc::Int::DependencyTrackerTest < Nanoc::TestCase
87
87
  assert_contains_exactly [items[1]], store.objects_causing_outdatedness_of(items[0])
88
88
  end
89
89
 
90
- def test_objects_outdated_due_to
91
- # Mock items
92
- items = [
93
- Nanoc::Int::Item.new('a', {}, '/a.md'),
94
- Nanoc::Int::Item.new('b', {}, '/b.md'),
95
- Nanoc::Int::Item.new('c', {}, '/c.md'),
96
- ]
97
-
98
- # Create
99
- store = Nanoc::Int::DependencyStore.new(items)
100
-
101
- # Record some dependencies
102
- store.record_dependency(items[0], items[1])
103
- store.record_dependency(items[1], items[2])
104
-
105
- # Verify dependencies
106
- assert_contains_exactly [items[0]], store.objects_outdated_due_to(items[1])
107
- end
108
-
109
90
  def test_store_graph_and_load_graph_simple
110
91
  # Mock items
111
92
  items = [
@@ -139,7 +139,10 @@ class Nanoc::Int::ItemRepTest < Nanoc::TestCase
139
139
  def test_access_compiled_content_of_binary_item
140
140
  content = Nanoc::Int::BinaryContent.new(File.expand_path('content/somefile.dat'))
141
141
  item = Nanoc::Int::Item.new(content, {}, '/somefile/')
142
+
142
143
  item_rep = Nanoc::Int::ItemRep.new(item, :foo)
144
+ item_rep.expects(:compiled?).returns(true)
145
+
143
146
  assert_raises(Nanoc::Int::Errors::CannotGetCompiledContentOfBinaryItem) do
144
147
  item_rep.compiled_content
145
148
  end
@@ -75,7 +75,7 @@ class Nanoc::CLI::Commands::CreateSiteTest < Nanoc::TestCase
75
75
  FileUtils.cd('foo') do
76
76
  # Try with encoding = default encoding = utf-8
77
77
  File.open('content/index.html', 'w') { |io| io.write('Hello ' + 0xD6.chr + "!\n") }
78
- exception = assert_raises(RuntimeError) do
78
+ exception = assert_raises(Nanoc::DataSources::Filesystem::Errors::InvalidEncoding) do
79
79
  Nanoc::Int::SiteLoader.new.new_from_cwd
80
80
  end
81
81
  assert_equal 'Could not read content/index.html because the file is not valid UTF-8.', exception.message
@@ -135,7 +135,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
135
135
  File.open('foo/stuff.dat', 'w') { |io| io.write('random binary data') }
136
136
 
137
137
  # Load
138
- assert_raises(RuntimeError) do
138
+ assert_raises(Nanoc::DataSources::Filesystem::Errors::BinaryLayout) do
139
139
  data_source.send(:load_objects, 'foo', Nanoc::Int::Layout)
140
140
  end
141
141
  end
@@ -642,7 +642,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
642
642
  end
643
643
 
644
644
  # Check
645
- assert_raises RuntimeError do
645
+ assert_raises(Nanoc::DataSources::Filesystem::Errors::MultipleContentFiles) do
646
646
  data_source.send(:all_split_files_in, '.')
647
647
  end
648
648
  end
@@ -829,7 +829,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
829
829
  data_source = Nanoc::DataSources::Filesystem.new(nil, nil, nil, nil)
830
830
 
831
831
  # Parse it
832
- assert_raises(RuntimeError) do
832
+ assert_raises(Nanoc::DataSources::Filesystem::Errors::InvalidFormat) do
833
833
  data_source.instance_eval { parse('test.html', nil) }
834
834
  end
835
835
  end
@@ -981,7 +981,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
981
981
 
982
982
  data_source = Nanoc::DataSources::Filesystem.new(nil, nil, nil, nil)
983
983
 
984
- assert_raises(Nanoc::DataSources::Filesystem::InvalidMetadataError) do
984
+ assert_raises(Nanoc::DataSources::Filesystem::Errors::InvalidMetadata) do
985
985
  data_source.instance_eval { parse('test.html', nil) }
986
986
  end
987
987
  end
@@ -992,7 +992,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
992
992
 
993
993
  data_source = Nanoc::DataSources::Filesystem.new(nil, nil, nil, nil)
994
994
 
995
- assert_raises(Nanoc::DataSources::Filesystem::InvalidMetadataError) do
995
+ assert_raises(Nanoc::DataSources::Filesystem::Errors::InvalidMetadata) do
996
996
  data_source.instance_eval { parse('test.html', 'test.yaml') }
997
997
  end
998
998
  end
@@ -1,5 +1,7 @@
1
1
  class Nanoc::Filters::CoffeeScriptTest < Nanoc::TestCase
2
2
  def test_filter
3
+ skip_v8_on_ruby24
4
+
3
5
  if_have 'coffee-script' do
4
6
  # Create filter
5
7
  filter = ::Nanoc::Filters::CoffeeScript.new
@@ -1,5 +1,7 @@
1
1
  class Nanoc::Filters::HandlebarsTest < Nanoc::TestCase
2
2
  def test_filter
3
+ skip_v8_on_ruby24
4
+
3
5
  if_have 'handlebars' do
4
6
  # Create data
5
7
  item = Nanoc::Int::Item.new(
@@ -34,6 +36,8 @@ class Nanoc::Filters::HandlebarsTest < Nanoc::TestCase
34
36
  end
35
37
 
36
38
  def test_filter_without_layout
39
+ skip_v8_on_ruby24
40
+
37
41
  if_have 'handlebars' do
38
42
  # Create data
39
43
  item = Nanoc::Int::Item.new(