nanoc3 3.0.4 → 3.0.5
Sign up to get free protection for your applications and to get access to all the features.
data/NEWS.rdoc
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
= nanoc News
|
2
2
|
|
3
|
+
== 3.0.5
|
4
|
+
|
5
|
+
* Restored pre-3.0.3 behaviour of periods in identifiers. By default, a file
|
6
|
+
can have multiple extensions (e.g. content/foo.html.erb will have the
|
7
|
+
identifier /foo/), but if `allow_periods_in_identifiers` in the site
|
8
|
+
configuration is true, a file can have only one extension (e.g.
|
9
|
+
content/blog/stuff.entry.html will have the identifier /blog/stuff.entry/).
|
10
|
+
|
3
11
|
== 3.0.4
|
4
12
|
|
5
13
|
* Fixed a bug which would cause the filesystem_compact data source to
|
@@ -95,11 +95,15 @@ module Nanoc3::DataSources
|
|
95
95
|
attributes = meta.merge(:file => Nanoc3::Extra::FileProxy.new(filename))
|
96
96
|
|
97
97
|
# Get actual identifier
|
98
|
+
identifier = filename.sub(/^content/, '')
|
98
99
|
if filename =~ /\/index\.[^\/]+$/
|
99
|
-
|
100
|
+
regex = ((@config && @config[:allow_periods_in_identifiers]) ? /index\.[^\/\.]+$/ : /index\.[^\/]+$/)
|
101
|
+
identifier.sub!(regex, '')
|
100
102
|
else
|
101
|
-
|
103
|
+
regex = ((@config && @config[:allow_periods_in_identifiers]) ? /\.[^\/\.]+$/ : /\.[^\/]+$/)
|
104
|
+
identifier.sub!(regex, '')
|
102
105
|
end
|
106
|
+
identifier << '/'
|
103
107
|
|
104
108
|
# Get mtime
|
105
109
|
mtime = File.stat(filename).mtime
|
@@ -222,9 +222,13 @@ module Nanoc3::DataSources
|
|
222
222
|
# '.rej' or '.bak')
|
223
223
|
def content_filename_for_meta_filename(meta_filename)
|
224
224
|
# Find all files
|
225
|
-
|
226
|
-
|
227
|
-
|
225
|
+
if @config && @config[:allow_periods_in_identifiers]
|
226
|
+
base_filename = File.basename(meta_filename, '.yaml')
|
227
|
+
dirname = File.dirname(meta_filename)
|
228
|
+
filenames = Dir.entries(dirname).select { |f| f =~ /^#{base_filename}\.[^.]+$/ }.map { |f| "#{dirname}/#{f}" }
|
229
|
+
else
|
230
|
+
filenames = Dir[meta_filename.sub(/\.yaml$/, '.*')]
|
231
|
+
end
|
228
232
|
|
229
233
|
# Reject meta files
|
230
234
|
filenames.reject! { |f| f =~ /\.yaml$/ }
|
@@ -19,11 +19,17 @@ module Nanoc3::Extra
|
|
19
19
|
@path = path
|
20
20
|
end
|
21
21
|
|
22
|
+
# Returns true if File instances respond to the given method; false if
|
23
|
+
# they do not.
|
24
|
+
def respond_to?(meth)
|
25
|
+
File.instance_methods.any? { |m| m == meth.to_s || m == meth.to_sym }
|
26
|
+
end
|
27
|
+
|
22
28
|
# Makes sure all method calls are relayed to a File object, which will
|
23
29
|
# be created right before the method call takes place and destroyed
|
24
30
|
# right after.
|
25
31
|
def method_missing(sym, *args, &block)
|
26
|
-
File.
|
32
|
+
File.open(@path, 'r') { |io| io.__send__(sym, *args, &block) }
|
27
33
|
end
|
28
34
|
|
29
35
|
end
|
data/lib/nanoc3.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nanoc3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Denis Defreyne
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-13 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|