nanoc 3.7.1 → 3.7.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: eabd0579cb5e3995fa5a2decbba989f11cee9820
4
- data.tar.gz: 2a60be2b6497cba542fcf9d519dc6768327086b8
3
+ metadata.gz: 1ca3c26aee827d7103ec7df8af591543ac1e6146
4
+ data.tar.gz: 1d2b4b6f1cc0082fffef58966079ee19cc6a73ad
5
5
  SHA512:
6
- metadata.gz: b4d52d2ff4bdbf14152861179ed5de3a07845093670388b5b2cc470adcc9690ff8754c2c2d6452fc9e06894beb07d415fb6d9b6bbdad3cdcb0538a399a5a7c01
7
- data.tar.gz: 09037be35e6a561c46df061ba56dad18bc12a5b65bab02402099588eee76cc823506d7abcfce347f5e6425818e7dd2744d9c0faabf99fa440f63564a0e43732f
6
+ metadata.gz: 72d40fe2758cdb63e649596200573aae2ab7cffdc2a96bc5e13b1c4f429b5e4ca630e5884ef493f9614aefaf267f67ed74913ef9bd4e371bb7e433487be50bce
7
+ data.tar.gz: ffbffec0e7507c4e78be36a9484b0cd010d46d63244d414856574a297e78eff65af7671e07895492195b1927719becc3a81da01ebbd49ce6f00d06c47a4863b4
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nanoc (3.7.1)
4
+ nanoc (3.7.2)
5
5
  cri (~> 2.3)
6
6
 
7
7
  GEM
data/NEWS.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # nanoc news
2
2
 
3
+ ## 3.7.2 (2014-08-17)
4
+
5
+ Fixes:
6
+
7
+ * Fixed broken links to the now defunct RubyForge (#454, #467)
8
+ * Fixed crash when Gemfile is missing but Bundler is installed (#464)
9
+ * Made filesystem data source strip only leading newlines, not all whitespace (#463) [Gregory Pakosz]
10
+
11
+ Enhancements:
12
+
13
+ * Fixed issue which could cause items to be unnecessarily marked as outdated (#461) [Gregory Pakosz]
14
+ * Prevented binary layouts from being generated (#468) [Gregory Pakosz]
15
+
3
16
  ## 3.7.1 (2014-06-16)
4
17
 
5
18
  Fixes:
@@ -459,7 +472,7 @@ New:
459
472
  * A new “+” wildcard in rule patterns that matches one or more characters
460
473
  * A `view` command that starts a web server in the output directory
461
474
  * A `debug` command that shows information about the items, reps and layouts
462
- * A `kramdown` filter ([kramdown site](http://kramdown.rubyforge.org/))
475
+ * A `kramdown` filter ([kramdown site](http://kramdown.gettalong.org/))
463
476
  * A diff between the previously compiled content and the last compiled content is now written to `output.diff` if the `enable_output_diff` site configuration attribute is true
464
477
  * Assigns, such as `@items`, `@layouts`, `@item`, … are accessible without `@`
465
478
  * Support for binary items
@@ -647,7 +660,7 @@ updated manual will be useful.
647
660
  New:
648
661
 
649
662
  * New `rdiscount` filter ([RDiscount site](http://github.com/rtomayko/rdiscount))
650
- * New `maruku` filter ([Maruku site](http://maruku.rubyforge.org/))
663
+ * New `maruku` filter ([Maruku site](https://github.com/bhollis/maruku/))
651
664
  * New `erubis` filter ([Erubis site](http://www.kuwata-lab.com/erubis/))
652
665
  * A better commandline frontend
653
666
  * A new filesystem data source named `filesystem_combined`
data/bin/nanoc CHANGED
@@ -3,6 +3,7 @@
3
3
 
4
4
  # Try loading bundler if it's possible
5
5
  begin
6
+ require 'bundler'
6
7
  require 'bundler/setup'
7
8
  begin
8
9
  Bundler.require(:default)
@@ -198,9 +198,9 @@ module Nanoc
198
198
  end
199
199
  memoize :new_rule_memory_for_rep
200
200
 
201
- # Makes the given rule memory serializable by calling `#inspect` on the
202
- # filter arguments, so that objects such as classes and filenames can be
203
- # serialized.
201
+ # Makes the given rule memory serializable by calling
202
+ # `Nanoc::Checksummer#calc` on the filter arguments, so that objects such as
203
+ # classes and filenames can be serialized.
204
204
  #
205
205
  # @param [Array] rs The rule memory for a certain item rep
206
206
  #
@@ -208,7 +208,7 @@ module Nanoc
208
208
  def make_rule_memory_serializable(rs)
209
209
  rs.map do |r|
210
210
  if r[0] == :filter
211
- [ r[0], r[1], r[2].to_a.map { |a| a.inspect } ]
211
+ [ r[0], r[1], r[2].to_a.map { |a| Nanoc::Checksummer.calc(a) } ]
212
212
  else
213
213
  r
214
214
  end
@@ -93,6 +93,8 @@ module Nanoc::DataSources
93
93
  if is_binary && klass == Nanoc::Item
94
94
  meta = (meta_filename && YAML.load_file(meta_filename)) || {}
95
95
  content_or_filename = content_filename
96
+ elsif is_binary && klass == Nanoc::Layout
97
+ raise "The layout file '#{content_filename}' is a binary file, but layouts can only be textual"
96
98
  else
97
99
  meta, content_or_filename = parse(content_filename, meta_filename, kind)
98
100
  end
@@ -255,7 +257,7 @@ module Nanoc::DataSources
255
257
  end
256
258
 
257
259
  # Split data
258
- pieces = data.split(/^(-{5}|-{3})\s*$/)
260
+ pieces = data.split(/^(-{5}|-{3})[ \t]*\n/)
259
261
  if pieces.size < 4
260
262
  raise RuntimeError.new(
261
263
  "The file '#{content_filename}' appears to start with a metadata section (three or five dashes at the top) but it does not seem to be in the correct format."
@@ -268,7 +270,7 @@ module Nanoc::DataSources
268
270
  rescue Exception => e
269
271
  raise "Could not parse YAML for #{content_filename}: #{e.message}"
270
272
  end
271
- content = pieces[4..-1].join.strip
273
+ content = pieces[4..-1].join
272
274
 
273
275
  # Done
274
276
  [ meta, content ]
@@ -94,7 +94,7 @@ module Nanoc::DataSources
94
94
  meta = attributes.stringify_keys_recursively
95
95
  unless meta == {}
96
96
  io.write(YAML.dump(meta).strip + "\n")
97
- io.write("---\n\n")
97
+ io.write("---\n")
98
98
  end
99
99
  io.write(content)
100
100
  end
@@ -25,7 +25,7 @@ module Nanoc::Extra
25
25
  end
26
26
 
27
27
  # Calls the autocompiler. The behaviour of this method is defined by the
28
- # [Rack specification](http://rack.rubyforge.org/doc/SPEC.html).
28
+ # [Rack specification](http://rubydoc.info/github/rack/rack/master/file/SPEC).
29
29
  #
30
30
  # @param [Hash] env The environment, as defined by the Rack specification
31
31
  #
@@ -8,12 +8,12 @@ module Nanoc::Extra
8
8
 
9
9
  # @deprecated Use a HTTP library such as
10
10
  # [Net::HTTP](http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/) or
11
- # [Curb](http://curb.rubyforge.org/) instead.
11
+ # [Curb](https://github.com/taf2/curb) instead.
12
12
  module CHiCk
13
13
 
14
14
  # @deprecated Use a HTTP library such as
15
15
  # [Net::HTTP](http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/) or
16
- # [Curb](http://curb.rubyforge.org/) instead.
16
+ # [Curb](https://github.com/taf2/curb) instead.
17
17
  class Client
18
18
 
19
19
  DEFAULT_OPTIONS = {
@@ -62,7 +62,7 @@ module Nanoc::Extra
62
62
 
63
63
  # @deprecated Use a HTTP library such as
64
64
  # [Net::HTTP](http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/) or
65
- # [Curb](http://curb.rubyforge.org/) instead.
65
+ # [Curb](https://github.com/taf2/curb) instead.
66
66
  class CacheController
67
67
 
68
68
  def initialize(app, options = {})
@@ -82,7 +82,7 @@ module Nanoc::Extra
82
82
 
83
83
  # @deprecated Use a HTTP library such as
84
84
  # [Net::HTTP](http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/) or
85
- # [Curb](http://curb.rubyforge.org/) instead.
85
+ # [Curb](https://github.com/taf2/curb) instead.
86
86
  class RackClient
87
87
 
88
88
  METHOD_TO_CLASS_MAPPING = {
@@ -5,7 +5,7 @@ module Nanoc::Filters
5
5
 
6
6
  requires 'kramdown'
7
7
 
8
- # Runs the content through [Kramdown](http://kramdown.rubyforge.org/).
8
+ # Runs the content through [Kramdown](http://kramdown.gettalong.org/).
9
9
  # Parameters passed to this filter will be passed on to Kramdown.
10
10
  #
11
11
  # @param [String] content The content to filter
@@ -5,7 +5,7 @@ module Nanoc::Filters
5
5
 
6
6
  requires 'markaby'
7
7
 
8
- # Runs the content through [Markaby](http://markaby.rubyforge.org/).
8
+ # Runs the content through [Markaby](http://markaby.github.io/).
9
9
  # This method takes no options.
10
10
  #
11
11
  # @param [String] content The content to filter
@@ -5,7 +5,7 @@ module Nanoc::Filters
5
5
 
6
6
  requires 'maruku'
7
7
 
8
- # Runs the content through [Maruku](http://maruku.rubyforge.org/).
8
+ # Runs the content through [Maruku](https://github.com/bhollis/maruku/).
9
9
  # Parameters passed to this filter will be passed on to Maruku.
10
10
  #
11
11
  # @param [String] content The content to filter
@@ -10,7 +10,7 @@ module Nanoc::Filters
10
10
  super
11
11
  end
12
12
 
13
- # Runs the content through [RDoc::Markup](http://rdoc.rubyforge.org/RDoc/Markup.html).
13
+ # Runs the content through [RDoc::Markup](http://docs.seattlerb.org/rdoc/RDoc/Markup.html).
14
14
  # This method takes no options.
15
15
  #
16
16
  # @param [String] content The content to filter
@@ -3,6 +3,6 @@
3
3
  module Nanoc
4
4
 
5
5
  # The current nanoc version.
6
- VERSION = '3.7.1'
6
+ VERSION = '3.7.2'
7
7
 
8
8
  end
@@ -316,7 +316,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
316
316
  io.write "-----\n"
317
317
  io.write "foo: bar\n"
318
318
  io.write "-----\n"
319
- io.write "blah blah\n"
319
+ io.write " \t\n blah blah\n"
320
320
  end
321
321
 
322
322
  # Create data source
@@ -325,7 +325,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
325
325
  # Parse it
326
326
  result = data_source.instance_eval { parse('test.html', nil, 'foobar') }
327
327
  assert_equal({ 'foo' => 'bar' }, result[0])
328
- assert_equal('blah blah', result[1])
328
+ assert_equal(" \t\n blah blah\n", result[1])
329
329
  end
330
330
 
331
331
  def test_parse_embedded_with_extra_spaces
@@ -334,7 +334,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
334
334
  io.write "----- \n"
335
335
  io.write "foo: bar\n"
336
336
  io.write "-----\t\t\t\t\t\n"
337
- io.write "blah blah\n"
337
+ io.write " blah blah\n"
338
338
  end
339
339
 
340
340
  # Create data source
@@ -343,7 +343,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
343
343
  # Parse it
344
344
  result = data_source.instance_eval { parse('test.html', nil, 'foobar') }
345
345
  assert_equal({ 'foo' => 'bar' }, result[0])
346
- assert_equal('blah blah', result[1])
346
+ assert_equal(" blah blah\n", result[1])
347
347
  end
348
348
 
349
349
  def test_parse_embedded_empty_meta
@@ -351,7 +351,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
351
351
  File.open('test.html', 'w') do |io|
352
352
  io.write "-----\n"
353
353
  io.write "-----\n"
354
- io.write "blah blah\n"
354
+ io.write "\nblah blah\n"
355
355
  end
356
356
 
357
357
  # Create data source
@@ -360,7 +360,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
360
360
  # Parse it
361
361
  result = data_source.instance_eval { parse('test.html', nil, 'foobar') }
362
362
  assert_equal({}, result[0])
363
- assert_equal('blah blah', result[1])
363
+ assert_equal("\nblah blah\n", result[1])
364
364
  end
365
365
 
366
366
  def test_parse_utf8_bom
@@ -376,7 +376,7 @@ class Nanoc::DataSources::FilesystemTest < Nanoc::TestCase
376
376
 
377
377
  result = data_source.instance_eval { parse('test.html', nil, 'foobar') }
378
378
  assert_equal({ 'utf8bomawareness' => 'high' }, result[0])
379
- assert_equal('content goes here', result[1])
379
+ assert_equal("content goes here\n", result[1])
380
380
  end
381
381
 
382
382
  def test_parse_embedded_no_meta
@@ -25,7 +25,7 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
25
25
  assert File.file?('foobar/asdf.html')
26
26
 
27
27
  # Check file content
28
- expected = /^--- ?\nfoo: bar\n---\n\ncontent here$/
28
+ expected = /^--- ?\nfoo: bar\n---\ncontent here$/
29
29
  assert_match expected, File.read('foobar/asdf.html')
30
30
  end
31
31
 
@@ -41,7 +41,7 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
41
41
  assert File.file?('foobar/index.html')
42
42
 
43
43
  # Check file content
44
- expected = /^--- ?\nfoo: bar\n---\n\ncontent here$/
44
+ expected = /^--- ?\nfoo: bar\n---\ncontent here$/
45
45
  assert_match expected, File.read('foobar/index.html')
46
46
  end
47
47
 
@@ -135,11 +135,9 @@ class Nanoc::DataSources::FilesystemUnifiedTest < Nanoc::TestCase
135
135
  File.open('foo/stuff.dat', 'w') { |io| io.write("random binary data") }
136
136
 
137
137
  # Load
138
- items = data_source.send(:load_objects, 'foo', 'item', Nanoc::Layout)
139
-
140
- # Check
141
- assert_equal 1, items.size
142
- assert_equal 'random binary data', items[0].raw_content
138
+ assert_raises(RuntimeError) do
139
+ data_source.send(:load_objects, 'foo', 'item', Nanoc::Layout)
140
+ end
143
141
  end
144
142
 
145
143
  def test_identifier_for_filename_allowing_periods_in_identifiers
@@ -138,7 +138,7 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
138
138
  io.write("---\n")
139
139
  io.write("filter: erb\n")
140
140
  end
141
- File.open('layouts/foo/foo.rhtml', 'w') do |io|
141
+ File.open('layouts/foo/foo.html', 'w') do |io|
142
142
  io.write('Lorem ipsum dolor sit amet...')
143
143
  end
144
144
 
@@ -148,8 +148,8 @@ class Nanoc::DataSources::FilesystemVerboseTest < Nanoc::TestCase
148
148
  # Check layouts
149
149
  assert_equal(1, layouts.size)
150
150
  assert_equal('erb', layouts[0][:filter])
151
- assert_equal('rhtml', layouts[0][:extension])
152
- assert_equal('layouts/foo/foo.rhtml', layouts[0][:content_filename])
151
+ assert_equal('html', layouts[0][:extension])
152
+ assert_equal('layouts/foo/foo.html', layouts[0][:content_filename])
153
153
  assert_equal('layouts/foo/foo.yaml', layouts[0][:meta_filename])
154
154
  end
155
155
 
@@ -12,7 +12,7 @@ class Nanoc::Helpers::RenderingTest < Nanoc::TestCase
12
12
  io.write("layout '/foo/', :erb\n")
13
13
  end
14
14
 
15
- File.open('layouts/foo.xyz', 'w') do |io|
15
+ File.open('layouts/foo.erb', 'w') do |io|
16
16
  io.write 'This is the <%= @layout.identifier %> layout.'
17
17
  end
18
18
 
@@ -38,7 +38,7 @@ class Nanoc::Helpers::RenderingTest < Nanoc::TestCase
38
38
  io.write("layout '/foo/', nil\n")
39
39
  end
40
40
 
41
- File.open('layouts/foo.xyz', 'w').close()
41
+ File.open('layouts/foo.erb', 'w').close()
42
42
 
43
43
  assert_raises(Nanoc::Errors::CannotDetermineFilter) do
44
44
  render '/foo/'
@@ -54,7 +54,7 @@ class Nanoc::Helpers::RenderingTest < Nanoc::TestCase
54
54
  io.write("layout '/foo/', :asdf\n")
55
55
  end
56
56
 
57
- File.open('layouts/foo.xyz', 'w').close()
57
+ File.open('layouts/foo.erb', 'w').close()
58
58
 
59
59
  assert_raises(Nanoc::Errors::UnknownFilter) do
60
60
  render '/foo/'
@@ -70,7 +70,7 @@ class Nanoc::Helpers::RenderingTest < Nanoc::TestCase
70
70
  io.write("layout '/foo/', :erb\n")
71
71
  end
72
72
 
73
- File.open('layouts/foo.xyz', 'w') do |io|
73
+ File.open('layouts/foo.erb', 'w') do |io|
74
74
  io.write '[partial-before]<%= yield %>[partial-after]'
75
75
  end
76
76
 
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: 3.7.1
4
+ version: 3.7.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: 2014-06-16 00:00:00.000000000 Z
11
+ date: 2014-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cri