flutterby 0.0.14 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/flutterby/node.rb +21 -9
- data/lib/flutterby/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 999c3198c2142accdf16e2ceb75e3bed0d2c1465
|
4
|
+
data.tar.gz: d2b5a2573131d8275baf6b64ed0def712befc72f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9dbfa0722dab9e0bc5b50bc0f436cf7e5ae55c2c51732d44baaff615e667f61d86248d7f3075f3c0fd5e2bab3e483d3182386caadd90aaaba0dfccc1bfbd00f0
|
7
|
+
data.tar.gz: 1410e3505211430225a98f0093a9dc1045e841b8b50a0820c2142cf38a8784206de90f1e72d7361f365a0a3f21e1330d129872e40709ea43fd48803a1161fbc3
|
data/lib/flutterby/node.rb
CHANGED
@@ -3,7 +3,7 @@ require 'benchmark'
|
|
3
3
|
module Flutterby
|
4
4
|
class Node
|
5
5
|
attr_accessor :parent, :ext, :source, :body
|
6
|
-
attr_reader :name, :filters, :fs_path, :
|
6
|
+
attr_reader :name, :filters, :fs_path, :children, :paths
|
7
7
|
|
8
8
|
def initialize(name, parent: nil, fs_path: nil, source: nil)
|
9
9
|
@fs_path = fs_path ? ::File.expand_path(fs_path) : nil
|
@@ -139,7 +139,7 @@ module Flutterby
|
|
139
139
|
|
140
140
|
def reload!
|
141
141
|
@body = nil
|
142
|
-
@data =
|
142
|
+
@data = nil
|
143
143
|
@children = []
|
144
144
|
@paths = {}
|
145
145
|
|
@@ -159,7 +159,6 @@ module Flutterby
|
|
159
159
|
#
|
160
160
|
walk_tree do |node|
|
161
161
|
node.render_body! if node.should_prerender?
|
162
|
-
node.extract_data!
|
163
162
|
node.register! if node.should_publish?
|
164
163
|
end
|
165
164
|
end
|
@@ -183,9 +182,11 @@ module Flutterby
|
|
183
182
|
end
|
184
183
|
|
185
184
|
def extract_data!
|
185
|
+
@data ||= {}
|
186
|
+
|
186
187
|
# Extract date from name
|
187
188
|
if name =~ %r{^(\d\d\d\d\-\d\d?\-\d\d?)\-}
|
188
|
-
data['date'] = Time.parse($1)
|
189
|
+
@data['date'] = Time.parse($1)
|
189
190
|
end
|
190
191
|
|
191
192
|
# Read remaining data from frontmatter. Data in frontmatter
|
@@ -222,10 +223,19 @@ module Flutterby
|
|
222
223
|
end
|
223
224
|
|
224
225
|
def body
|
225
|
-
|
226
|
+
if @body.nil?
|
227
|
+
data # make sure data is lazy-loaded
|
228
|
+
render_body!
|
229
|
+
end
|
230
|
+
|
226
231
|
@body
|
227
232
|
end
|
228
233
|
|
234
|
+
def data
|
235
|
+
extract_data! if @data.nil?
|
236
|
+
@data
|
237
|
+
end
|
238
|
+
|
229
239
|
def render(layout: true)
|
230
240
|
(layout && apply_layout?) ? apply_layout(body) : body
|
231
241
|
end
|
@@ -253,25 +263,27 @@ module Flutterby
|
|
253
263
|
#
|
254
264
|
|
255
265
|
def parse_frontmatter!
|
266
|
+
@data || {}
|
267
|
+
|
256
268
|
if @source
|
257
269
|
# YAML Front Matter
|
258
270
|
if @source.sub!(/\A\-\-\-\n(.+)\n\-\-\-\n/m, "")
|
259
|
-
data.merge! YAML.load($1)
|
271
|
+
@data.merge! YAML.load($1)
|
260
272
|
end
|
261
273
|
|
262
274
|
# TOML Front Matter
|
263
275
|
if @source.sub!(/\A\+\+\+\n(.+)\n\+\+\+\n/m, "")
|
264
|
-
data.merge! TOML.parse($1)
|
276
|
+
@data.merge! TOML.parse($1)
|
265
277
|
end
|
266
278
|
end
|
267
279
|
end
|
268
280
|
|
269
281
|
def read_json!
|
270
|
-
data.merge!(JSON.parse(body))
|
282
|
+
@data.merge!(JSON.parse(body))
|
271
283
|
end
|
272
284
|
|
273
285
|
def read_yaml!
|
274
|
-
data.merge!(YAML.load(body))
|
286
|
+
@data.merge!(YAML.load(body))
|
275
287
|
end
|
276
288
|
|
277
289
|
|
data/lib/flutterby/version.rb
CHANGED