nanoc 4.2.1 → 4.2.2

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: bcf1b9df213270119c9391459276baf1156c8c2b
4
- data.tar.gz: 57939ccb41f7b9800f3e60309d425a7e3232e3e8
3
+ metadata.gz: ebe690aeb8d31bf2425569f41d9df2e5b8dcbe81
4
+ data.tar.gz: 8b41f5683d233d963a3fd6a9c5384052d7265d8e
5
5
  SHA512:
6
- metadata.gz: 103f4ea43eb903dfdaab16054ea0dfaab142d061bc905a48493dfbdcbeccf04c4846239ed9ea5cb85c92c0c3b69c83f3f97481d4e559a791f00c9a99ce4ff5ef
7
- data.tar.gz: 9e93d95dd041a8492c3c29a472dc26b8422442a80646f8389ba8603fc0c11276b2b03e8aebeb6b181a949835b8a6cdff8b3c5bf3b1ee69afa71e28bb15ea721b
6
+ metadata.gz: 4527c9d34fbe098dc58cac90906a1f1e643b595736006c92d18a222c0558c2965226f06db271cb01ca1ce8f939b05ea13013f1b0650293b53a659fcf8bd10fbd
7
+ data.tar.gz: 59dbc24916845b1c98adfac716162fdc1c9b0984564d307741377da08c34c9ef3057574192ce9cd620eb89ed34d45bb45820dcde999f6f07bf23a77dedefbce3
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nanoc (4.2.1)
4
+ nanoc (4.2.2)
5
5
  cri (~> 2.3)
6
+ hamster (~> 3.0)
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
@@ -15,7 +16,7 @@ GEM
15
16
  ast (2.3.0)
16
17
  bluecloth (2.2.0)
17
18
  builder (3.2.2)
18
- chunky_png (1.3.5)
19
+ chunky_png (1.3.6)
19
20
  coderay (1.1.1)
20
21
  coffee-script (2.4.1)
21
22
  coffee-script-source
@@ -35,6 +36,7 @@ GEM
35
36
  sass (>= 3.3.0, < 3.5)
36
37
  compass-import-once (1.0.5)
37
38
  sass (>= 3.2, < 3.5)
39
+ concurrent-ruby (1.0.2)
38
40
  contracts (0.14.0)
39
41
  coveralls (0.8.13)
40
42
  json (~> 1.8)
@@ -49,7 +51,7 @@ GEM
49
51
  diff-lcs (1.2.5)
50
52
  docile (1.1.5)
51
53
  erubis (2.7.0)
52
- excon (0.49.0)
54
+ excon (0.50.1)
53
55
  execjs (2.7.0)
54
56
  ffi (1.9.10)
55
57
  fission (0.5.0)
@@ -91,8 +93,8 @@ GEM
91
93
  fog-atmos (0.1.0)
92
94
  fog-core
93
95
  fog-xml
94
- fog-aws (0.9.2)
95
- fog-core (~> 1.27)
96
+ fog-aws (0.9.4)
97
+ fog-core (~> 1.38)
96
98
  fog-json (~> 1.0)
97
99
  fog-xml (~> 0.1)
98
100
  ipaddress (~> 0.8)
@@ -105,7 +107,7 @@ GEM
105
107
  fog-json (~> 1.0)
106
108
  fog-xml (~> 0.1)
107
109
  ipaddress (~> 0.8)
108
- fog-core (1.40.0)
110
+ fog-core (1.41.0)
109
111
  builder
110
112
  excon (~> 0.49)
111
113
  formatador (~> 0.2)
@@ -125,8 +127,8 @@ GEM
125
127
  multi_json (~> 1.10)
126
128
  fog-local (0.3.0)
127
129
  fog-core (~> 1.27)
128
- fog-openstack (0.1.6)
129
- fog-core (>= 1.39)
130
+ fog-openstack (0.1.7)
131
+ fog-core (>= 1.40)
130
132
  fog-json (>= 1.0)
131
133
  ipaddress (>= 0.8)
132
134
  fog-powerdns (0.1.1)
@@ -198,6 +200,8 @@ GEM
198
200
  rake
199
201
  haml (4.0.7)
200
202
  tilt
203
+ hamster (3.0.0)
204
+ concurrent-ruby (~> 1.0)
201
205
  handlebars (0.8.0)
202
206
  handlebars-source (~> 4.0.5)
203
207
  therubyracer (~> 0.12.1)
@@ -249,7 +253,7 @@ GEM
249
253
  pygments.rb (0.6.3)
250
254
  posix-spawn (~> 0.3.6)
251
255
  yajl-ruby (~> 1.2.0)
252
- rack (1.6.4)
256
+ rack (2.0.1)
253
257
  rainbow (2.1.0)
254
258
  rainpress (1.0)
255
259
  rake (11.2.2)
@@ -265,22 +269,22 @@ GEM
265
269
  json (~> 1.4)
266
270
  redcarpet (3.3.4)
267
271
  ref (2.0.0)
268
- rouge (2.0.1)
269
- rspec (3.4.0)
270
- rspec-core (~> 3.4.0)
271
- rspec-expectations (~> 3.4.0)
272
- rspec-mocks (~> 3.4.0)
273
- rspec-core (3.4.4)
274
- rspec-support (~> 3.4.0)
275
- rspec-expectations (3.4.0)
272
+ rouge (2.0.2)
273
+ rspec (3.5.0)
274
+ rspec-core (~> 3.5.0)
275
+ rspec-expectations (~> 3.5.0)
276
+ rspec-mocks (~> 3.5.0)
277
+ rspec-core (3.5.0)
278
+ rspec-support (~> 3.5.0)
279
+ rspec-expectations (3.5.0)
276
280
  diff-lcs (>= 1.2.0, < 2.0)
277
- rspec-support (~> 3.4.0)
278
- rspec-mocks (3.4.1)
281
+ rspec-support (~> 3.5.0)
282
+ rspec-mocks (3.5.0)
279
283
  diff-lcs (>= 1.2.0, < 2.0)
280
- rspec-support (~> 3.4.0)
281
- rspec-support (3.4.1)
282
- rubocop (0.40.0)
283
- parser (>= 2.3.1.0, < 3.0)
284
+ rspec-support (~> 3.5.0)
285
+ rspec-support (3.5.0)
286
+ rubocop (0.41.1)
287
+ parser (>= 2.3.1.1, < 3.0)
284
288
  powerpack (~> 0.1)
285
289
  rainbow (>= 1.99.1, < 3.0)
286
290
  ruby-progressbar (~> 1.7)
@@ -314,7 +318,7 @@ GEM
314
318
  rubypants
315
319
  uglifier (3.0.0)
316
320
  execjs (>= 0.3.0, < 3)
317
- unicode-display_width (1.0.5)
321
+ unicode-display_width (1.1.0)
318
322
  vcr (3.0.3)
319
323
  w3c_validators (1.2)
320
324
  json
data/NEWS.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Nanoc news
2
2
 
3
+ ## 4.2.2 (2016-07-02)
4
+
5
+ Fixes:
6
+
7
+ * Fixed confusing “invalid prefix” error message (#873, #879)
8
+ * Ensured filter arguments are frozen, to prevent outdatedness checker errors (#881, #886)
9
+ * Fixed issue with dependencies of items generated in the preprocessor not being tracked (#885, #891, #893)
10
+
11
+ Enhancements:
12
+
13
+ * Added specific handling for `Sass::Importers::Filesystem` in the checksummer, which should reduce unnecessary recompiles in sites using Compass (#866, #884)
14
+ * Improved speed of checksummer (#864, #887)
15
+
3
16
  ## 4.2.1 (2016-06-19)
4
17
 
5
18
  Fixes:
@@ -1,3 +1,5 @@
1
+ require 'hamster'
2
+
1
3
  module Nanoc::Int
2
4
  # Creates checksums for given objects.
3
5
  #
@@ -46,14 +48,14 @@ module Nanoc::Int
46
48
 
47
49
  private
48
50
 
49
- def update(obj, digest, visited = Set.new)
51
+ def update(obj, digest, visited = Hamster::Set.new)
50
52
  digest.update(obj.class.to_s)
51
53
 
52
54
  if visited.include?(obj)
53
55
  digest.update('<recur>')
54
56
  else
55
57
  digest.update('<')
56
- behavior_for(obj).update(obj, digest) { |o| update(o, digest, visited + [obj]) }
58
+ behavior_for(obj).update(obj, digest) { |o| update(o, digest, visited.add(obj)) }
57
59
  digest.update('>')
58
60
  end
59
61
  end
@@ -194,6 +196,12 @@ module Nanoc::Int
194
196
 
195
197
  class RescueUpdateBehavior < UpdateBehavior
196
198
  def self.update(obj, digest)
199
+ if obj.class.to_s == 'Sass::Importers::Filesystem'
200
+ digest.update('root=')
201
+ digest.update(obj.root)
202
+ return
203
+ end
204
+
197
205
  data = begin
198
206
  Marshal.dump(obj)
199
207
  rescue
@@ -98,6 +98,10 @@ module Nanoc::Int
98
98
  end
99
99
 
100
100
  def load_stores
101
+ # FIXME: icky hack to update the dependency store’s list of objects
102
+ # (does not include preprocessed objects otherwise)
103
+ dependency_store.objects = site.items.to_a + site.layouts.to_a
104
+
101
105
  stores.each(&:load)
102
106
  end
103
107
 
@@ -22,9 +22,9 @@ module Nanoc::Int
22
22
  # that lacks some options, the default value will be taken from
23
23
  # `DEFAULT_CONFIG`.
24
24
  DEFAULT_CONFIG = {
25
- text_extensions: %w( adoc asciidoc atom css erb haml htm html js less markdown md php rb sass scss txt xhtml xml coffee hb handlebars mustache ms slim rdoc ).sort,
26
- lib_dirs: %w( lib ),
27
- commands_dirs: %w( commands ),
25
+ text_extensions: %w(adoc asciidoc atom css erb haml htm html js less markdown md php rb sass scss txt xhtml xml coffee hb handlebars mustache ms slim rdoc).sort,
26
+ lib_dirs: %w(lib),
27
+ commands_dirs: %w(commands),
28
28
  output_dir: 'output',
29
29
  data_sources: [{}],
30
30
  index_filenames: ['index.html'],
@@ -69,7 +69,11 @@ module Nanoc
69
69
  def ==(other)
70
70
  other.respond_to?(:identifier) && identifier == other.identifier
71
71
  end
72
- alias eql? ==
72
+
73
+ contract C::Any => C::Bool
74
+ def eql?(other)
75
+ other.is_a?(self.class) && identifier == other.identifier
76
+ end
73
77
  end
74
78
  end
75
79
  end
@@ -76,7 +76,11 @@ module Nanoc
76
76
  false
77
77
  end
78
78
  end
79
- alias eql? ==
79
+
80
+ contract C::Any => C::Bool
81
+ def eql?(other)
82
+ other.is_a?(self.class) && to_s == other.to_s
83
+ end
80
84
 
81
85
  contract C::None => C::Num
82
86
  def hash
@@ -123,7 +127,7 @@ module Nanoc
123
127
  # @return [Nanoc::Identifier]
124
128
  def prefix(string)
125
129
  if string !~ /\A\//
126
- raise InvalidPrefixError.new(@string)
130
+ raise InvalidPrefixError.new(string)
127
131
  end
128
132
  Nanoc::Identifier.new(string.sub(/\/+\z/, '') + @string, type: @type)
129
133
  end
@@ -26,7 +26,7 @@ module Nanoc::Int
26
26
 
27
27
  # @return [String]
28
28
  def self.config_filename_for_cwd
29
- filenames = %w( nanoc.yaml config.yaml )
29
+ filenames = %w(nanoc.yaml config.yaml)
30
30
  candidate = filenames.find { |f| File.file?(f) }
31
31
  candidate && File.expand_path(candidate)
32
32
  end
@@ -2,7 +2,7 @@ module Nanoc::Int
2
2
  # @api private
3
3
  class DependencyStore < ::Nanoc::Int::Store
4
4
  # @return [Array<Nanoc::Int::Item, Nanoc::Int::Layout>]
5
- attr_reader :objects
5
+ attr_accessor :objects
6
6
 
7
7
  # @param [Array<Nanoc::Int::Item, Nanoc::Int::Layout>] objects
8
8
  def initialize(objects)
@@ -21,6 +21,7 @@ module Nanoc
21
21
  # Run filter
22
22
  last = rep.snapshot_contents[:last]
23
23
  source = rep.binary? ? last.filename : last.string
24
+ filter_args.freeze
24
25
  result = filter.setup_and_run(source, filter_args)
25
26
  rep.snapshot_contents[:last] =
26
27
  if filter.class.to_binary?
@@ -48,6 +49,7 @@ module Nanoc
48
49
  raise Nanoc::Int::Errors::Generic, "Cannot find rule for layout matching #{layout_identifier}"
49
50
  end
50
51
  filter_args = filter_args.merge(extra_filter_args || {})
52
+ filter_args.freeze
51
53
 
52
54
  # Check whether item can be laid out
53
55
  raise Nanoc::Int::Errors::CannotLayoutBinaryItem.new(rep) if rep.binary?
@@ -15,7 +15,13 @@ module Nanoc
15
15
  def ==(other)
16
16
  other.respond_to?(:item) && other.respond_to?(:name) && item == other.item && name == other.name
17
17
  end
18
- alias eql? ==
18
+
19
+ # @see Object#eql?
20
+ def eql?(other)
21
+ other.is_a?(self.class) &&
22
+ item.eql?(other.item) &&
23
+ name.eql?(other.name)
24
+ end
19
25
 
20
26
  # @see Object#hash
21
27
  def hash
@@ -18,7 +18,11 @@ module Nanoc
18
18
  def ==(other)
19
19
  other.respond_to?(:identifier) && identifier == other.identifier
20
20
  end
21
- alias eql? ==
21
+
22
+ # @see Object#eql?
23
+ def eql?(other)
24
+ other.is_a?(self.class) && identifier.eql?(other.identifier)
25
+ end
22
26
 
23
27
  # @see Object#hash
24
28
  def hash
@@ -203,7 +203,7 @@ module Nanoc::CLI
203
203
  def self.enable_utf8?(io)
204
204
  return true unless io.tty?
205
205
 
206
- %w( LC_ALL LC_CTYPE LANG ).any? { |e| ENV[e] =~ /UTF/i }
206
+ %w(LC_ALL LC_CTYPE LANG).any? { |e| ENV[e] =~ /UTF/i }
207
207
  end
208
208
 
209
209
  # @return [Boolean] true if color support is present, false if not
@@ -42,7 +42,7 @@ module Nanoc::CLI
42
42
  # @return [void]
43
43
  def handle_while(&_block)
44
44
  # Set exit handler
45
- %w( INT TERM ).each do |signal|
45
+ %w(INT TERM).each do |signal|
46
46
  Signal.trap(signal) do
47
47
  puts
48
48
  exit!(0)
@@ -233,11 +233,9 @@ module Nanoc::CLI
233
233
  end
234
234
  when RuntimeError
235
235
  if error.message =~ /^can't modify frozen/
236
- 'You attempted to modify immutable data. Some data, such as ' \
237
- 'item/layout attributes and raw item/layout content, can not ' \
238
- 'be modified once compilation has started. (This was ' \
239
- 'unintentionally possible in 3.1.x and before, but has been ' \
240
- 'disabled in 3.2.x in order to allow compiler optimisations.)'
236
+ 'You attempted to modify immutable data. Some data cannot ' \
237
+ 'be modified once compilation has started. Such data includes ' \
238
+ 'content and attributes of items and layouts, and filter arguments.'
241
239
  end
242
240
  end
243
241
  end
@@ -13,7 +13,7 @@ module Nanoc::Filters
13
13
  stdout = StringIO.new
14
14
  stderr = $stderr
15
15
  piper = Nanoc::Extra::Piper.new(stdout: stdout, stderr: stderr)
16
- piper.run(%w( asciidoc -o - - ), content)
16
+ piper.run(%w(asciidoc -o - -), content)
17
17
  stdout.string
18
18
  end
19
19
  end
@@ -1,4 +1,4 @@
1
1
  module Nanoc
2
2
  # The current Nanoc version.
3
- VERSION = '4.2.1'.freeze
3
+ VERSION = '4.2.2'.freeze
4
4
  end
@@ -25,6 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.required_ruby_version = '>= 2.1.0'
26
26
 
27
27
  s.add_runtime_dependency('cri', '~> 2.3')
28
+ s.add_runtime_dependency('hamster', '~> 3.0')
28
29
 
29
30
  s.add_development_dependency('bundler', '>= 1.7.10', '< 2.0')
30
31
  end
@@ -156,7 +156,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
156
156
 
157
157
  def test_disallow_routes_not_starting_with_slash
158
158
  # Create site
159
- Nanoc::CLI.run %w( create_site bar)
159
+ Nanoc::CLI.run %w(create_site bar)
160
160
 
161
161
  FileUtils.cd('bar') do
162
162
  # Create routes
@@ -183,7 +183,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
183
183
 
184
184
  def test_disallow_duplicate_routes
185
185
  # Create site
186
- Nanoc::CLI.run %w( create_site bar)
186
+ Nanoc::CLI.run %w(create_site bar)
187
187
 
188
188
  FileUtils.cd('bar') do
189
189
  # Create routes
@@ -209,10 +209,10 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
209
209
  end
210
210
 
211
211
  def test_compile_should_recompile_all_reps
212
- Nanoc::CLI.run %w( create_site bar )
212
+ Nanoc::CLI.run %w(create_site bar)
213
213
 
214
214
  FileUtils.cd('bar') do
215
- Nanoc::CLI.run %w( compile )
215
+ Nanoc::CLI.run %w(compile)
216
216
 
217
217
  site = Nanoc::Int::SiteLoader.new.new_from_cwd
218
218
  site.compile
@@ -225,7 +225,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
225
225
 
226
226
  def test_disallow_multiple_snapshots_with_the_same_name
227
227
  # Create site
228
- Nanoc::CLI.run %w( create_site bar )
228
+ Nanoc::CLI.run %w(create_site bar)
229
229
 
230
230
  FileUtils.cd('bar') do
231
231
  # Create routes
@@ -447,8 +447,8 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
447
447
  site = Nanoc::Int::SiteLoader.new.new_from_cwd
448
448
  site.compile
449
449
 
450
- assert_equal Set.new(%w( content/blah.dat )), Set.new(Dir['content/*'])
451
- assert_equal Set.new(%w( output/blah.dat )), Set.new(Dir['output/*'])
450
+ assert_equal Set.new(%w(content/blah.dat)), Set.new(Dir['content/*'])
451
+ assert_equal Set.new(%w(output/blah.dat)), Set.new(Dir['output/*'])
452
452
  end
453
453
  end
454
454
 
@@ -469,7 +469,7 @@ class Nanoc::Int::CompilerTest < Nanoc::TestCase
469
469
  end
470
470
 
471
471
  def test_find_layouts_by_glob
472
- Nanoc::CLI.run %w( create_site bar )
472
+ Nanoc::CLI.run %w(create_site bar)
473
473
  FileUtils.cd('bar') do
474
474
  File.open('Rules', 'w') do |io|
475
475
  io.write "compile '/**/*' do\n"
@@ -96,7 +96,7 @@ EOF
96
96
  end
97
97
 
98
98
  def test_identifier_classes
99
- Nanoc::CLI.run %w( create_site bar)
99
+ Nanoc::CLI.run %w(create_site bar)
100
100
  FileUtils.cd('bar') do
101
101
  FileUtils.mkdir_p('content')
102
102
  FileUtils.mkdir_p('layouts')
@@ -4,12 +4,12 @@ class Nanoc::CLI::Commands::CheckTest < Nanoc::TestCase
4
4
  FileUtils.mkdir_p('output')
5
5
 
6
6
  # Should not raise now
7
- Nanoc::CLI.run %w( check stale )
7
+ Nanoc::CLI.run %w(check stale)
8
8
 
9
9
  # Should raise now
10
10
  File.open('output/blah.html', 'w') { |io| io.write 'moo' }
11
11
  assert_raises Nanoc::Int::Errors::GenericTrivial do
12
- Nanoc::CLI.run %w( check stale )
12
+ Nanoc::CLI.run %w(check stale)
13
13
  end
14
14
  end
15
15
  end
@@ -21,7 +21,7 @@ class Nanoc::CLI::Commands::CompileTest < Nanoc::TestCase
21
21
  io.write "layout '*', :erb\n"
22
22
  end
23
23
 
24
- Nanoc::CLI.run %w( compile --verbose )
24
+ Nanoc::CLI.run %w(compile --verbose)
25
25
  end
26
26
  end
27
27
 
@@ -58,7 +58,7 @@ class Nanoc::CLI::Commands::CompileTest < Nanoc::TestCase
58
58
  end
59
59
 
60
60
  assert File.file?('output/stray.html')
61
- Nanoc::CLI.run %w( compile )
61
+ Nanoc::CLI.run %w(compile)
62
62
  assert File.file?('output/stray.html')
63
63
 
64
64
  File.open('nanoc.yaml', 'w') do |io|
@@ -68,7 +68,7 @@ class Nanoc::CLI::Commands::CompileTest < Nanoc::TestCase
68
68
  end
69
69
 
70
70
  assert File.file?('output/stray.html')
71
- Nanoc::CLI.run %w( compile )
71
+ Nanoc::CLI.run %w(compile)
72
72
  refute File.file?('output/stray.html')
73
73
  end
74
74
  end
@@ -108,7 +108,7 @@ class Nanoc::CLI::Commands::CompileTest < Nanoc::TestCase
108
108
  end
109
109
 
110
110
  assert File.file?('output/stray.html')
111
- Nanoc::CLI.run %w( compile )
111
+ Nanoc::CLI.run %w(compile)
112
112
  assert File.file?('output/stray.html')
113
113
 
114
114
  File.open('nanoc.yaml', 'w') do |io|
@@ -119,7 +119,7 @@ class Nanoc::CLI::Commands::CompileTest < Nanoc::TestCase
119
119
  end
120
120
 
121
121
  assert File.file?('output/stray.html')
122
- Nanoc::CLI.run %w( compile )
122
+ Nanoc::CLI.run %w(compile)
123
123
  refute File.file?('output/stray.html')
124
124
  assert File.directory?('output/excluded_dir'), 'excluded_dir should still be there'
125
125
  end
@@ -205,7 +205,7 @@ class Nanoc::CLI::Commands::CompileTest < Nanoc::TestCase
205
205
  def new_file_action_printer(reps)
206
206
  # Ensure CLI is loaded
207
207
  begin
208
- Nanoc::CLI.run(%w( help %))
208
+ Nanoc::CLI.run(%w(help %))
209
209
  rescue SystemExit
210
210
  end
211
211
 
@@ -1,13 +1,13 @@
1
1
  class Nanoc::CLI::Commands::CreateSiteTest < Nanoc::TestCase
2
2
  def test_create_site_with_existing_name
3
- Nanoc::CLI.run %w( create_site foo )
3
+ Nanoc::CLI.run %w(create_site foo)
4
4
  assert_raises(::Nanoc::Int::Errors::GenericTrivial) do
5
- Nanoc::CLI.run %w( create_site foo )
5
+ Nanoc::CLI.run %w(create_site foo)
6
6
  end
7
7
  end
8
8
 
9
9
  def test_can_compile_new_site
10
- Nanoc::CLI.run %w( create_site foo )
10
+ Nanoc::CLI.run %w(create_site foo)
11
11
 
12
12
  FileUtils.cd('foo') do
13
13
  site = Nanoc::Int::SiteLoader.new.new_from_cwd
@@ -19,14 +19,14 @@ class Nanoc::CLI::Commands::CreateSiteTest < Nanoc::TestCase
19
19
  FileUtils.mkdir('foo')
20
20
 
21
21
  FileUtils.cd('foo') do
22
- Nanoc::CLI.run %w( create_site ./ )
22
+ Nanoc::CLI.run %w(create_site ./)
23
23
  site = Nanoc::Int::SiteLoader.new.new_from_cwd
24
24
  site.compile
25
25
  end
26
26
  end
27
27
 
28
28
  def test_can_compile_new_site_with_binary_items
29
- Nanoc::CLI.run %w( create_site foo )
29
+ Nanoc::CLI.run %w(create_site foo)
30
30
 
31
31
  FileUtils.cd('foo') do
32
32
  File.open('content/blah', 'w') { |io| io << 'asdf' }
@@ -40,7 +40,7 @@ class Nanoc::CLI::Commands::CreateSiteTest < Nanoc::TestCase
40
40
  def test_can_compile_site_in_nonempty_directory
41
41
  FileUtils.mkdir('foo')
42
42
  FileUtils.touch(File.join('foo', 'SomeFile.txt'))
43
- Nanoc::CLI.run %w( create_site foo --force )
43
+ Nanoc::CLI.run %w(create_site foo --force)
44
44
 
45
45
  FileUtils.cd('foo') do
46
46
  site = Nanoc::Int::SiteLoader.new.new_from_cwd
@@ -51,7 +51,7 @@ class Nanoc::CLI::Commands::CreateSiteTest < Nanoc::TestCase
51
51
  def test_compiled_site_output
52
52
  FileUtils.mkdir('foo')
53
53
  FileUtils.touch(File.join('foo', 'SomeFile.txt'))
54
- Nanoc::CLI.run %w( create_site foo --force )
54
+ Nanoc::CLI.run %w(create_site foo --force)
55
55
 
56
56
  FileUtils.cd('foo') do
57
57
  site = Nanoc::Int::SiteLoader.new.new_from_cwd
@@ -70,7 +70,7 @@ class Nanoc::CLI::Commands::CreateSiteTest < Nanoc::TestCase
70
70
  original_encoding = Encoding.default_external
71
71
  Encoding.default_external = 'ISO-8859-1' # ew!
72
72
 
73
- Nanoc::CLI.run %w( create_site foo )
73
+ Nanoc::CLI.run %w(create_site foo)
74
74
 
75
75
  FileUtils.cd('foo') do
76
76
  # Try with encoding = default encoding = utf-8
@@ -97,9 +97,9 @@ class Nanoc::CLI::Commands::CreateSiteTest < Nanoc::TestCase
97
97
  end
98
98
 
99
99
  def test_new_site_has_correct_stylesheets
100
- Nanoc::CLI.run %w( create_site foo )
100
+ Nanoc::CLI.run %w(create_site foo)
101
101
  FileUtils.cd('foo') do
102
- Nanoc::CLI.run %w( compile )
102
+ Nanoc::CLI.run %w(compile)
103
103
 
104
104
  assert File.file?('content/stylesheet.css')
105
105
  assert_match(/\/stylesheet.css/, File.read('output/index.html'))
@@ -109,12 +109,12 @@ class Nanoc::CLI::Commands::CreateSiteTest < Nanoc::TestCase
109
109
  def test_new_site_prunes_by_default
110
110
  FileUtils.mkdir('foo')
111
111
  FileUtils.touch(File.join('foo', 'SomeFile.txt'))
112
- Nanoc::CLI.run %w( create_site foo --force )
112
+ Nanoc::CLI.run %w(create_site foo --force)
113
113
 
114
114
  FileUtils.cd('foo') do
115
115
  File.write('output/blah.txt', 'stuff')
116
116
 
117
- Nanoc::CLI.run %w( compile )
117
+ Nanoc::CLI.run %w(compile)
118
118
 
119
119
  refute File.file?('output/blah.txt')
120
120
  end
@@ -1,6 +1,6 @@
1
1
  class Nanoc::CLI::Commands::HelpTest < Nanoc::TestCase
2
2
  def test_run
3
- Nanoc::CLI.run %w( help )
4
- Nanoc::CLI.run %w( help co )
3
+ Nanoc::CLI.run %w(help)
4
+ Nanoc::CLI.run %w(help co)
5
5
  end
6
6
  end
@@ -1,5 +1,5 @@
1
1
  class Nanoc::CLI::Commands::InfoTest < Nanoc::TestCase
2
2
  def test_run
3
- Nanoc::CLI.run %w( info )
3
+ Nanoc::CLI.run %w(info)
4
4
  end
5
5
  end
@@ -13,7 +13,7 @@ class Nanoc::CLI::Commands::PruneTest < Nanoc::TestCase
13
13
  File.open('output2/index.html', 'w') { |io| io.write 'this is a index.' }
14
14
 
15
15
  assert_raises SystemExit do
16
- Nanoc::CLI.run %w( prune )
16
+ Nanoc::CLI.run %w(prune)
17
17
  end
18
18
 
19
19
  assert File.file?('output2/index.html')
@@ -41,7 +41,7 @@ class Nanoc::CLI::Commands::PruneTest < Nanoc::TestCase
41
41
  File.open('output2/foo.html', 'w') { |io| io.write 'this is a foo.' }
42
42
  File.open('output2/index.html', 'w') { |io| io.write 'this is a index.' }
43
43
 
44
- Nanoc::CLI.run %w( prune --yes )
44
+ Nanoc::CLI.run %w(prune --yes)
45
45
 
46
46
  assert File.file?('output2/index.html')
47
47
  assert !File.file?('output2/foo.html')
@@ -61,7 +61,7 @@ class Nanoc::CLI::Commands::PruneTest < Nanoc::TestCase
61
61
  File.open('output2/foo.html', 'w') { |io| io.write 'this is a foo.' }
62
62
  File.open('output2/index.html', 'w') { |io| io.write 'this is a index.' }
63
63
 
64
- Nanoc::CLI.run %w( prune --dry-run )
64
+ Nanoc::CLI.run %w(prune --dry-run)
65
65
 
66
66
  assert File.file?('output2/index.html')
67
67
  assert File.file?('output2/foo.html')
@@ -94,7 +94,7 @@ class Nanoc::CLI::Commands::PruneTest < Nanoc::TestCase
94
94
  File.open('output/bad-dir/blah', 'w') { |io| io.write 'stuff' }
95
95
  File.open('output/index.html', 'w') { |io| io.write 'stuff' }
96
96
 
97
- Nanoc::CLI.run %w( prune --yes )
97
+ Nanoc::CLI.run %w(prune --yes)
98
98
 
99
99
  assert File.file?('output/index.html')
100
100
  assert File.file?('output/good-dir/blah')
@@ -124,7 +124,7 @@ class Nanoc::CLI::Commands::PruneTest < Nanoc::TestCase
124
124
  File.open('output-real/some-file.html', 'w') { |io| io.write 'stuff' }
125
125
  File.open('output-real/index.html', 'w') { |io| io.write 'stuff' }
126
126
 
127
- Nanoc::CLI.run %w( prune --yes )
127
+ Nanoc::CLI.run %w(prune --yes)
128
128
 
129
129
  assert File.file?('output-real/index.html')
130
130
  assert !File.directory?('output-real/some-dir')
@@ -142,7 +142,7 @@ class Nanoc::CLI::Commands::PruneTest < Nanoc::TestCase
142
142
  FileUtils.mkdir_p('output/a/b/c')
143
143
  File.open('output/a/b/c/index.html', 'w') { |io| io.write 'stuff' }
144
144
 
145
- Nanoc::CLI.run %w( prune --yes )
145
+ Nanoc::CLI.run %w(prune --yes)
146
146
 
147
147
  assert !File.file?('output/a/b/c/index.html')
148
148
  assert !File.directory?('output/a/b/c')
@@ -20,7 +20,7 @@ end
20
20
  EOS
21
21
 
22
22
  def test_load_custom_commands
23
- Nanoc::CLI.run %w( create_site foo )
23
+ Nanoc::CLI.run %w(create_site foo)
24
24
 
25
25
  FileUtils.cd('foo') do
26
26
  # Create command
@@ -29,7 +29,7 @@ EOS
29
29
 
30
30
  # Run command
31
31
  begin
32
- Nanoc::CLI.run %w( _test )
32
+ Nanoc::CLI.run %w(_test)
33
33
  rescue SystemExit
34
34
  assert false, 'Running _test should not cause system exit'
35
35
  end
@@ -41,7 +41,7 @@ EOS
41
41
  end
42
42
 
43
43
  def test_load_custom_commands_nested
44
- Nanoc::CLI.run %w( create_site foo )
44
+ Nanoc::CLI.run %w(create_site foo)
45
45
  FileUtils.cd('foo') do
46
46
  # Create command
47
47
  FileUtils.mkdir_p('commands')
@@ -57,7 +57,7 @@ EOS
57
57
 
58
58
  # Run command
59
59
  begin
60
- Nanoc::CLI.run %w( _test _sub )
60
+ Nanoc::CLI.run %w(_test _sub)
61
61
  rescue SystemExit
62
62
  assert false, 'Running _test sub should not cause system exit'
63
63
  end
@@ -69,7 +69,7 @@ EOS
69
69
  end
70
70
 
71
71
  def test_load_custom_commands_non_default_commands_dirs
72
- Nanoc::CLI.run %w( create_site foo )
72
+ Nanoc::CLI.run %w(create_site foo)
73
73
  FileUtils.cd('foo') do
74
74
  File.open('nanoc.yaml', 'w') { |io| io.write('commands_dirs: [commands, commands_alt]') }
75
75
 
@@ -87,7 +87,7 @@ EOS
87
87
 
88
88
  # Run command
89
89
  begin
90
- Nanoc::CLI.run %w( _test _sub )
90
+ Nanoc::CLI.run %w(_test _sub)
91
91
  rescue SystemExit
92
92
  assert false, 'Running _test sub should not cause system exit'
93
93
  end
@@ -99,7 +99,7 @@ EOS
99
99
  end
100
100
 
101
101
  def test_load_custom_commands_broken
102
- Nanoc::CLI.run %w( create_site foo )
102
+ Nanoc::CLI.run %w(create_site foo)
103
103
 
104
104
  FileUtils.cd('foo') do
105
105
  # Create command
@@ -110,11 +110,11 @@ EOS
110
110
  position_before = $stderr.tell
111
111
  Nanoc::CLI::ErrorHandler.disable
112
112
  assert_raises RuntimeError do
113
- Nanoc::CLI.run %w( _test )
113
+ Nanoc::CLI.run %w(_test)
114
114
  end
115
115
  Nanoc::CLI::ErrorHandler.enable
116
116
  assert_raises SystemExit do
117
- Nanoc::CLI.run %w( _test )
117
+ Nanoc::CLI.run %w(_test)
118
118
  end
119
119
  position_after = $stderr.tell
120
120
 
@@ -563,12 +563,12 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
563
563
 
564
564
  # Write sample files
565
565
  FileUtils.mkdir_p('foo')
566
- %w( foo.html foo.yaml bar.entry.html foo/qux.yaml ).each do |filename|
566
+ %w(foo.html foo.yaml bar.entry.html foo/qux.yaml).each do |filename|
567
567
  File.open(filename, 'w') { |io| io.write('test') }
568
568
  end
569
569
 
570
570
  # Write stray files
571
- %w( foo.html~ foo.yaml.orig bar.entry.html.bak ).each do |filename|
571
+ %w(foo.html~ foo.yaml.orig bar.entry.html.bak).each do |filename|
572
572
  File.open(filename, 'w') { |io| io.write('test') }
573
573
  end
574
574
 
@@ -590,12 +590,12 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
590
590
 
591
591
  # Write sample files
592
592
  FileUtils.mkdir_p('foo')
593
- %w( foo.html foo.yaml bar.html.erb foo/qux.yaml ).each do |filename|
593
+ %w(foo.html foo.yaml bar.html.erb foo/qux.yaml).each do |filename|
594
594
  File.open(filename, 'w') { |io| io.write('test') }
595
595
  end
596
596
 
597
597
  # Write stray files
598
- %w( foo.html~ foo.yaml.orig bar.entry.html.bak ).each do |filename|
598
+ %w(foo.html~ foo.yaml.orig bar.entry.html.bak).each do |filename|
599
599
  File.open(filename, 'w') { |io| io.write('test') }
600
600
  end
601
601
 
@@ -616,7 +616,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
616
616
  data_source = Nanoc::DataSources::Filesystem.new(nil, nil, nil, nil)
617
617
 
618
618
  # Write sample files
619
- %w( aaa/foo.html bbb/foo.html ccc/foo.html ).each do |filename|
619
+ %w(aaa/foo.html bbb/foo.html ccc/foo.html).each do |filename|
620
620
  FileUtils.mkdir_p(File.dirname(filename))
621
621
  File.open(filename, 'w') { |io| io.write('test') }
622
622
  end
@@ -636,7 +636,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
636
636
  data_source = Nanoc::DataSources::Filesystem.new(nil, nil, nil, config)
637
637
 
638
638
  # Write sample files
639
- %w( stuff/foo.html stuff/foo.md stuff/foo.yaml ).each do |filename|
639
+ %w(stuff/foo.html stuff/foo.md stuff/foo.yaml).each do |filename|
640
640
  FileUtils.mkdir_p(File.dirname(filename))
641
641
  File.open(filename, 'w') { |io| io.write('test') }
642
642
  end
@@ -655,7 +655,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
655
655
  data_source = Nanoc::DataSources::Filesystem.new(nil, nil, nil, nil)
656
656
 
657
657
  # Write sample files
658
- %w( foo.html foo.xhtml foo.txt foo.yaml bar.html qux.yaml ).each do |filename|
658
+ %w(foo.html foo.xhtml foo.txt foo.yaml bar.html qux.yaml).each do |filename|
659
659
  File.open(filename, 'w') { |io| io.write('test') }
660
660
  end
661
661
 
@@ -3,7 +3,7 @@ class Nanoc::Extra::Checking::RunnerTest < Nanoc::TestCase
3
3
  with_site do |site|
4
4
  File.open('output/blah', 'w') { |io| io.write('I am stale! Haha!') }
5
5
  runner = Nanoc::Extra::Checking::Runner.new(site)
6
- runner.run_specific(%w( stale ))
6
+ runner.run_specific(%w(stale))
7
7
  end
8
8
  end
9
9
 
@@ -15,7 +15,7 @@ class Nanoc::Extra::Checking::RunnerTest < Nanoc::TestCase
15
15
 
16
16
  runner = Nanoc::Extra::Checking::Runner.new(site)
17
17
  ios = capturing_stdio do
18
- runner.run_specific(%w( my_foo_check ))
18
+ runner.run_specific(%w(my_foo_check))
19
19
  end
20
20
 
21
21
  assert ios[:stdout].include?('I AM FOO!')
@@ -1,6 +1,6 @@
1
1
  class Nanoc::Extra::CoreExtPathnameTest < Nanoc::TestCase
2
2
  def test_components
3
- assert_equal %w( / a bb ccc dd e ), Pathname.new('/a/bb/ccc/dd/e').__nanoc_components
3
+ assert_equal %w(/ a bb ccc dd e), Pathname.new('/a/bb/ccc/dd/e').__nanoc_components
4
4
  end
5
5
 
6
6
  def test_include_component
@@ -22,7 +22,7 @@ class Nanoc::Extra::LinkCollectorTest < Nanoc::TestCase
22
22
  end
23
23
 
24
24
  # Create validator
25
- collector = Nanoc::Extra::LinkCollector.new(%w( file-a.html file-b.html ))
25
+ collector = Nanoc::Extra::LinkCollector.new(%w(file-a.html file-b.html))
26
26
 
27
27
  # Test
28
28
  hrefs_with_filenames = collector.filenames_per_href
@@ -58,7 +58,7 @@ class Nanoc::Extra::LinkCollectorTest < Nanoc::TestCase
58
58
  end
59
59
 
60
60
  # Create validator
61
- collector = Nanoc::Extra::LinkCollector.new(%w( file-a.html file-b.html ), :external)
61
+ collector = Nanoc::Extra::LinkCollector.new(%w(file-a.html file-b.html), :external)
62
62
 
63
63
  # Test
64
64
  hrefs_with_filenames = collector.filenames_per_href
@@ -91,7 +91,7 @@ class Nanoc::Extra::LinkCollectorTest < Nanoc::TestCase
91
91
  end
92
92
 
93
93
  # Create validator
94
- collector = Nanoc::Extra::LinkCollector.new(%w( file-a.html file-b.html ), :internal)
94
+ collector = Nanoc::Extra::LinkCollector.new(%w(file-a.html file-b.html), :internal)
95
95
 
96
96
  # Test
97
97
  hrefs_with_filenames = collector.filenames_per_href
@@ -3,7 +3,7 @@ class Nanoc::Extra::PiperTest < Nanoc::TestCase
3
3
  stdout = StringIO.new
4
4
  stderr = StringIO.new
5
5
 
6
- cmd = %w( ls -l )
6
+ cmd = %w(ls -l)
7
7
 
8
8
  File.open('foo.txt', 'w') { |io| io.write('hi') }
9
9
  File.open('bar.txt', 'w') { |io| io.write('ho') }
@@ -21,7 +21,7 @@ class Nanoc::Extra::PiperTest < Nanoc::TestCase
21
21
  stderr = StringIO.new
22
22
 
23
23
  input = 'Hello World!'
24
- cmd = %w( cat )
24
+ cmd = %w(cat)
25
25
 
26
26
  piper = Nanoc::Extra::Piper.new(stdout: stdout, stderr: stderr)
27
27
  piper.run(cmd, input)
@@ -34,7 +34,7 @@ class Nanoc::Extra::PiperTest < Nanoc::TestCase
34
34
  stdout = StringIO.new
35
35
  stderr = StringIO.new
36
36
 
37
- cmd = %w( cat kafhawilgoiwaejagoualjdsfilofiewaguihaifeowuiga )
37
+ cmd = %w(cat kafhawilgoiwaejagoualjdsfilofiewaguihaifeowuiga)
38
38
 
39
39
  piper = Nanoc::Extra::Piper.new(stdout: stdout, stderr: stderr)
40
40
  assert_raises(Nanoc::Extra::Piper::Error) do
@@ -71,7 +71,7 @@ EOS
71
71
 
72
72
  result = ::ERB.new(content).result(binding)
73
73
 
74
- expected = %w( head before basic after foot )
74
+ expected = %w(head before basic after foot)
75
75
  actual = result.scan(/[a-z]+/)
76
76
  assert_equal expected, actual
77
77
  end
@@ -18,7 +18,7 @@ class Nanoc::RuleDSL::ActionProviderTest < Nanoc::TestCase
18
18
 
19
19
  def test_per_rules_file_preprocessor
20
20
  # Create site
21
- Nanoc::CLI.run %w( create_site foo )
21
+ Nanoc::CLI.run %w(create_site foo)
22
22
  FileUtils.cd('foo') do
23
23
  # Create a bonus rules file
24
24
  File.write(
@@ -49,7 +49,7 @@ class Nanoc::RuleDSL::ActionProviderTest < Nanoc::TestCase
49
49
 
50
50
  def test_per_rules_file_postprocessor
51
51
  # Create site
52
- Nanoc::CLI.run %w( create_site foo )
52
+ Nanoc::CLI.run %w(create_site foo)
53
53
  FileUtils.cd('foo') do
54
54
  # Create a bonus rules file
55
55
  File.write(
@@ -13,7 +13,7 @@ class Nanoc::GemTest < Nanoc::TestCase
13
13
  stdout = StringIO.new
14
14
  stderr = StringIO.new
15
15
  piper = Nanoc::Extra::Piper.new(stdout: stdout, stderr: stderr)
16
- piper.run(%w( gem build nanoc.gemspec ), nil)
16
+ piper.run(%w(gem build nanoc.gemspec), nil)
17
17
  files_after = Set.new Dir['**/*']
18
18
 
19
19
  # Check new files
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.2.1
4
+ version: 4.2.2
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-06-19 00:00:00.000000000 Z
11
+ date: 2016-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cri
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: hamster
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '3.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement