runeblog 0.2.5 → 0.2.10

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
  SHA256:
3
- metadata.gz: b72b0b4ca22d08e40c691a27c1a9affa94dc9c3f8ff1063d85f7b72be8b83838
4
- data.tar.gz: d1919b3fef470e70acb7b7f8cc5f36f6ed7cb58176ee36e424e09691e83bd495
3
+ metadata.gz: a037d087baf23e47f7b3c254dac3348048cc9c498ad439a5f235149b9bbf96cb
4
+ data.tar.gz: f82a11b32ee3eb3738abdc1a60f3fc1606efb5252a29f5902d53591117199c6c
5
5
  SHA512:
6
- metadata.gz: 9a4feafd8e972f87280c3f4fbe43321d62de61a6eb9913deef08790e967c94d09fd2f451e7235f3cc4cc0620dd92087cb0c39ef6bb1fed6afe6a197fc1fc5450
7
- data.tar.gz: d5a9fec4a3412ff28a1acf607f60614a1c3ed4d1fdbdf43747b5250e4f6930503028ad8ba2d866ea4c00695b6b81bf52a376e9e642b906427f84bb09a5711718
6
+ metadata.gz: 9fa1d23bd68596356383676b5d4c5c9fba04afaba2d98ccf8bb1d27fb4b68aba8b9a1078aaebcc7a61cefb8d8bb5102e51d09ecd68e82ce436afaa734c028862
7
+ data.tar.gz: aae6ba4be7009d1cfcc7461f6dfb5f4459d880b796a7842e67050863e6f48d9ede6923a8995c4945a0923153b7f97c051f18691f8e0d343ed450dcba586c88e0
Binary file
@@ -38,7 +38,7 @@ exit unless rc
38
38
  return false
39
39
  end
40
40
 
41
- def livetext(src, dst=nil)
41
+ def livetext(src, dst=nil, dir=".")
42
42
  log!(enter: __method__, args: [src, dst])
43
43
  src << ".lt3" unless src.end_with?(".lt3")
44
44
  if dst
@@ -47,7 +47,21 @@ exit unless rc
47
47
  dst = src.sub(/.lt3$/, "")
48
48
  end
49
49
  # return unless stale?(src, dst)
50
- system("livetext #{src} >#{dst}")
50
+ Dir.chdir(dir) { system("livetext #{src} >#{dst}") }
51
+ end
52
+
53
+ def livetext!(src, dst=nil, dir=".")
54
+ log!(enter: __method__, args: [src, dst])
55
+ src << ".lt3" unless src.end_with?(".lt3")
56
+ if dst
57
+ dst << ".html" unless dst.end_with?(".html")
58
+ else
59
+ dst = src.sub(/.lt3$/, "")
60
+ end
61
+ # return unless stale?(src, dst)
62
+ STDERR.puts "-- livetext #{src} >#{dst} \n in: #{Dir.pwd}\n from: #{caller[0]}"
63
+ Dir.chdir(dir) { system("livetext #{src} >#{dst}") }
64
+ STDERR.puts "... completed"
51
65
  end
52
66
 
53
67
  def get_root
@@ -423,6 +423,7 @@ def sidebar
423
423
  _out %[<div class="col-lg-3 col-md-3 col-sm-3 col-xs-12">]
424
424
  _args do |token|
425
425
  tag = token.chomp.strip.downcase
426
+ # Doesn't handle "split personality" widgets yet
426
427
  Dir.chdir("widgets/#{tag}") do
427
428
  livetext tag, "card-#{tag}.html"
428
429
  _include_file "card-#{tag}.html"
@@ -447,59 +448,43 @@ def script
447
448
  _out %[<script src="#{url}" integrity="#{integ}" crossorigin="#{cross}"></script>]
448
449
  end
449
450
 
450
-
451
- ### How this next bit works:
452
- ###
453
- ### all_teasers will call _find_recent_posts
454
- ###
455
- ### _find_recent_posts will search higher in the directory structure
456
- ### for where the posts are (0001, 0002, ...) NOTE: This implies you
457
- ### must be in some specific place when this code is run.
458
- ### It returns the 20 most recent posts.
459
- ###
460
- ### all_teasers will then pick a small number of posts and call _teaser
461
-
462
- ### on each one. (The code in _teaser really belongs in a small template
463
- ### somewhere.)
464
- ###
465
-
466
- def _find_recent_posts
467
- @vdir = _var(:FileDir).match(%r[(^.*/views/.*?)/])[1]
468
- posts = nil
469
- dir_posts = @vdir + "/posts"
470
- entries = Dir.entries(dir_posts)
471
- posts = entries.grep(/^\d\d\d\d/).map {|x| dir_posts + "/" + x }
472
- posts.select! {|x| File.directory?(x) }
473
- # directories that start with four digits
474
- posts = posts.sort {|a, b| b.to_i <=> a.to_i } # sort descending
475
- posts[0..19] # return 20 at most
476
- end
477
-
478
- def all_teasers
479
- open = <<-HTML
480
- <section class="posts">
481
- HTML
482
- close = <<-HTML
483
- </section>
484
- HTML
485
-
486
- text = <<-HTML
487
- <html>
488
- <head><link rel="stylesheet" href="etc/blog.css"></head>
489
- <body>
490
- HTML
491
- posts = _find_recent_posts
492
- wanted = [5, posts.size].min # estimate how many we want?
493
- enum = posts.each
494
- wanted.times do
495
- postid = File.basename(enum.next)
496
- postid = postid.to_i
497
- text << _teaser(postid) # side effect! calls _out
498
- end
499
- text << "</body></html>"
500
- File.write("recent.html", text)
501
- _out %[<iframe id="main" style="width: 100vw; height: 100vh; position: relative;" src='recent.html' width=100% frameborder="0" allowfullscreen></iframe>]
502
- end
451
+ # def _find_recent_posts
452
+ # @vdir = _var(:FileDir).match(%r[(^.*/views/.*?)/])[1]
453
+ # posts = nil
454
+ # dir_posts = @vdir + "/posts"
455
+ # entries = Dir.entries(dir_posts)
456
+ # posts = entries.grep(/^\d\d\d\d/).map {|x| dir_posts + "/" + x }
457
+ # posts.select! {|x| File.directory?(x) }
458
+ # # directories that start with four digits
459
+ # posts = posts.sort {|a, b| b.to_i <=> a.to_i } # sort descending
460
+ # posts[0..19] # return 20 at most
461
+ # end
462
+ #
463
+ # def all_teasers
464
+ # open = <<-HTML
465
+ # <section class="posts">
466
+ # HTML
467
+ # close = <<-HTML
468
+ # </section>
469
+ # HTML
470
+ #
471
+ # text = <<-HTML
472
+ # <html>
473
+ # <head><link rel="stylesheet" href="etc/blog.css"></head>
474
+ # <body>
475
+ # HTML
476
+ # posts = _find_recent_posts
477
+ # wanted = [5, posts.size].min # estimate how many we want?
478
+ # enum = posts.each
479
+ # wanted.times do
480
+ # postid = File.basename(enum.next)
481
+ # postid = postid.to_i
482
+ # text << _teaser(postid) # side effect! calls _out
483
+ # end
484
+ # text << "</body></html>"
485
+ # File.write("recent.html", text)
486
+ # _out %[<iframe id="main" style="width: 100vw; height: 100vh; position: relative;" src='recent.html' width=100% frameborder="0" allowfullscreen></iframe>]
487
+ # end
503
488
 
504
489
  def _post_lookup(postid) # side-effect
505
490
  # .. = templates, ../.. = views/thisview
@@ -521,21 +506,21 @@ def _interpolate(str, context) # FIXME move this later
521
506
  eval(wrapped, context)
522
507
  end
523
508
 
524
- def _teaser(slug)
525
- id = slug.to_i
526
- text = nil
527
- post_entry_name = @theme + "blog/post_entry.lt3"
528
- @_post_entry ||= File.read(post_entry_name)
529
- vp = _post_lookup(id)
530
- nslug, aslug, title, date, teaser_text =
531
- vp.nslug, vp.aslug, vp.title, vp.date, vp.teaser_text
532
- path = vp.path
533
- url = "#{path}/#{aslug}.html" # Should be relative to .blogs!! FIXME
534
- date = Date.parse(date)
535
- date = date.strftime("%B %e<br>%Y")
536
- text = _interpolate(@_post_entry, binding)
537
- text
538
- end
509
+ # def _teaser(slug)
510
+ # id = slug.to_i
511
+ # text = nil
512
+ # post_entry_name = @theme + "blog/post_entry.lt3"
513
+ # @_post_entry ||= File.read(post_entry_name)
514
+ # vp = _post_lookup(id)
515
+ # nslug, aslug, title, date, teaser_text =
516
+ # vp.nslug, vp.aslug, vp.title, vp.date, vp.teaser_text
517
+ # path = vp.path
518
+ # url = "#{path}/#{aslug}.html" # Should be relative to .blogs!! FIXME
519
+ # date = Date.parse(date)
520
+ # date = date.strftime("%B %e<br>%Y")
521
+ # text = _interpolate(@_post_entry, binding)
522
+ # text
523
+ # end
539
524
 
540
525
  def _card_generic(card_title:, middle:, extra: "")
541
526
  front = <<-HTML
@@ -1,6 +1,6 @@
1
1
  unless self.respond_to?("log!")
2
2
  $logging = true
3
- $log = File.new("/tmp/runeblog}.log","w")
3
+ $log = File.new("/tmp/runeblog.log","w")
4
4
 
5
5
  def log!(str: "", enter: nil, args: [], pwd: false, dir: false)
6
6
  return unless $logging
@@ -31,28 +31,28 @@ unless self.respond_to?("log!")
31
31
  $log = File.new("/tmp/runeblog.log","a")
32
32
  end
33
33
 
34
- def log(str: "", enter: nil, args: [], pwd: false, dir: false)
35
- return unless $logging
36
- time = Time.now.strftime("%H:%M:%S")
37
- meth = ""
38
- meth = "#{enter}" if enter
39
- para = " args: #{args.inspect[1..-2]}"
40
- source = caller[0].sub(/.*\//, " in ").sub(/:/, " line ").sub(/:.*/, "")
41
- source = " in #{source} (probably liveblog.rb)" if source.include? "(eval)"
42
- str = " ... #{str}" unless str.empty?
43
- indent = " "*12
44
- STDERR.puts "#{time} #{str} #{meth}"
45
- STDERR.puts "#{indent} #{source}"
46
- STDERR.puts "#{indent} pwd = #{Dir.pwd} " if pwd
47
- if dir
48
- files = (Dir.entries('.') - %w[. ..]).join(" ")
49
- STDERR.puts "#{indent} dir/* = #{files}"
50
- end
51
- STDERR.puts "#{indent} #{para} " unless args.empty?
52
- # STDERR.puts "#{indent} livetext params = #{livedata.inpect} " unless livedata.nil?
53
- STDERR.puts
54
- # $log.close
55
- # $log = File.new("/tmp/runeblog.log","a")
56
- end
34
+ # def log(str: "", enter: nil, args: [], pwd: false, dir: false)
35
+ # return unless $logging
36
+ # time = Time.now.strftime("%H:%M:%S")
37
+ # meth = ""
38
+ # meth = "#{enter}" if enter
39
+ # para = " args: #{args.inspect[1..-2]}"
40
+ # source = caller[0].sub(/.*\//, " in ").sub(/:/, " line ").sub(/:.*/, "")
41
+ # source = " in #{source} (probably liveblog.rb)" if source.include? "(eval)"
42
+ # str = " ... #{str}" unless str.empty?
43
+ # indent = " "*12
44
+ # STDERR.puts "#{time} #{str} #{meth}"
45
+ # STDERR.puts "#{indent} #{source}"
46
+ # STDERR.puts "#{indent} pwd = #{Dir.pwd} " if pwd
47
+ # if dir
48
+ # files = (Dir.entries('.') - %w[. ..]).join(" ")
49
+ # STDERR.puts "#{indent} dir/* = #{files}"
50
+ # end
51
+ # STDERR.puts "#{indent} #{para} " unless args.empty?
52
+ # # STDERR.puts "#{indent} livetext params = #{livedata.inpect} " unless livedata.nil?
53
+ # STDERR.puts
54
+ # # $log.close
55
+ # # $log = File.new("/tmp/runeblog.log","a")
56
+ # end
57
57
  end
58
58
 
@@ -59,7 +59,6 @@ class RuneBlog
59
59
  raise BlogRepoAlreadyExists if Dir.exist?(root)
60
60
  create_dirs(root)
61
61
  Dir.chdir(root) do
62
- # puts " pwd = #{Dir.pwd} Trying: cp #{RuneBlog::Path}/../empty_view.tgz ."
63
62
  system("cp #{RuneBlog::Path}/../empty_view.tgz .")
64
63
  create_dirs(:drafts, :views)
65
64
  new_sequence
@@ -108,7 +107,6 @@ class RuneBlog
108
107
  val = self.instance_variable_get(iv)
109
108
  str << "#{iv}: #{val} "
110
109
  end
111
- # str << "]]"
112
110
  str
113
111
  end
114
112
 
@@ -200,32 +198,15 @@ class RuneBlog
200
198
  vdir = arg.dup
201
199
  raise DirAlreadyExists(vdir) if Dir.exist?(vdir)
202
200
 
203
- # puts "cv: pwd = #{Dir.pwd} file = #{`ls`}"
204
- Dir.chdir(@root) do
205
- # puts "---- (#{arg}) tar operation..."
206
-
207
- # system("bash")
208
- cmd1 = "tar zxvf empty_view.tgz >/dev/null 2>&1"
209
- cmd2 = "cp -r empty_view views/#{arg}"
210
- system(cmd1)
211
- # puts " pwd = #{Dir.pwd}"
212
- # puts " . => #{`echo *`}"
213
- # puts " ./views => #{`ls views`}"
214
- # puts " #{cmd1}\n #{cmd2}"
215
- system(cmd2)
216
- end
217
- # create_dirs(vdir)
201
+ Dir.chdir(@root) do
202
+ cmd1 = "tar zxvf empty_view.tgz >/dev/null 2>&1"
203
+ cmd2 = "cp -r empty_view views/#{arg}"
204
+ system(cmd1)
205
+ system(cmd2)
206
+ end
218
207
 
219
- # puts "vdir = #{vdir} pwd = #{Dir.pwd}"
220
208
  Dir.chdir("#@root/views/#{vdir}") do
221
- # system("bash")
222
- # x = RuneBlog::Default
223
- # copy!("#{Themes}", "themes")
224
- # create_dirs(:assets, :posts, :staging, "remote/permalink", "remote/navbar")
225
- # livetext "themes/standard/etc/blog.css.lt3" # strip ext
226
- # _copy_to_staging
227
- # _copy_to_remote
228
- livetext "themes/standard/blog/generate", "remote/index"
209
+ livetext "generate", "../../../remote/index", "themes/standard/blog"
229
210
  pub = "user: xxx\nserver: xxx\ndocroot: xxx\npath: xxx\nproto: xxx\n"
230
211
  dump(pub, "publish")
231
212
 
@@ -257,7 +238,6 @@ class RuneBlog
257
238
 
258
239
  def post_lookup(postid) # side-effect?
259
240
  log!(enter: __method__, args: [postid])
260
- # .. = templates, ../.. = views/thisview
261
241
  slug = title = date = teaser_text = nil
262
242
 
263
243
  dir_posts = @vdir + "/posts"
@@ -281,7 +261,6 @@ class RuneBlog
281
261
  nslug, aslug, title, date, teaser_text =
282
262
  vp.nslug, vp.aslug, vp.title, vp.date, vp.teaser_text
283
263
  path = vp.path
284
- # url = "#{path}/#{aslug}.html" # Should be relative to .blogs!! FIXME
285
264
  url = "#{aslug}.html" # Should be relative to .blogs!! FIXME
286
265
  date = ::Date.parse(date)
287
266
  date = date.strftime("%B %e<br>%Y")
@@ -379,7 +358,7 @@ class RuneBlog
379
358
 
380
359
  def generate_view(view) # huh?
381
360
  log!(enter: __method__, args: [view])
382
- generate_index(view)
361
+ generate_index(view) # recent posts (recent.html)
383
362
  Dir.chdir(@root + "/views/#{view}/themes/standard") do
384
363
  livetext "blog/generate.lt3", "../../remote/index.html"
385
364
  end
@@ -396,22 +375,6 @@ class RuneBlog
396
375
  views
397
376
  end
398
377
 
399
- # Remember: A post in multiple views will trigger multiple
400
- # views needing to be rebuilt (and published)
401
-
402
- # generate a post:
403
- # given draft 9999-title.lt3
404
- # create VIEW/posts/9999-title/index.lt3
405
- # LATER: metadata!! or is it in head?
406
- # Generate VIEW/posts/9999-title/head.lt3?
407
- # livetext draft_wrapper_plain.lt3 >generated/posts/plain-title.html # unframed
408
- # livetext draft_generate.lt3 >generated/posts/real-title.html # framed
409
- # livetext draft_wrapper_perma.lt3 >generated/posts/perma-title.html # permaframed
410
- #
411
- # Generate associated views:
412
- # livetext ??/recent.lt3 >VIEW/working/recent.html
413
- # livetext VIEW/blog/generate.lt3 ??
414
-
415
378
  def _copy_get_dirs(draft, view)
416
379
  log!(enter: __method__, args: [draft, view])
417
380
  fname = File.basename(draft)
@@ -425,48 +388,73 @@ class RuneBlog
425
388
  [noext, viewdir, slugdir, aslug, theme]
426
389
  end
427
390
 
391
+ def _handle_post(draft, view)
392
+ noext, viewdir, slugdir, aslug, @theme = _copy_get_dirs(draft, view)
393
+ html = noext[5..-1] # strip "nnnn-"
394
+ remote = viewdir + "/remote"
395
+ Dir.chdir(slugdir) do
396
+ copy(draft, ".") # copy source into slugdir
397
+ lt3 = draft.split("/")[-1] # Remember: Some posts may be in more than
398
+ copy(lt3, remote) # one view -- careful with links back
399
+ STDERR.puts "1 pwd = #{Dir.pwd}"
400
+ livetext! draft, html
401
+ STDERR.puts " copy #{html}, #{remote}/#{html}"
402
+ copy(html, "#{remote}/#{html}")
403
+
404
+ title_line = File.readlines(draft).grep(/^.title /).first
405
+ title = title_line.split(" ", 2)[1]
406
+ excerpt = File.read("teaser.txt")
407
+ vars = %[.set title="#{title.chomp}"\n] +
408
+ %[.set teaser="#{excerpt.chomp}"]
409
+ theme = "#{viewdir}/themes/standard"
410
+ File.open("#{theme}/post/vars.lt3", "w") {|f| f.puts vars }
411
+
412
+ livetext! "generate.lt3", "#{remote}/html", "#{theme}/post"
413
+ copy("#{remote}/#{html}", "#{theme}/post")
414
+
415
+ livetext! "permalink.lt3", "#{remote}/permalink/#{html}", "#{theme}/post"
416
+ log!(str: "About to enter remote/", pwd: true, dir: true)
417
+ Dir.chdir(remote) do
418
+ log!(str: "Now in remote/", pwd: true, dir: true)
419
+ system("cp -r ../themes/standard/widgets .")
420
+ log!(str: "finished with remote/", pwd: true, dir: true)
421
+ end
422
+ end
423
+ end
424
+
428
425
  def generate_post(draft)
429
426
  log!(enter: __method__, args: [draft])
430
427
  views = _get_views(draft)
431
428
  views.each do |view|
432
- noext, viewdir, slugdir, aslug, @theme = _copy_get_dirs(draft, view)
433
- # staging = viewdir + "/staging"
434
- remote = viewdir + "/remote"
435
- Dir.chdir(slugdir) do
436
- copy(draft, ".")
437
- lt3 = draft.split("/")[-1]
438
- # Remember: Some posts may be in more than one view -- careful with links back
439
- # system("livetext #{draft} >staging/#{name}/index.html") # permalink?
440
- # copy!("#{@theme}/*", "#{staging}")
441
- # copy(lt3, staging)
442
- copy(lt3, remote)
443
- html = noext[5..-1]
444
- livetext draft, html # livetext "foobar.lt3", "foobar.html"
445
- # copy(html, "../../staging/post/index.html")
446
- copy(html, "../../remote/post/index.html")
447
- title_line = File.readlines(draft).grep(/^.title /).first
448
- title = title_line.split(" ", 2)[1]
449
- excerpt = File.read("teaser.txt")
450
- vars = %[.set title="#{title.chomp}"\n] +
451
- %[.set teaser="#{excerpt.chomp}"]
452
- theme = "../../theme/standard"
453
- File.open("vars.lt3", "w") {|f| f.puts vars }
454
- livetext "#{theme}/post/generate.lt3", "#{remote}/#{html}"
455
- livetext "#{theme}/post/permalink.lt3", "#{remote}/permalink/#{html}"
456
- # puts <<-TEXT
457
- # File.open("vars.lt3", "w") {|f| f.puts vars }
458
- # livetext "../post/generate.lt3", "#{remote}/#{html}"
459
- # livetext "../post/permalink.lt3", "#{remote}/permalink/#{html}"
460
- # TEXT
461
- # system("bash")
462
- log!(str: "About to enter remote/", pwd: true, dir: true)
463
- Dir.chdir(remote) do
464
- log!(str: "Now in remote/", pwd: true, dir: true)
465
- system("cp -r ../themes/standard/widgets .")
466
- log!(str: "finished with remote/", pwd: true, dir: true)
467
- end
468
- end
429
+ _handle_post(draft, view)
469
430
  end
431
+ # noext, viewdir, slugdir, aslug, @theme = _copy_get_dirs(draft, view)
432
+ # remote = viewdir + "/remote"
433
+ # Dir.chdir(slugdir) do
434
+ # copy(draft, ".")
435
+ # lt3 = draft.split("/")[-1]
436
+ # # Remember: Some posts may be in more than one view -- careful with links back
437
+ # copy(lt3, remote)
438
+ # html = noext[5..-1] # strip "nnnn-"
439
+ # livetext! draft, html
440
+ # copy(html, "#{remote}/#{html}")
441
+ # title_line = File.readlines(draft).grep(/^.title /).first
442
+ # title = title_line.split(" ", 2)[1]
443
+ # excerpt = File.read("teaser.txt")
444
+ # vars = %[.set title="#{title.chomp}"\n] +
445
+ # %[.set teaser="#{excerpt.chomp}"]
446
+ # theme = "#{viewdir}/themes/standard"
447
+ # File.open("#{theme}/post/vars.lt3", "w") {|f| f.puts vars }
448
+ # livetext! "generate.lt3", "#{remote}/html", "#{theme}/post"
449
+ # copy("#{remote}/html", "#{theme}/post")
450
+ # livetext! "permalink.lt3", "#{remote}/permalink/#{html}", "#{theme}/post"
451
+ # log!(str: "About to enter remote/", pwd: true, dir: true)
452
+ # Dir.chdir(remote) do
453
+ # log!(str: "Now in remote/", pwd: true, dir: true)
454
+ # system("cp -r ../themes/standard/widgets .")
455
+ # log!(str: "finished with remote/", pwd: true, dir: true)
456
+ # end
457
+ # end
470
458
  end
471
459
 
472
460
  def relink
@@ -2,7 +2,7 @@
2
2
  if ! (Object.constants.include?(:RuneBlog) && RuneBlog.constants.include?(:Path))
3
3
 
4
4
  class RuneBlog
5
- VERSION = "0.2.5"
5
+ VERSION = "0.2.10"
6
6
 
7
7
  path = Gem.find_files("runeblog").grep(/runeblog-/).first
8
8
  Path = File.dirname(path)
@@ -30,6 +30,8 @@ spec = Gem::Specification.new do |s|
30
30
  test = Find.find("test").to_a
31
31
  misc = %w[./README.lt3 ./README.md ./runeblog.gemspec]
32
32
 
33
+ # system("tar zcvf empty_view.tgz empty_view")
34
+
33
35
  s.files = main + misc + test + ["empty_view.tgz"]
34
36
  s.homepage = 'https://github.com/Hal9000/runeblog'
35
37
  s.license = "Ruby"
@@ -21,7 +21,7 @@ end
21
21
  def make_post(x, title, teaser, body, views=[])
22
22
  # STDERR.puts "\n========= make_post '#{title}'"
23
23
  print "."
24
- num = x.create_new_post(title, true, teaser: teaser, body: body, other_views: views)
24
+ x.create_new_post(title, true, teaser: teaser, body: body, other_views: views)
25
25
  views.each {|view| x.generate_index(view) } # recent.html
26
26
  end
27
27
 
@@ -132,5 +132,6 @@ BODY
132
132
 
133
133
  x.change_view("around_austin")
134
134
 
135
+ puts
135
136
  puts Time.now
136
137
  puts
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runeblog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-26 00:00:00.000000000 Z
11
+ date: 2019-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: livetext