nanoc 4.2.1 → 4.2.2

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.
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