runeblog 0.2.41 → 0.2.46
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 +4 -4
- data/bin/blog +4 -7
- data/empty_view/themes/standard/blog/post_entry.lt3 +11 -10
- data/empty_view/themes/standard/etc/blog.css.lt3 +18 -1
- data/empty_view/themes/standard/navbar/faq.lt3 +1 -0
- data/empty_view/themes/standard/navbar/navbar.lt3 +1 -0
- data/empty_view/themes/standard/post/generate.lt3 +9 -4
- data/empty_view/themes/standard/widgets/ad/ad.lt3 +8 -1
- data/empty_view/themes/standard/widgets/ad/ad1.png +0 -0
- data/empty_view/themes/standard/widgets/ad/ad2.png +0 -0
- data/empty_view/themes/standard/widgets/ad/ad3.png +0 -0
- data/empty_view/themes/standard/widgets/ad/ad4.png +0 -0
- data/empty_view/themes/standard/widgets/bydates/bydates.rb +7 -3
- data/empty_view/themes/standard/widgets/links/links.rb +28 -3
- data/empty_view/themes/standard/widgets/news/news.rb +7 -3
- data/empty_view/themes/standard/widgets/pages/pages.rb +10 -3
- data/empty_view/themes/standard/widgets/pinned/pinned.rb +7 -3
- data/empty_view/themes/standard/widgets/search/search.rb +7 -3
- data/empty_view/themes/standard/widgets/sitemap/sitemap.rb +7 -3
- data/empty_view/themes/standard/widgets/tag-cloud/tag-cloud.rb +7 -3
- data/lib/default.rb +1 -4
- data/lib/global.rb +8 -7
- data/lib/helpers-blog.rb +15 -15
- data/lib/liveblog.rb +94 -57
- data/lib/logging.rb +17 -8
- data/lib/post.rb +6 -6
- data/lib/publish.rb +4 -4
- data/lib/repl.rb +1 -0
- data/lib/runeblog.rb +77 -47
- data/lib/runeblog_version.rb +1 -1
- data/lib/view.rb +2 -8
- data/lib/xlate.rb +2 -2
- data/test/austin.rb +159 -0
- metadata +8 -5
- data/empty_view/remote/widgets/links/list.data +0 -3
- data/empty_view/remote/widgets/news/list.data +0 -4
- data/empty_view/remote/widgets/pages/list.data +0 -4
data/lib/publish.rb
CHANGED
@@ -21,25 +21,25 @@ class RuneBlog::Publishing
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def to_h
|
24
|
-
log!(enter: __method__)
|
24
|
+
log!(enter: __method__, level: 3)
|
25
25
|
{user: @user, server: @server, docroot: @docroot,
|
26
26
|
path: @path, proto: @proto}
|
27
27
|
end
|
28
28
|
|
29
29
|
def url
|
30
|
-
log!(enter: __method__)
|
30
|
+
log!(enter: __method__, level: 3)
|
31
31
|
vname = @blog.view.name # .gsub(/_/, "\\_")
|
32
32
|
url = "#@proto://#@server/#@path" # /#{vname}"
|
33
33
|
end
|
34
34
|
|
35
35
|
def system!(str)
|
36
|
-
log!(enter: __method__, args: [str])
|
36
|
+
log!(enter: __method__, args: [str], level: 1)
|
37
37
|
rc = system(str)
|
38
38
|
rc
|
39
39
|
end
|
40
40
|
|
41
41
|
def publish(files, assets=[])
|
42
|
-
log!(enter: __method__, args: [files, assets])
|
42
|
+
log!(enter: __method__, args: [files, assets], level: 1)
|
43
43
|
dir = @docroot/@path
|
44
44
|
view_name = @blog.view.name
|
45
45
|
viewpath = dir # /view_name
|
data/lib/repl.rb
CHANGED
data/lib/runeblog.rb
CHANGED
@@ -53,7 +53,7 @@ class RuneBlog
|
|
53
53
|
end
|
54
54
|
|
55
55
|
def self.create(root = ".blogs")
|
56
|
-
log!(enter: __method__, args: [root])
|
56
|
+
log!(enter: __method__, args: [root], level: 1)
|
57
57
|
# Crude - FIXME later - # What views are there? Publishing, etc.
|
58
58
|
self.blog = self # Weird. Like a singleton - dumbass circular dependency?
|
59
59
|
root = Dir.pwd/root
|
@@ -101,7 +101,7 @@ class RuneBlog
|
|
101
101
|
end
|
102
102
|
|
103
103
|
def _deploy_local(dir)
|
104
|
-
log!(enter: __method__, args: [dir])
|
104
|
+
log!(enter: __method__, args: [dir], level: 1)
|
105
105
|
Dir.chdir(dir) do
|
106
106
|
views = _retrieve_metadata(:views)
|
107
107
|
views.each {|v| system!("cp *html #@root/views/#{v}/remote") }
|
@@ -132,7 +132,7 @@ class RuneBlog
|
|
132
132
|
end
|
133
133
|
|
134
134
|
def process_post(sourcefile)
|
135
|
-
log!(enter: __method__, args: [dir])
|
135
|
+
log!(enter: __method__, args: [dir], level: 2)
|
136
136
|
nslug = sourcefile.sub(/.lt3/, "")
|
137
137
|
dir = @root/:posts/nslug
|
138
138
|
create_dir(dir)
|
@@ -141,7 +141,7 @@ class RuneBlog
|
|
141
141
|
end
|
142
142
|
|
143
143
|
def inspect
|
144
|
-
log!(enter: __method__)
|
144
|
+
log!(enter: __method__, level: 3)
|
145
145
|
str = "blog: "
|
146
146
|
ivars = ["@root", "@sequence"] # self.instance_variables
|
147
147
|
ivars.each do |iv|
|
@@ -152,30 +152,30 @@ class RuneBlog
|
|
152
152
|
end
|
153
153
|
|
154
154
|
def view?(name)
|
155
|
-
log!(enter: __method__, args: [name])
|
155
|
+
log!(enter: __method__, args: [name], level: 3)
|
156
156
|
raise ArgumentError unless name.is_a?(String) && ! name.empty?
|
157
157
|
views.any? {|x| x.name == name }
|
158
158
|
end
|
159
159
|
|
160
160
|
def view(name = nil)
|
161
|
-
log!(enter: __method__, args: [name])
|
161
|
+
log!(enter: __method__, args: [name], level: 3)
|
162
162
|
raise ArgumentError unless name.nil? || (name.is_a?(String) && ! name.empty?)
|
163
163
|
name.nil? ? @view : str2view(name)
|
164
164
|
end
|
165
165
|
|
166
166
|
def str2view(str)
|
167
|
-
log!(enter: __method__, args: [str])
|
167
|
+
log!(enter: __method__, args: [str], level: 3)
|
168
168
|
raise ArgumentError unless str.is_a?(String) && ! str.empty?
|
169
169
|
@views.find {|x| x.name == str }
|
170
170
|
end
|
171
171
|
|
172
172
|
def _set_publisher
|
173
|
-
log!(enter: __method__)
|
173
|
+
log!(enter: __method__, level: 3)
|
174
174
|
@view.publisher = RuneBlog::Publishing.new(@view.to_s) # FIXME refactor
|
175
175
|
end
|
176
176
|
|
177
177
|
def view=(arg)
|
178
|
-
log!(enter: __method__, args: [arg])
|
178
|
+
log!(enter: __method__, args: [arg], level: 2)
|
179
179
|
case arg
|
180
180
|
when RuneBlog::View
|
181
181
|
@view = arg
|
@@ -191,19 +191,19 @@ class RuneBlog
|
|
191
191
|
end
|
192
192
|
|
193
193
|
def get_sequence
|
194
|
-
log!(enter: __method__)
|
194
|
+
log!(enter: __method__, level: 3)
|
195
195
|
File.read(@root/:sequence).to_i
|
196
196
|
end
|
197
197
|
|
198
198
|
def next_sequence
|
199
|
-
log!(enter: __method__)
|
199
|
+
log!(enter: __method__, level: 3)
|
200
200
|
@sequence += 1
|
201
201
|
dump(@sequence, @root/:sequence)
|
202
202
|
@sequence
|
203
203
|
end
|
204
204
|
|
205
205
|
def viewdir(v = nil) # delete?
|
206
|
-
log!(enter: __method__, args: [v])
|
206
|
+
log!(enter: __method__, args: [v], level: 3)
|
207
207
|
v = str2view(v) if v.is_a?(String)
|
208
208
|
raise ArgumentError unless v.nil? || v.is_a?(RuneBlog::View)
|
209
209
|
v ||= @view
|
@@ -211,17 +211,17 @@ class RuneBlog
|
|
211
211
|
end
|
212
212
|
|
213
213
|
def self.exist?
|
214
|
-
log!(enter: __method__)
|
214
|
+
log!(enter: __method__, level: 3)
|
215
215
|
Dir.exist?(DotDir) && File.exist?(DotDir/ConfigFile)
|
216
216
|
end
|
217
217
|
|
218
218
|
def mark_last_published(str)
|
219
|
-
log!(enter: __method__, args: [str])
|
219
|
+
log!(enter: __method__, args: [str], level: 2)
|
220
220
|
dump(str, "#{self.view.dir}/last_published")
|
221
221
|
end
|
222
222
|
|
223
223
|
def add_view(view_name)
|
224
|
-
log!(enter: __method__, args: [view_name])
|
224
|
+
log!(enter: __method__, args: [view_name], level: 2)
|
225
225
|
view = RuneBlog::View.new(view_name)
|
226
226
|
@view = view # current view
|
227
227
|
@views << view # all views
|
@@ -229,7 +229,7 @@ class RuneBlog
|
|
229
229
|
end
|
230
230
|
|
231
231
|
def make_empty_view_tree(view_name)
|
232
|
-
log!(enter: __method__, args: [view_name])
|
232
|
+
log!(enter: __method__, args: [view_name], level: 2)
|
233
233
|
Dir.chdir(@root) do
|
234
234
|
cmd = "cp -r #{RuneBlog::Path}/../empty_view views/#{view_name}"
|
235
235
|
system!(cmd)
|
@@ -237,7 +237,7 @@ class RuneBlog
|
|
237
237
|
end
|
238
238
|
|
239
239
|
def check_valid_new_view(view_name)
|
240
|
-
log!(enter: __method__, args: [view_name])
|
240
|
+
log!(enter: __method__, args: [view_name], level: 3)
|
241
241
|
raise ArgumentError unless view_name.is_a?(String)
|
242
242
|
raise ArgumentError if view_name.empty?
|
243
243
|
names = self.views.map(&:to_s)
|
@@ -249,9 +249,11 @@ class RuneBlog
|
|
249
249
|
end
|
250
250
|
|
251
251
|
def create_view(view_name)
|
252
|
-
log!(enter: __method__, args: [view_name])
|
252
|
+
log!(enter: __method__, args: [view_name], level: 2)
|
253
253
|
check_valid_new_view(view_name)
|
254
254
|
make_empty_view_tree(view_name)
|
255
|
+
# STDERR.puts "Made empty tree!"
|
256
|
+
# system("bash")
|
255
257
|
add_view(view_name)
|
256
258
|
mark_last_published("Initial creation")
|
257
259
|
end
|
@@ -267,7 +269,7 @@ class RuneBlog
|
|
267
269
|
end
|
268
270
|
|
269
271
|
def view_files
|
270
|
-
log!(enter: __method__)
|
272
|
+
log!(enter: __method__, level: 2)
|
271
273
|
vdir = self.view.dir
|
272
274
|
files = [vdir/"index.html"]
|
273
275
|
files += posts.map {|x| vdir/x }
|
@@ -275,7 +277,7 @@ class RuneBlog
|
|
275
277
|
end
|
276
278
|
|
277
279
|
def post_lookup(postid) # side-effect?
|
278
|
-
log!(enter: __method__, args: [postid])
|
280
|
+
log!(enter: __method__, args: [postid], level: 2)
|
279
281
|
slug = title = date = teaser_text = nil
|
280
282
|
|
281
283
|
dir_posts = @vdir/:posts
|
@@ -289,8 +291,8 @@ class RuneBlog
|
|
289
291
|
vp
|
290
292
|
end
|
291
293
|
|
292
|
-
def
|
293
|
-
log!(enter: __method__, args: [slug])
|
294
|
+
def index_entry(slug)
|
295
|
+
log!(enter: __method__, args: [slug], level: 2)
|
294
296
|
id = slug.to_i
|
295
297
|
text = nil
|
296
298
|
@theme = @view.dir/"themes/standard"
|
@@ -303,13 +305,13 @@ class RuneBlog
|
|
303
305
|
path = vp.path
|
304
306
|
url = aslug + ".html"
|
305
307
|
date = ::Date.parse(date)
|
306
|
-
date = date.strftime("%B %e<br>%Y")
|
308
|
+
date = date.strftime("%B %e<br><div style='float: right'>%Y</div>")
|
307
309
|
text = interpolate(@_post_entry, binding)
|
308
310
|
text
|
309
311
|
end
|
310
312
|
|
311
313
|
def collect_recent_posts(file)
|
312
|
-
log!(enter: __method__, args: [file])
|
314
|
+
log!(enter: __method__, args: [file], level: 3)
|
313
315
|
posts = nil
|
314
316
|
dir_posts = @vdir/:posts
|
315
317
|
entries = Dir.entries(dir_posts)
|
@@ -328,18 +330,19 @@ class RuneBlog
|
|
328
330
|
wanted.times do
|
329
331
|
postid = File.basename(enum.next)
|
330
332
|
postid = postid.to_i
|
331
|
-
text <<
|
333
|
+
text << index_entry(postid) # side effect! calls _out
|
332
334
|
end
|
333
335
|
text << "</body></html>"
|
334
336
|
File.write(@vdir/:remote/file, text)
|
335
337
|
end
|
336
338
|
|
337
|
-
def create_new_post(title, testing = false, teaser: nil, body: nil,
|
338
|
-
|
339
|
+
def create_new_post(title, testing = false, teaser: nil, body: nil,
|
340
|
+
pubdate: Time.now.strftime("%Y-%m-%d"), views: [])
|
341
|
+
log!(enter: __method__, args: [title, testing, teaser, body, views], level: 1)
|
339
342
|
meta = nil
|
340
343
|
views = views + [self.view.to_s]
|
341
344
|
Dir.chdir(@root/:posts) do
|
342
|
-
post = Post.create(title: title, teaser: teaser, body: body, views: views)
|
345
|
+
post = Post.create(title: title, teaser: teaser, body: body, pubdate: pubdate, views: views)
|
343
346
|
post.edit unless testing
|
344
347
|
post.build
|
345
348
|
meta = post.meta
|
@@ -351,7 +354,7 @@ class RuneBlog
|
|
351
354
|
end
|
352
355
|
|
353
356
|
def edit_initial_post(file, testing = false)
|
354
|
-
log!(enter: __method__, args: [file, testing])
|
357
|
+
log!(enter: __method__, args: [file, testing], level: 3)
|
355
358
|
debug "=== edit_initial_post #{file.inspect} => #{sourcefile}"
|
356
359
|
sourcefile = @root/:drafts/file
|
357
360
|
result = system!("#@editor #{sourcefile} +8") unless testing
|
@@ -363,20 +366,20 @@ class RuneBlog
|
|
363
366
|
end
|
364
367
|
|
365
368
|
def posts
|
366
|
-
log!(enter: __method__)
|
369
|
+
log!(enter: __method__, level: 3)
|
367
370
|
dir = self.view.dir/:posts
|
368
371
|
posts = Dir.entries(dir).grep(/^\d{4}/)
|
369
372
|
posts
|
370
373
|
end
|
371
374
|
|
372
375
|
def drafts
|
373
|
-
log!(enter: __method__)
|
376
|
+
log!(enter: __method__, level: 3)
|
374
377
|
dir = @root/:drafts
|
375
378
|
drafts = Dir.entries(dir).grep(/^\d{4}.*/)
|
376
379
|
end
|
377
380
|
|
378
381
|
def change_view(view)
|
379
|
-
log!(enter: __method__, args: [view])
|
382
|
+
log!(enter: __method__, args: [view], level: 3)
|
380
383
|
raise ArgumentError unless view.is_a?(String) || view.is_a?(RuneBlog::View)
|
381
384
|
x = OpenStruct.new
|
382
385
|
x.root, x.current_view, x.editor = @root, view.to_s, @editor # dumb - FIXME later
|
@@ -400,7 +403,7 @@ class RuneBlog
|
|
400
403
|
src: "blog.css.lt3", copy: vdir/"remote/etc/blog.css" # , debug: true
|
401
404
|
xlate cwd: vdir/"themes/standard",
|
402
405
|
src: "blog/generate.lt3", dst: vdir/:remote/"index.html"
|
403
|
-
|
406
|
+
# generate_index(view) # recent posts (recent.html)
|
404
407
|
# ^ HERE
|
405
408
|
copy("#{vdir}/assets/*", "#{vdir}/remote/assets/")
|
406
409
|
rescue => err
|
@@ -411,7 +414,7 @@ class RuneBlog
|
|
411
414
|
end
|
412
415
|
|
413
416
|
def _get_views(draft)
|
414
|
-
log!(enter: __method__, args: [draft])
|
417
|
+
log!(enter: __method__, args: [draft], level: 2)
|
415
418
|
# FIXME dumb code
|
416
419
|
view_line = File.readlines(draft).grep(/^.views /)
|
417
420
|
raise "More than one .views call!" if view_line.size > 1
|
@@ -422,7 +425,7 @@ class RuneBlog
|
|
422
425
|
end
|
423
426
|
|
424
427
|
def _copy_get_dirs(draft, view)
|
425
|
-
log!(enter: __method__, args: [draft, view])
|
428
|
+
log!(enter: __method__, args: [draft, view], level: 2)
|
426
429
|
fname = File.basename(draft)
|
427
430
|
noext = fname.sub(/.lt3$/, "")
|
428
431
|
vdir = @root/:views/view
|
@@ -435,18 +438,42 @@ class RuneBlog
|
|
435
438
|
end
|
436
439
|
|
437
440
|
def _post_metadata(draft, pdraft)
|
438
|
-
log!(enter: __method__, args: [draft, pdraft])
|
441
|
+
log!(enter: __method__, args: [draft, pdraft], level: 2)
|
442
|
+
# FIXME store this somewhere
|
443
|
+
fname = File.basename(draft) # 0001-this-is-a-post.lt3
|
444
|
+
nslug = fname.sub(/.lt3$/, "") # 0001-this-is-a-post
|
445
|
+
aslug = nslug.sub(/\d\d\d\d-/, "") # this-is-a-post
|
446
|
+
pnum = nslug[0..3] # 0001
|
439
447
|
Dir.chdir(pdraft) do
|
440
448
|
excerpt = File.read("teaser.txt")
|
449
|
+
date = _retrieve_metadata(:date)
|
450
|
+
longdate = ::Date.parse(date).strftime("%B %e, %Y")
|
441
451
|
title = _retrieve_metadata(:title)
|
442
|
-
|
443
|
-
|
452
|
+
tags = _retrieve_metadata(:tags)
|
453
|
+
vars = <<~LIVE
|
454
|
+
.set post.num = #{pnum}
|
455
|
+
.heredoc post.aslug
|
456
|
+
#{aslug}
|
457
|
+
.end
|
458
|
+
.heredoc title
|
459
|
+
#{title.chomp}
|
460
|
+
.end
|
461
|
+
.heredoc post.tags
|
462
|
+
#{tags.join(" ")}
|
463
|
+
.end
|
464
|
+
.heredoc teaser
|
465
|
+
#{excerpt.chomp}
|
466
|
+
.end
|
467
|
+
.heredoc longdate
|
468
|
+
#{longdate}
|
469
|
+
.end
|
470
|
+
LIVE
|
444
471
|
File.open(pdraft/"vars.lt3", "w") {|f| f.puts vars }
|
445
472
|
end
|
446
473
|
end
|
447
474
|
|
448
475
|
def copy_widget_html(view)
|
449
|
-
log!(enter: __method__)
|
476
|
+
log!(enter: __method__, level: 2)
|
450
477
|
vdir = @root/:views/view
|
451
478
|
remote = vdir/:remote
|
452
479
|
wdir = vdir/:themes/:standard/:widgets
|
@@ -457,12 +484,15 @@ class RuneBlog
|
|
457
484
|
create_dirs(rem)
|
458
485
|
files = Dir[w/"*"]
|
459
486
|
files = files.select {|x| x =~ /(html|css)$/ }
|
460
|
-
|
487
|
+
# files.each {|f| STDERR.puts " #{f.inspect}" }
|
488
|
+
tag = File.basename(w)
|
489
|
+
# STDERR.puts "--- tag: #{tag.inspect}"
|
490
|
+
files.each {|file| system!("cp #{file} #{rem}", show: (tag == "zzz")) }
|
461
491
|
end
|
462
492
|
end
|
463
493
|
|
464
494
|
def _handle_post(draft, view)
|
465
|
-
log!(enter: __method__, args: [draft, view])
|
495
|
+
log!(enter: __method__, args: [draft, view], level: 2)
|
466
496
|
# break into separate methods?
|
467
497
|
|
468
498
|
fname = File.basename(draft) # 0001-this-is-a-post.lt3
|
@@ -491,7 +521,7 @@ class RuneBlog
|
|
491
521
|
end
|
492
522
|
|
493
523
|
def generate_post(draft)
|
494
|
-
log!(enter: __method__, args: [draft])
|
524
|
+
log!(enter: __method__, args: [draft], level: 1)
|
495
525
|
views = _get_views(draft)
|
496
526
|
views.each do |view|
|
497
527
|
_handle_post(draft, view)
|
@@ -500,7 +530,7 @@ class RuneBlog
|
|
500
530
|
end
|
501
531
|
end
|
502
532
|
|
503
|
-
def
|
533
|
+
def OLD_index_entry(view, meta)
|
504
534
|
log!(enter: __method__, args: [view, meta])
|
505
535
|
debug "=== index_entry #{view.to_s.inspect} #{meta.num} #{meta.title.inspect}"
|
506
536
|
check_meta(meta, "index_entry1")
|
@@ -537,7 +567,7 @@ class RuneBlog
|
|
537
567
|
end
|
538
568
|
|
539
569
|
def remove_post(num)
|
540
|
-
log!(enter: __method__, args: [num])
|
570
|
+
log!(enter: __method__, args: [num], level: 1)
|
541
571
|
raise ArgumentError unless num.is_a?(Integer)
|
542
572
|
# FIXME update original draft .views
|
543
573
|
tag = prefix(num)
|
@@ -554,7 +584,7 @@ class RuneBlog
|
|
554
584
|
end
|
555
585
|
|
556
586
|
def undelete_post(num)
|
557
|
-
log!(enter: __method__, args: [num])
|
587
|
+
log!(enter: __method__, args: [num], level: 1)
|
558
588
|
raise ArgumentError unless num.is_a?(Integer)
|
559
589
|
files = Find.find(@root/:views).to_a
|
560
590
|
tag = prefix(num)
|
@@ -570,14 +600,14 @@ class RuneBlog
|
|
570
600
|
end
|
571
601
|
|
572
602
|
def delete_draft(num)
|
573
|
-
log!(enter: __method__, args: [num])
|
603
|
+
log!(enter: __method__, args: [num], level: 1)
|
574
604
|
raise ArgumentError unless num.is_a?(Integer)
|
575
605
|
tag = prefix(num)
|
576
606
|
system!("rm -rf #@root/drafts/#{tag}-*")
|
577
607
|
end
|
578
608
|
|
579
609
|
def make_slug(meta)
|
580
|
-
log!(enter: __method__, args: [meta])
|
610
|
+
log!(enter: __method__, args: [meta], level: 3)
|
581
611
|
raise ArgumentError unless meta.title.is_a?(String)
|
582
612
|
label = '%04d' % meta.num # FIXME can do better
|
583
613
|
slug0 = meta.title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
|
data/lib/runeblog_version.rb
CHANGED
data/lib/view.rb
CHANGED
@@ -8,7 +8,7 @@ class RuneBlog::View
|
|
8
8
|
include RuneBlog::Helpers
|
9
9
|
|
10
10
|
def initialize(name)
|
11
|
-
log!(enter: __method__, args: [name])
|
11
|
+
log!(enter: __method__, args: [name], level: 3)
|
12
12
|
raise NoBlogAccessor if RuneBlog.blog.nil?
|
13
13
|
@blog = RuneBlog.blog
|
14
14
|
@name = name
|
@@ -17,27 +17,23 @@ class RuneBlog::View
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def dir
|
20
|
-
log!(enter: __method__)
|
21
20
|
@blog.root + "/views/#@name/"
|
22
21
|
end
|
23
22
|
|
24
23
|
def local_index
|
25
|
-
log!(enter: __method__)
|
26
24
|
dir + "/remote/index.html"
|
27
25
|
end
|
28
26
|
|
29
27
|
def index
|
30
|
-
log!(enter: __method__)
|
31
28
|
dir + "index.html"
|
32
29
|
end
|
33
30
|
|
34
31
|
def to_s
|
35
|
-
log!(enter: __method__)
|
36
32
|
@name
|
37
33
|
end
|
38
34
|
|
39
35
|
def publishable_files
|
40
|
-
log!(enter: __method__)
|
36
|
+
log!(enter: __method__, level: 2)
|
41
37
|
vdir = dir()
|
42
38
|
remote = local_index()
|
43
39
|
files = [remote]
|
@@ -55,12 +51,10 @@ class RuneBlog::View
|
|
55
51
|
end
|
56
52
|
|
57
53
|
def can_publish?
|
58
|
-
log!(enter: __method__)
|
59
54
|
@can_publish
|
60
55
|
end
|
61
56
|
|
62
57
|
def recent?(file)
|
63
|
-
log!(enter: __method__, args: [file])
|
64
58
|
File.mtime(file) > File.mtime("#{self.dir()}/last_published")
|
65
59
|
rescue
|
66
60
|
true
|