runeblog 0.2.6 → 0.2.11

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: 88eb977188fc29149692d23a5a8b08bdad83da5c9c105c39f1f0fc4bbf4a7483
4
- data.tar.gz: 4f3423490452d300b229c775632e5f10c09781e5e0bbb7dbcbd2183467e7ae54
3
+ metadata.gz: bbd97f1cfd9631550e0ef799e14f8c5dfd621d29c4231dfb9f5bbc0f065b436e
4
+ data.tar.gz: 449f13d68fc2a247e9e307083c7b0f4c9034bc4e85d307d7775d8a7a881284a7
5
5
  SHA512:
6
- metadata.gz: e446863886eed1c348fe9bbf5bdfa473d8154ccdec09fb6eca03f07d6cd4a453f8aad9f797dd2c453904c5e1edec8f8a37bbe6c4daca731faed29a7150efe32d
7
- data.tar.gz: 50c8b29750e8844771ff218f7ce063c2cc282dff65e555e9e850cdee8de1c8bd85e4d5e46787a67822e9b5a3156a06a08362cf63aa27b121e90941c03358658a
6
+ metadata.gz: 476e0804dd0085123c19019548bd7803ccfeff526d27e70b5bab1dcf3904fe8ec414b69a9562b34a9fd2e0574843cdbe66cdf9ed226b94d0d2aca92aebb1a7b5
7
+ data.tar.gz: 598f65529e5a1d52558142a3ad5230fa53bab77f12325efedc9a6c9f688a737633b4937088bf234e5e5b2fbee8bb17fc0778968e7547797ded0d116dbe024abc
Binary file
@@ -3,6 +3,8 @@ require 'fileutils'
3
3
 
4
4
  # Home = Dir.pwd # unless Home
5
5
 
6
+ LEXT = ".lt3"
7
+
6
8
  module RuneBlog::Helpers
7
9
 
8
10
  def copy(src, dst)
@@ -31,23 +33,57 @@ exit unless rc
31
33
  # end
32
34
  end
33
35
 
34
- def stale?(src, dst)
36
+ def stale?(src, dst, force = false)
35
37
  log!(enter: __method__, args: [src, dst])
38
+ raise "Source #{src} not found in #{Dir.pwd}" unless File.exist?(src)
39
+ return true if force
36
40
  return true unless File.exist?(dst)
37
41
  return true if File.mtime(src) > File.mtime(dst)
38
42
  return false
39
43
  end
40
44
 
41
- def livetext(src, dst=nil)
42
- log!(enter: __method__, args: [src, dst])
43
- src << ".lt3" unless src.end_with?(".lt3")
44
- if dst
45
- dst << ".html" unless dst.end_with?(".html")
46
- else
47
- dst = src.sub(/.lt3$/, "")
45
+ # def livetext(src, dst=nil, dir=".")
46
+ # log!(enter: __method__, args: [src, dst])
47
+ # src << ".lt3" unless src.end_with?(".lt3")
48
+ # if dst
49
+ # dst << ".html" unless dst.end_with?(".html")
50
+ # else
51
+ # dst = src.sub(/.lt3$/, "")
52
+ # end
53
+ ## return unless stale?(src, dst)
54
+ # Dir.chdir(dir) { system("livetext #{src} >#{dst}") }
55
+ # end
56
+ #
57
+ # def livetext!(src, dst=nil, dir=".")
58
+ # log!(enter: __method__, args: [src, dst])
59
+ # src << ".lt3" unless src.end_with?(".lt3")
60
+ # if dst
61
+ # dst << ".html" unless dst.end_with?(".html")
62
+ # else
63
+ # dst = src.sub(/.lt3$/, "")
64
+ # end
65
+ ## return unless stale?(src, dst)
66
+ #STDERR.puts "-- livetext #{src} >#{dst} \n in: #{Dir.pwd}\n from: #{caller[0]}"
67
+ # Dir.chdir(dir) { system("livetext #{src} >#{dst}") }
68
+ #STDERR.puts "... completed"
69
+ # end
70
+
71
+ def xlate(cwd: Dir.pwd, src:,
72
+ dst: (strip = true; src.sub(/.lt3$/,"")),
73
+ copy: nil, debug: false, force: false)
74
+ src += LEXT unless src.end_with?(LEXT)
75
+ dst += ".html" unless dst.end_with?(".html") || strip
76
+ Dir.chdir(cwd) do
77
+ return unless stale?(src, dst, force)
78
+ if debug
79
+ STDERR.puts "-- xlate #{src} >#{dst}"
80
+ STDERR.puts " in: #{Dir.pwd}"
81
+ STDERR.puts " from: #{caller[0]}"
82
+ STDERR.puts " copy: #{copy}" if copy
83
+ end
84
+ rc = system("livetext #{src} >#{dst}")
48
85
  end
49
- # return unless stale?(src, dst)
50
- system("livetext #{src} >#{dst}")
86
+ STDERR.puts "...completed (shell returned #{rc})" if debug
51
87
  end
52
88
 
53
89
  def get_root
@@ -236,23 +236,20 @@ def pin
236
236
  _optional_blank_line
237
237
  end
238
238
 
239
- def write_post
240
- raise "'post' was not called" unless @meta
241
- save = Dir.pwd
242
- @postdir.gsub!(/\/\//, "/") # FIXME unneeded?
243
- Dir.mkdir(@postdir) unless Dir.exist?(@postdir) # FIXME remember assets!
244
- Dir.chdir(@postdir)
245
- @meta.views = @meta.views.join(" ") if @meta.views.is_a? Array
246
- @meta.tags = @meta.tags.join(" ") if @meta.tags.is_a? Array
239
+ def _write_metadata
247
240
  File.write("teaser.txt", @meta.teaser)
248
-
249
241
  fields = [:num, :title, :date, :pubdate, :views, :tags]
250
-
251
242
  fname2 = "metadata.txt"
252
243
  f2 = File.open(fname2, "w") do |f2|
253
244
  fields.each {|fld| f2.puts "#{fld}: #{@meta.send(fld)}" }
254
245
  end
255
- Dir.chdir(save)
246
+ end
247
+
248
+ def write_post
249
+ raise "'post' was not called" unless @meta
250
+ @meta.views = @meta.views.join(" ") if @meta.views.is_a? Array
251
+ @meta.tags = @meta.tags.join(" ") if @meta.tags.is_a? Array
252
+ _write_metadata
256
253
  rescue => err
257
254
  puts "err = #{err}"
258
255
  puts err.backtrace.join("\n")
@@ -267,19 +264,25 @@ def teaser
267
264
  end
268
265
 
269
266
  def finalize
267
+ STDERR.puts :cp1
270
268
  unless @meta
271
269
  puts @live.body
272
270
  return
273
271
  end
272
+ STDERR.puts :cp4
274
273
  if @blog.nil?
275
274
  return @meta
276
275
  end
277
276
 
277
+ STDERR.puts :cp6
278
278
  @slug = @blog.make_slug(@meta)
279
+ STDERR.puts :cp7
279
280
  slug_dir = @slug
280
281
  @postdir = @blog.view.dir + "/posts/#{slug_dir}"
281
282
  STDERR.puts "--- finalize: pwd = #{Dir.pwd} postdir = #@postdir"
283
+ STDERR.puts :cp8
282
284
  write_post
285
+ STDERR.puts :cp9
283
286
  @meta
284
287
  end
285
288
 
@@ -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
 
@@ -60,7 +60,7 @@ class RuneBlog
60
60
  create_dirs(root)
61
61
  Dir.chdir(root) do
62
62
  system("cp #{RuneBlog::Path}/../empty_view.tgz .")
63
- create_dirs(:drafts, :views)
63
+ create_dirs(:drafts, :views, :posts)
64
64
  new_sequence
65
65
  end
66
66
  put_config(root: root)
@@ -99,6 +99,23 @@ class RuneBlog
99
99
  @post_tags = []
100
100
  end
101
101
 
102
+ def _deploy_local(dir)
103
+ log!(enter: __method__, args: [dir])
104
+ Dir.chdir(dir) do
105
+ views = File.readlines("metadata.txt").grep(/^.views /).first[7..-1].split
106
+ views.each {|v| system("cp *html #@root/views/#{v}/remote") }
107
+ end
108
+ end
109
+
110
+ def process_post(sourcefile)
111
+ log!(enter: __method__, args: [dir])
112
+ nslug = sourcefile.sub(/.lt3/, "")
113
+ dir = @root + "/posts/#{nslug}"
114
+ create_dir(dir)
115
+ xlate cwd: dir, src: sourcefile, debug: true
116
+ _deploy_local(dir)
117
+ end
118
+
102
119
  def inspect
103
120
  log!(enter: __method__)
104
121
  str = "blog: "
@@ -177,45 +194,59 @@ class RuneBlog
177
194
  Dir.exist?(DotDir) && File.exist?(DotDir + "/" + ConfigFile)
178
195
  end
179
196
 
180
- def _copy_to_staging
181
- copy!("themes/standard/", "staging/")
182
- copy!("themes/standard/widgets/", "staging/")
197
+ def make_dummy_publish_file(view_name)
198
+ log!(enter: __method__, args: [view_name])
199
+ vdir = "#@root/views/#{view_name}"
200
+ pub = [:user, :server, :docroot, :path, :proto]
201
+ pub = pub.map {|x| x.to_s + ": undefined" }
202
+ pub = pub.join("\n") + "\n"
203
+ dump(pub, "#{vdir}/publish")
183
204
  end
184
205
 
185
- def _copy_to_remote
186
- copy!("themes/standard/etc", "remote/")
187
- copy!("themes/standard/assets", "remote/")
188
- copy!("themes/standard/widgets", "remote/")
206
+ def mark_last_published(str)
207
+ log!(enter: __method__, args: [str])
208
+ dump(str, "last_published")
189
209
  end
190
210
 
191
- def create_view(arg)
192
- log!(enter: __method__, args: [arg])
193
- raise ArgumentError unless arg.is_a?(String) && ! arg.empty?
194
-
195
- names = self.views.map(&:to_s)
196
- raise ViewAlreadyExists(arg) if names.include?(arg)
197
-
198
- vdir = arg.dup
199
- raise DirAlreadyExists(vdir) if Dir.exist?(vdir)
211
+ def add_view(view_name)
212
+ log!(enter: __method__, args: [view_name])
213
+ view = RuneBlog::View.new(view_name)
214
+ @view = view # current view
215
+ @views << view # all views
216
+ view
217
+ end
200
218
 
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)
219
+ def make_empty_view_tree(view_name)
220
+ log!(enter: __method__, args: [view_name])
221
+ Dir.chdir(@root) do
222
+ cmd1 = "tar zxvf empty_view.tgz >/dev/null 2>&1"
223
+ cmd2 = "cp -r empty_view views/#{view_name}"
224
+ system(cmd1)
225
+ system(cmd2)
226
+ end
206
227
  end
207
228
 
208
- Dir.chdir("#@root/views/#{vdir}") do
209
- livetext "themes/standard/blog/generate", "remote/index"
210
- pub = "user: xxx\nserver: xxx\ndocroot: xxx\npath: xxx\nproto: xxx\n"
211
- dump(pub, "publish")
229
+ def check_valid_new_view(view_name)
230
+ log!(enter: __method__, args: [view_name])
231
+ raise ArgumentError unless view_name.is_a?(String)
232
+ raise ArgumentError if view_name.empty?
233
+ names = self.views.map(&:to_s)
234
+ bad = names.include?(view_name)
235
+ raise ViewAlreadyExists(view_name) if bad
236
+ vdir = "@root/views/#{view_name}"
237
+ raise DirAlreadyExists(view_name) if Dir.exist?(vdir)
238
+ return true # hm?
239
+ end
212
240
 
213
- view = RuneBlog::View.new(arg)
214
- self.view = view
215
- dump("Initial creation", "last_published")
216
- end
217
- @views << view
218
- @views
241
+ def create_view(view_name)
242
+ log!(enter: __method__, args: [view_name])
243
+ check_valid_new_view(view_name)
244
+ make_empty_view_tree(view_name)
245
+ # xlate cwd: "#@root/views/#{view_name}/themes/standard/blog",
246
+ # src: "generate", dst: "../../../remote/index"
247
+ make_dummy_publish_file(view_name)
248
+ mark_last_published("Initial creation")
249
+ add_view(view_name)
219
250
  end
220
251
 
221
252
  def delete_view(name, force = false)
@@ -304,7 +335,7 @@ class RuneBlog
304
335
  def create_new_post(title, testing = false, teaser: nil, body: nil, other_views: [])
305
336
  log!(enter: __method__, args: [title, testing, teaser, body, other_views])
306
337
  meta = nil
307
- Dir.chdir(self.view.dir) do
338
+ Dir.chdir("#@root/posts/") do
308
339
  post = Post.create(title: title, teaser: teaser, body: body, other_views: other_views)
309
340
  post.edit unless testing
310
341
  post.build
@@ -322,6 +353,7 @@ class RuneBlog
322
353
  sourcefile = "#@root/drafts/#{file}"
323
354
  result = system("#@editor #{sourcefile} +8") unless testing
324
355
  raise EditorProblem(sourcefile) unless result
356
+ process_post(sourcefile)
325
357
  nil
326
358
  rescue => err
327
359
  error(err)
@@ -358,10 +390,10 @@ class RuneBlog
358
390
 
359
391
  def generate_view(view) # huh?
360
392
  log!(enter: __method__, args: [view])
361
- generate_index(view)
362
- Dir.chdir(@root + "/views/#{view}/themes/standard") do
363
- livetext "blog/generate.lt3", "../../remote/index.html"
364
- end
393
+ generate_index(view) # recent posts (recent.html)
394
+ vdir = "#@root/views/#{view}"
395
+ xlate cwd: "#{vdir}/themes/standard",
396
+ src: "blog/generate.lt3", dst: "#{vdir}/remote/index.html"
365
397
  end
366
398
 
367
399
  def _get_views(draft)
@@ -388,36 +420,65 @@ class RuneBlog
388
420
  [noext, viewdir, slugdir, aslug, theme]
389
421
  end
390
422
 
423
+ def _post_metadata(draft, pdraft)
424
+ log!(enter: __method__, args: [draft, pdraft])
425
+ title_line = File.readlines(draft).grep(/^.title /).first
426
+ title = title_line.split(" ", 2)[1]
427
+ # pdir = "
428
+ Dir.chdir(pdraft) do
429
+ excerpt = File.read("teaser.txt")
430
+ vars = %[.set title="#{title.chomp}"\n] +
431
+ %[.set teaser="#{excerpt.chomp}"]
432
+ File.open("#{pdraft}/vars.lt3", "w") {|f| f.puts vars }
433
+ end
434
+ end
435
+
436
+ def copy_widget_html # FIXME make better?
437
+ log!(enter: __method__)
438
+ wdir = "../themes/standard/widgets"
439
+ widgets = Dir["#{wdir}/*"].select {|w| File.directory?(w) }
440
+ widgets.each do |w|
441
+ dir = File.basename(w)
442
+ rem = "#{remote}/#{w}"
443
+ create_dirs(rem)
444
+ system("cp #{w}/*html #{rem}")
445
+ end
446
+ end
447
+
448
+ def _handle_post(draft, view)
449
+ log!(enter: __method__, args: [draft, view])
450
+
451
+ fname = File.basename(draft) # 0001-this-is-a-post.lt3
452
+ nslug = fname.sub(/.lt3$/, "") # 0001-this-is-a-post
453
+ aslug = nslug.sub(/\d\d\d\d-/, "") # this-is-a-post
454
+ ahtml = aslug + ".html" # this-is-a-post.html
455
+ pdraft = "#@root/posts/#{nslug}"
456
+ remote = "#@root/views/#{view}/remote"
457
+ @theme = "#@root/views/#{view}/themes/standard"
458
+ # Step 1...
459
+ create_dirs(pdraft)
460
+ xlate cwd: pdraft, src: draft, dst: "guts.html"
461
+ _post_metadata(draft, pdraft)
462
+ # Step 2...
463
+ vposts = "#@root/views/#{view}/posts/"
464
+ copy!(pdraft, vposts) # ??
465
+ # Step 3..
466
+ copy(pdraft + "/guts.html", "#@theme/post")
467
+ copy(pdraft + "/vars.lt3", "#@theme/post")
468
+ # Step 4...
469
+ xlate cwd: "#{@theme}/post", src: "generate.lt3",
470
+ dst: "#{remote}/#{ahtml}", copy: "#{@theme}/post"
471
+ xlate cwd: "#{@theme}/post", src: "permalink.lt3",
472
+ dst: "#{remote}/permalink/#{ahtml}"
473
+ copy_widget_html
474
+ end
475
+
391
476
  def generate_post(draft)
392
477
  log!(enter: __method__, args: [draft])
393
478
  views = _get_views(draft)
394
- views.each do |view|
395
- noext, viewdir, slugdir, aslug, @theme = _copy_get_dirs(draft, view)
396
- remote = viewdir + "/remote"
397
- Dir.chdir(slugdir) do
398
- copy(draft, ".")
399
- lt3 = draft.split("/")[-1]
400
- # Remember: Some posts may be in more than one view -- careful with links back
401
- copy(lt3, remote)
402
- html = noext[5..-1]
403
- livetext draft, html # livetext "foobar.lt3", "foobar.html"
404
- copy(html, "../../remote/post/index.html")
405
- title_line = File.readlines(draft).grep(/^.title /).first
406
- title = title_line.split(" ", 2)[1]
407
- excerpt = File.read("teaser.txt")
408
- vars = %[.set title="#{title.chomp}"\n] +
409
- %[.set teaser="#{excerpt.chomp}"]
410
- theme = "../../theme/standard"
411
- File.open("vars.lt3", "w") {|f| f.puts vars }
412
- livetext "#{theme}/post/generate.lt3", "#{remote}/#{html}"
413
- livetext "#{theme}/post/permalink.lt3", "#{remote}/permalink/#{html}"
414
- log!(str: "About to enter remote/", pwd: true, dir: true)
415
- Dir.chdir(remote) do
416
- log!(str: "Now in remote/", pwd: true, dir: true)
417
- system("cp -r ../themes/standard/widgets .")
418
- log!(str: "finished with remote/", pwd: true, dir: true)
419
- end
420
- end
479
+ views.each do |view|
480
+ _handle_post(draft, view)
481
+ generate_view(view)
421
482
  end
422
483
  end
423
484
 
@@ -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.6"
5
+ VERSION = "0.2.11"
6
6
 
7
7
  path = Gem.find_files("runeblog").grep(/runeblog-/).first
8
8
  Path = File.dirname(path)
@@ -20,7 +20,7 @@ spec = Gem::Specification.new do |s|
20
20
  s.authors = ["Hal Fulton"]
21
21
  s.email = 'rubyhacker@gmail.com'
22
22
  s.executables << "blog"
23
- s.add_runtime_dependency 'livetext', '~> 0.8', '>= 0.8.92'
23
+ s.add_runtime_dependency 'livetext', '~> 0.8', '>= 0.8.93'
24
24
  s.add_runtime_dependency 'rubytext', '~> 0.1', '>= 0.1.16'
25
25
 
26
26
  # Files...
@@ -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
 
@@ -42,10 +42,6 @@ x = RuneBlog.new(".blogs")
42
42
 
43
43
  x.create_view("around_austin") # FIXME remember view title!
44
44
 
45
- # puts "=== about to call: x.generate_view('around_austin')"
46
- x.generate_view("around_austin")
47
- # puts "=== ...returned"
48
-
49
45
  # Hack:
50
46
  if File.exist?("publish")
51
47
  system("cp publish .blogs/views/around_austin/publish")
@@ -130,6 +126,8 @@ But I first heard of them
130
126
  in 2005.
131
127
  BODY
132
128
 
129
+ x.generate_view("around_austin")
130
+
133
131
  x.change_view("around_austin")
134
132
 
135
133
  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.6
4
+ version: 0.2.11
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-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: livetext
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '0.8'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.8.92
22
+ version: 0.8.93
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '0.8'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.8.92
32
+ version: 0.8.93
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rubytext
35
35
  requirement: !ruby/object:Gem::Requirement