nanoc 4.3.5 → 4.3.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3606c2a092c56bb20b1b07bc680d99a631114fce
4
- data.tar.gz: 9e38476033f294ca4acc3e90eaf3b5ce1449294d
3
+ metadata.gz: 33272b9e2fbec854248b3d0bd0abbcb714f3e1eb
4
+ data.tar.gz: 5f4d064d412bb748a9103454243c06bd851e9f6a
5
5
  SHA512:
6
- metadata.gz: 712a908ab06b6f2a1242d078f81ead6130370205ecd6eac2e21d9b5618bdd06ec1024e520e0bc15cb6242aca73fc5029ff5fbd3470c835536dd65128d25c1b46
7
- data.tar.gz: 68cff4e9694008e4af025714a4a4ce4b06cd57564c7573e0da3ec051ee7925aca7451cb355c8b0f86e5660f3d2799b27c83323452418dca135e14d8fae884836
6
+ metadata.gz: 2f32329a10aac398a06ca5974db441a3b685fc27e8db011a87f4e8e8937bcb371495e822a4ba6fe3c6bd4391f823cbc946a38cc77fba0d388671d2629358ac6c
7
+ data.tar.gz: 4b32d6d3c48b88ad8f996c53278f759073a17844d729c532991f5da01e8c7923d3851e653cf8cb31a0de877140ef15bbbad40d30977cacab7af9a1217869d70a
data/Gemfile CHANGED
@@ -43,6 +43,7 @@ group :plugins do
43
43
  gem 'mustache', '~> 1.0'
44
44
  gem 'nokogiri', '~> 1.6'
45
45
  gem 'pandoc-ruby'
46
+ gem 'parallel'
46
47
  gem 'pygments.rb', platforms: [:ruby, :mswin]
47
48
  gem 'rack'
48
49
  gem 'rainpress'
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nanoc (4.3.5)
4
+ nanoc (4.3.6)
5
5
  cri (~> 2.3)
6
6
  hamster (~> 3.0)
7
+ parallel (~> 1.9)
7
8
  ref (~> 2.0)
8
9
 
9
10
  GEM
@@ -52,7 +53,7 @@ GEM
52
53
  diff-lcs (1.2.5)
53
54
  docile (1.1.5)
54
55
  erubis (2.7.0)
55
- excon (0.53.0)
56
+ excon (0.54.0)
56
57
  execjs (2.7.0)
57
58
  ffi (1.9.14)
58
59
  fission (0.5.0)
@@ -173,9 +174,9 @@ GEM
173
174
  fog-voxel (0.1.0)
174
175
  fog-core
175
176
  fog-xml
176
- fog-vsphere (1.2.1)
177
+ fog-vsphere (1.4.0)
177
178
  fog-core
178
- rbvmomi (~> 1.8.0)
179
+ rbvmomi (~> 1.9)
179
180
  fog-xenserver (0.2.3)
180
181
  fog-core
181
182
  fog-xml
@@ -229,7 +230,7 @@ GEM
229
230
  mime-types-data (3.2016.0521)
230
231
  mini_portile2 (2.1.0)
231
232
  minitest (5.9.1)
232
- mocha (1.2.0)
233
+ mocha (1.2.1)
233
234
  metaclass (~> 0.0.1)
234
235
  multi_json (1.12.1)
235
236
  mustache (1.0.3)
@@ -240,6 +241,7 @@ GEM
240
241
  nenv (~> 0.1)
241
242
  shellany (~> 0.0)
242
243
  pandoc-ruby (2.0.1)
244
+ parallel (1.9.0)
243
245
  parser (2.3.1.4)
244
246
  ast (~> 2.2)
245
247
  posix-spawn (0.3.11)
@@ -258,10 +260,11 @@ GEM
258
260
  rb-fsevent (0.9.7)
259
261
  rb-inotify (0.9.7)
260
262
  ffi (>= 0.5.0)
261
- rbvmomi (1.8.2)
262
- builder
263
- nokogiri (>= 1.4.1)
264
- trollop
263
+ rbvmomi (1.9.4)
264
+ builder (~> 3.2)
265
+ json (>= 1.8)
266
+ nokogiri (~> 1.5)
267
+ trollop (~> 2.1)
265
268
  rdiscount (2.2.0.1)
266
269
  rdoc (4.2.1)
267
270
  redcarpet (3.3.4)
@@ -288,7 +291,7 @@ GEM
288
291
  unicode-display_width (~> 1.0, >= 1.0.1)
289
292
  ruby-progressbar (1.8.1)
290
293
  ruby_dep (1.5.0)
291
- rubypants (0.5.1)
294
+ rubypants (0.6.0)
292
295
  safe_yaml (1.0.4)
293
296
  sass (3.4.22)
294
297
  shellany (0.0.1)
@@ -362,6 +365,7 @@ DEPENDENCIES
362
365
  nanoc!
363
366
  nokogiri (~> 1.6)
364
367
  pandoc-ruby
368
+ parallel
365
369
  pry
366
370
  pygments.rb
367
371
  rack
@@ -387,4 +391,4 @@ DEPENDENCIES
387
391
  yuicompressor
388
392
 
389
393
  BUNDLED WITH
390
- 1.13.3
394
+ 1.13.6
data/NEWS.md CHANGED
@@ -1,10 +1,24 @@
1
1
  # Nanoc news
2
2
 
3
+ ## 4.3.6 (2016-10-23)
4
+
5
+ Fixes:
6
+
7
+ * Made legacy patterns properly support full identifiers (#957)
8
+ * Fixed timezone issues in `#to_iso8601_date` (#961)
9
+ * Fixed error when accessing item (rep) paths in shell command (#963)
10
+ * Fixed issue that caused `#path` to be nil inside compilation rules (#964)
11
+ * Made `__FILE__` in Checks file be a absolute path (#966)
12
+
13
+ Enhancements:
14
+
15
+ * Made the command line write status information to stderr, not stdout (#958)
16
+
3
17
  ## 4.3.5 (2016-10-14)
4
18
 
5
19
  Fixes:
6
20
 
7
- * Handle `form/@action` in `relativize_paths` filter [Lorin Werthen] (#950)
21
+ * Handle `form/@action` in `relativize_paths` filter (#950) [Lorin Werthen]
8
22
 
9
23
  Experimental features:
10
24
 
@@ -46,6 +46,22 @@ module Nanoc
46
46
  enabled_features.include?('all')
47
47
  end
48
48
 
49
+ # @api private
50
+ def self.enable(feature_name)
51
+ raise ArgumentError, 'no block given' unless block_given?
52
+
53
+ if enabled?(feature_name)
54
+ yield
55
+ else
56
+ begin
57
+ enabled_features << feature_name
58
+ yield
59
+ ensure
60
+ enabled_features.delete(feature_name)
61
+ end
62
+ end
63
+ end
64
+
49
65
  # @api private
50
66
  def self.reset_caches
51
67
  @enabled_features = nil
@@ -18,5 +18,9 @@ module Nanoc::Int
18
18
  def snapshots_defs_for(_rep)
19
19
  raise NotImplementedError
20
20
  end
21
+
22
+ def paths_for(_rep)
23
+ raise NotImplementedError
24
+ end
21
25
  end
22
26
  end
@@ -18,15 +18,14 @@ module Nanoc::Int
18
18
  def run
19
19
  paths_to_reps = {}
20
20
  @reps.each do |rep|
21
- mem = @action_provider.memory_for(rep)
22
- mem.snapshot_actions.each do |snapshot_action|
23
- route_rep(rep, snapshot_action, paths_to_reps)
21
+ @action_provider.paths_for(rep).each do |snapshot_name, path|
22
+ route_rep(rep, path, snapshot_name, paths_to_reps)
24
23
  end
25
24
  end
26
25
  end
27
26
 
28
- def route_rep(rep, snapshot_action, paths_to_reps)
29
- basic_path = snapshot_action.path
27
+ def route_rep(rep, path, snapshot_name, paths_to_reps)
28
+ basic_path = path
30
29
  return if basic_path.nil?
31
30
  basic_path = basic_path.encode('UTF-8')
32
31
 
@@ -37,8 +36,8 @@ module Nanoc::Int
37
36
  paths_to_reps[basic_path] = rep
38
37
  end
39
38
 
40
- rep.raw_paths[snapshot_action.snapshot_name] = @site.config[:output_dir] + basic_path
41
- rep.paths[snapshot_action.snapshot_name] = strip_index_filename(basic_path)
39
+ rep.raw_paths[snapshot_name] = @site.config[:output_dir] + basic_path
40
+ rep.paths[snapshot_name] = strip_index_filename(basic_path)
42
41
  end
43
42
 
44
43
  def strip_index_filename(basic_path)
@@ -56,6 +56,11 @@ module Nanoc::CLI
56
56
  @cached_is_tty ||= @stream.tty?
57
57
  end
58
58
 
59
+ # @see IO#isatty
60
+ def isatty
61
+ tty?
62
+ end
63
+
59
64
  # @see IO#flush
60
65
  def flush
61
66
  _nanoc_swallow_broken_pipe_errors_while do
@@ -45,8 +45,8 @@ module Nanoc::CLI
45
45
  #
46
46
  # @return [void]
47
47
  def load_site(preprocess: false)
48
- print 'Loading site… '
49
- $stdout.flush
48
+ $stderr.print 'Loading site… '
49
+ $stderr.flush
50
50
 
51
51
  if site.nil?
52
52
  raise ::Nanoc::Int::Errors::GenericTrivial, 'The current working directory does not seem to be a Nanoc site.'
@@ -56,7 +56,7 @@ module Nanoc::CLI
56
56
  site.compiler.action_provider.preprocess(site)
57
57
  end
58
58
 
59
- puts 'done'
59
+ $stderr.puts 'done'
60
60
  end
61
61
 
62
62
  # @return [Boolean] true if debug output is enabled, false if not
@@ -21,11 +21,30 @@ module Nanoc::CLI::Commands
21
21
  self.class.env_for_site(site)
22
22
  end
23
23
 
24
+ def self.reps_for(site)
25
+ Nanoc::Int::ItemRepRepo.new.tap do |reps|
26
+ action_provider = Nanoc::Int::ActionProvider.named(:rule_dsl).for(site)
27
+ builder = Nanoc::Int::ItemRepBuilder.new(site, action_provider, reps)
28
+ builder.run
29
+ end
30
+ end
31
+
32
+ def self.view_context_for(site)
33
+ Nanoc::ViewContext.new(
34
+ reps: reps_for(site),
35
+ items: site.items,
36
+ dependency_tracker: Nanoc::Int::DependencyTracker::Null.new,
37
+ compiler: nil,
38
+ )
39
+ end
40
+
24
41
  def self.env_for_site(site)
42
+ view_context = view_context_for(site)
43
+
25
44
  {
26
- items: Nanoc::ItemCollectionWithRepsView.new(site.items, nil),
27
- layouts: Nanoc::LayoutCollectionView.new(site.layouts, nil),
28
- config: Nanoc::ConfigView.new(site.config, nil),
45
+ items: Nanoc::ItemCollectionWithRepsView.new(site.items, view_context),
46
+ layouts: Nanoc::LayoutCollectionView.new(site.layouts, view_context),
47
+ config: Nanoc::ConfigView.new(site.config, view_context),
29
48
  }
30
49
  end
31
50
  end
@@ -12,6 +12,8 @@ module ::Nanoc::Extra::Checking::Checks
12
12
  identifiers :external_links, :elinks
13
13
 
14
14
  def run
15
+ require 'parallel'
16
+
15
17
  # Find all broken external hrefs
16
18
  # TODO: de-duplicate this (duplicated in internal links check)
17
19
  filenames = output_filenames.select { |f| File.extname(f) == '.html' && !excluded_file?(f) }
@@ -40,45 +42,8 @@ module ::Nanoc::Extra::Checking::Checks
40
42
  end
41
43
  end
42
44
 
43
- class ArrayEnumerator
44
- def initialize(array)
45
- @array = array
46
- @index = 0
47
- @mutex = Mutex.new
48
- end
49
-
50
- def next
51
- @mutex.synchronize do
52
- @index += 1
53
- return @array[@index - 1]
54
- end
55
- end
56
- end
57
-
58
45
  def select_invalid(hrefs)
59
- enum = ArrayEnumerator.new(hrefs.sort)
60
- mutex = Mutex.new
61
- invalid = Set.new
62
-
63
- threads = []
64
- 10.times do
65
- threads << Thread.new do
66
- loop do
67
- href = enum.next
68
- break if href.nil?
69
-
70
- res = validate(href)
71
- next unless res
72
-
73
- mutex.synchronize do
74
- invalid << res
75
- end
76
- end
77
- end
78
- end
79
- threads.each(&:join)
80
-
81
- invalid
46
+ Parallel.map(hrefs, in_threads: 10) { |href| validate(href) }.compact
82
47
  end
83
48
 
84
49
  def validate(href)
@@ -5,7 +5,8 @@ module Nanoc::Extra::Checking
5
5
 
6
6
  def self.from_file(filename)
7
7
  dsl = new
8
- dsl.instance_eval(File.read(filename), filename)
8
+ absolute_filename = File.expand_path(filename)
9
+ dsl.instance_eval(File.read(filename), absolute_filename)
9
10
  dsl
10
11
  end
11
12
 
@@ -2,7 +2,7 @@
2
2
  module Nanoc::Extra::TimeExtensions
3
3
  # @return [String] The time in an ISO-8601 date format.
4
4
  def __nanoc_to_iso8601_date
5
- strftime('%Y-%m-%d')
5
+ getutc.strftime('%Y-%m-%d')
6
6
  end
7
7
 
8
8
  # @return [String] The time in an ISO-8601 time format.
@@ -244,7 +244,7 @@ module Nanoc::Helpers
244
244
  when DateTime
245
245
  arg.to_time
246
246
  when Date
247
- Time.local(arg.year, arg.month, arg.day)
247
+ Time.utc(arg.year, arg.month, arg.day)
248
248
  when String
249
249
  Time.parse(arg)
250
250
  else
@@ -40,6 +40,10 @@ module Nanoc::RuleDSL
40
40
  @rule_memory_calculator.snapshots_defs_for(rep)
41
41
  end
42
42
 
43
+ def paths_for(rep)
44
+ @rule_memory_calculator.paths_for_rep(rep)
45
+ end
46
+
43
47
  def preprocess(site)
44
48
  ctx = new_preprocessor_context(site)
45
49
 
@@ -278,9 +278,15 @@ module Nanoc::RuleDSL
278
278
  # Add leading/trailing slashes if necessary
279
279
  new_identifier = identifier.dup
280
280
  new_identifier[/^/] = '/' if identifier[0, 1] != '/'
281
- new_identifier[/$/] = '/' unless ['*', '/'].include?(identifier[-1, 1])
281
+ new_identifier[/$/] = '/?' unless ['*', '/'].include?(identifier[-1, 1])
282
282
 
283
- /^#{new_identifier.gsub('*', '(.*?)').gsub('+', '(.+?)')}$/
283
+ regex_string =
284
+ new_identifier
285
+ .gsub('.', '\.')
286
+ .gsub('*', '(.*?)')
287
+ .gsub('+', '(.+?)')
288
+
289
+ /^#{regex_string}$/
284
290
  else
285
291
  identifier
286
292
  end
@@ -38,9 +38,6 @@ module Nanoc::RuleDSL
38
38
  #
39
39
  # @return [Nanoc::Int::RuleMemory]
40
40
  def [](obj)
41
- # FIXME: Remove this
42
- obj = obj.unwrap if obj.respond_to?(:unwrap)
43
-
44
41
  case obj
45
42
  when Nanoc::Int::ItemRep
46
43
  new_rule_memory_for_rep(obj)
@@ -92,6 +89,17 @@ module Nanoc::RuleDSL
92
89
  executor.rule_memory
93
90
  end
94
91
 
92
+ # @param [Nanoc::Int::ItemRep] rep The item representation to get the rule
93
+ # memory for
94
+ #
95
+ # @return [Hash<Symbol, String>] Pairs of snapshot name and path
96
+ def paths_for_rep(rep)
97
+ snapshot_actions = new_rule_memory_for_rep(rep).snapshot_actions
98
+ snapshot_actions.each_with_object({}) do |action, paths|
99
+ paths[action.snapshot_name] = action.path
100
+ end
101
+ end
102
+
95
103
  # @param [Nanoc::Int::Layout] layout
96
104
  #
97
105
  # @return [Nanoc::Int::RuleMemory]
@@ -1,4 +1,4 @@
1
1
  module Nanoc
2
2
  # The current Nanoc version.
3
- VERSION = '4.3.5'.freeze
3
+ VERSION = '4.3.6'.freeze
4
4
  end
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
27
27
  s.add_runtime_dependency('cri', '~> 2.3')
28
28
  s.add_runtime_dependency('hamster', '~> 3.0')
29
29
  s.add_runtime_dependency('ref', '~> 2.0')
30
+ s.add_runtime_dependency('parallel', '~> 1.9')
30
31
 
31
32
  s.add_development_dependency('bundler', '>= 1.7.10', '< 2.0')
32
33
  end
@@ -3,7 +3,7 @@ class Nanoc::CLI::CleaningStreamTest < Nanoc::TestCase
3
3
  attr_accessor :called_methods
4
4
 
5
5
  def initialize
6
- @called_methods = Set.new
6
+ @called_methods = []
7
7
  end
8
8
 
9
9
  # rubocop:disable Style/MethodMissing
@@ -18,7 +18,7 @@ class Nanoc::CLI::CleaningStreamTest < Nanoc::TestCase
18
18
  end
19
19
 
20
20
  def test_forward
21
- methods = [:write, :<<, :tty?, :flush, :tell, :print, :puts, :string, :reopen, :exist?, :exists?, :close]
21
+ methods = [:write, :<<, :tty?, :tty?, :flush, :tell, :print, :puts, :string, :reopen, :exist?, :exists?, :close]
22
22
 
23
23
  s = Stream.new
24
24
  cs = Nanoc::CLI::CleaningStream.new(s)
@@ -26,6 +26,7 @@ class Nanoc::CLI::CleaningStreamTest < Nanoc::TestCase
26
26
  cs.write('aaa')
27
27
  cs << 'bb'
28
28
  cs.tty?
29
+ cs.isatty
29
30
  cs.flush
30
31
  cs.tell
31
32
  cs.print('cc')
@@ -41,6 +42,16 @@ class Nanoc::CLI::CleaningStreamTest < Nanoc::TestCase
41
42
  end
42
43
  end
43
44
 
45
+ def test_forward_tty_cached
46
+ s = Stream.new
47
+ cs = Nanoc::CLI::CleaningStream.new(s)
48
+
49
+ cs.tty?
50
+ cs.isatty
51
+
52
+ assert_equal [:tty?], s.called_methods
53
+ end
54
+
44
55
  def test_works_with_logger
45
56
  require 'logger'
46
57
  stream = StringIO.new
@@ -20,4 +20,12 @@ class Nanoc::Extra::Checking::DSLTest < Nanoc::TestCase
20
20
  assert_equal 'hello', $greeting
21
21
  end
22
22
  end
23
+
24
+ def test_has_absolute_path
25
+ with_site do |_site|
26
+ File.write('Checks', '$stuff = __FILE__')
27
+ Nanoc::Extra::Checking::DSL.from_file('Checks')
28
+ assert($stuff.start_with?('/'))
29
+ end
30
+ end
23
31
  end
@@ -1,8 +1,12 @@
1
1
  class Nanoc::ExtraCoreExtTimeTest < Nanoc::TestCase
2
- def test___nanoc_to_iso8601_date
2
+ def test___nanoc_to_iso8601_date_utc
3
3
  assert_equal('2008-05-19', Time.utc(2008, 5, 19, 14, 20, 0, 0).__nanoc_to_iso8601_date)
4
4
  end
5
5
 
6
+ def test___nanoc_to_iso8601_date_non_utc
7
+ assert_equal('2008-05-18', Time.new(2008, 5, 19, 0, 0, 0, '+02:00').__nanoc_to_iso8601_date)
8
+ end
9
+
6
10
  def test___nanoc_to_iso8601_time
7
11
  assert_equal('2008-05-19T14:20:00Z', Time.utc(2008, 5, 19, 14, 20, 0, 0).__nanoc_to_iso8601_time)
8
12
  end
@@ -30,7 +30,7 @@ class Nanoc::Helpers::XMLSitemapTest < Nanoc::TestCase
30
30
  @items << item
31
31
 
32
32
  # Create item 3
33
- attrs = { mtime: Time.parse('2004-07-12'), changefreq: 'daily', priority: 0.5 }
33
+ attrs = { mtime: Time.parse('2004-07-12 00:00:00 +02:00'), changefreq: 'daily', priority: 0.5 }
34
34
  item = Nanoc::ItemWithRepsView.new(Nanoc::Int::Item.new('some content 3', attrs, '/item-three/'), @view_context)
35
35
  @items << item
36
36
  create_item_rep(item.unwrap, :three_a, '/item-three/a/')
@@ -70,8 +70,8 @@ class Nanoc::Helpers::XMLSitemapTest < Nanoc::TestCase
70
70
  assert_equal '0.5', urls[3].css('> priority').inner_text
71
71
  assert_equal '', urls[0].css('> lastmod').inner_text
72
72
  assert_equal '', urls[1].css('> lastmod').inner_text
73
- assert_equal '2004-07-12', urls[2].css('> lastmod').inner_text
74
- assert_equal '2004-07-12', urls[3].css('> lastmod').inner_text
73
+ assert_equal '2004-07-11', urls[2].css('> lastmod').inner_text
74
+ assert_equal '2004-07-11', urls[3].css('> lastmod').inner_text
75
75
  end
76
76
  end
77
77
 
@@ -319,7 +319,7 @@ EOS
319
319
  compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
320
320
 
321
321
  actual = compiler_dsl.instance_eval { identifier_to_regex('foo') }
322
- expected = %r{^/foo/$}
322
+ expected = %r{^/foo/?$}
323
323
 
324
324
  assert_equal(expected.to_s, actual.to_s)
325
325
  assert_equal(expected.source, actual.source)
@@ -333,7 +333,7 @@ EOS
333
333
  compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
334
334
 
335
335
  actual = compiler_dsl.instance_eval { identifier_to_regex('foo/*/bar') }
336
- expected = %r{^/foo/(.*?)/bar/$}
336
+ expected = %r{^/foo/(.*?)/bar/?$}
337
337
 
338
338
  assert_equal(expected.to_s, actual.to_s)
339
339
  assert_equal(expected.source, actual.source)
@@ -347,7 +347,7 @@ EOS
347
347
  compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
348
348
 
349
349
  actual = compiler_dsl.instance_eval { identifier_to_regex('foo/*/bar/*/qux') }
350
- expected = %r{^/foo/(.*?)/bar/(.*?)/qux/$}
350
+ expected = %r{^/foo/(.*?)/bar/(.*?)/qux/?$}
351
351
 
352
352
  assert_equal(expected.to_s, actual.to_s)
353
353
  assert_equal(expected.source, actual.source)
@@ -403,7 +403,7 @@ EOS
403
403
  compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
404
404
 
405
405
  actual = compiler_dsl.instance_eval { identifier_to_regex('/foo/+') }
406
- expected = %r{^/foo/(.+?)/$}
406
+ expected = %r{^/foo/(.+?)/?$}
407
407
 
408
408
  assert_equal(expected.to_s, actual.to_s)
409
409
  assert_equal(expected.source, actual.source)
@@ -414,6 +414,20 @@ EOS
414
414
  refute('/foo/' =~ actual)
415
415
  end
416
416
 
417
+ def test_identifier_to_regex_with_full_identifier
418
+ # Create compiler DSL
419
+ compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
420
+
421
+ actual = compiler_dsl.instance_eval { identifier_to_regex('/favicon.ico') }
422
+ expected = %r{^/favicon\.ico/?$}
423
+
424
+ assert_equal(expected.to_s, actual.to_s)
425
+
426
+ assert('/favicon.ico' =~ actual)
427
+ assert('/favicon.ico/' =~ actual)
428
+ refute('/faviconxico' =~ actual)
429
+ end
430
+
417
431
  def test_dsl_has_no_access_to_compiler
418
432
  compiler_dsl = Nanoc::RuleDSL::CompilerDSL.new(nil, {})
419
433
  assert_raises(NameError) do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nanoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.5
4
+ version: 4.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Denis Defreyne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-14 00:00:00.000000000 Z
11
+ date: 2016-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cri
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: parallel
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.9'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.9'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: bundler
57
71
  requirement: !ruby/object:Gem::Requirement