runeblog 0.3.26 → 0.3.28

Sign up to get free protection for your applications and to get access to all the features.
data/lib/repl.rb CHANGED
@@ -39,7 +39,7 @@ module RuneBlog::REPL
39
39
 
40
40
  def cmd_config
41
41
  hash = {"Variables (general)" => "global.lt3",
42
- " View-specific" => "../../settings/view.txt",
42
+ " View-specific" => "../settings/view.txt",
43
43
  " Recent posts" => "../../settings/recent.txt",
44
44
  " Publishing" => "../../settings/publish.txt",
45
45
  "Configuration: enable/disable" => "../../settings/features.txt",
@@ -253,7 +253,6 @@ log! str: "=== ...finished!"
253
253
  name = @blog.view.name
254
254
  k, name = STDSCR.menu(title: "Views", items: viewnames, curr: n, wrap: true)
255
255
  return if name.nil?
256
- log! str: "cv Setting to #{name.inspect}"
257
256
  @blog.view = name
258
257
  # puts "\n ", fx(name, :bold), "\n"
259
258
  return
@@ -371,7 +370,8 @@ log! str: "cv Setting to #{name.inspect}"
371
370
 
372
371
  def cmd_list_views
373
372
  puts
374
- @blog.views.each do |v|
373
+ list = @blog.views
374
+ list.each do |v|
375
375
  v = v.to_s
376
376
  title = view2title(v)
377
377
  v = fx(v, :bold) if v == @blog.view.name
@@ -412,22 +412,16 @@ log! str: "cv Setting to #{name.inspect}"
412
412
  if curr_drafts.empty?
413
413
  puts "\n No drafts\n "
414
414
  return
415
- else
416
- puts
417
- curr_drafts.each do |draft|
418
- base = draft.sub(/.lt3$/, "")
419
- dir = @blog.root/:posts/base
420
- meta = nil
421
- Dir.chdir(dir) { meta = @blog.read_metadata }
422
- num, title = meta.num, meta.title
423
- num = '%4d' % num.to_s
424
- puts " ", fx(num, Red), " ", fx(title, Black)
425
- other = @blog._get_views(@blog.root/:drafts/draft) - [@blog.view.to_s]
426
- unless other.empty?
427
- print fx(" "*9 + "also in: ", :bold)
428
- puts other.join(", ")
429
- end
430
- end
415
+ end
416
+ puts
417
+ curr_drafts.each do |draft|
418
+ base = draft.sub(/.lt3$/, "")
419
+ dir = @blog.root/:posts/base
420
+ meta = nil
421
+ Dir.chdir(dir) { meta = @blog.read_metadata }
422
+ num, title = meta.num, meta.title
423
+ num = '%4d' % num.to_s
424
+ puts " ", fx(num, Red), " ", fx(title, Black)
431
425
  end
432
426
  puts
433
427
  end
@@ -438,12 +432,11 @@ log! str: "cv Setting to #{name.inspect}"
438
432
  if assets.empty?
439
433
  puts " No assets"
440
434
  return
441
- else
442
- puts
443
- assets.each do |name|
444
- asset = File.basename(name)
445
- puts " ", fx(asset, Blue)
446
- end
435
+ end
436
+ puts
437
+ assets.each do |name|
438
+ asset = File.basename(name)
439
+ puts " ", fx(asset, Blue)
447
440
  end
448
441
  puts
449
442
  end
data/lib/runeblog.rb CHANGED
@@ -58,9 +58,9 @@ class RuneBlog
58
58
  include ErrorChecks
59
59
  end
60
60
 
61
- attr_reader :views, :sequence
62
- attr_accessor :root, :editor, :features
63
- attr_accessor :view # overridden
61
+ attr_reader :views, :sequence
62
+ attr_accessor :root, :editor, :features
63
+ attr_accessor :view # overridden
64
64
  attr_accessor :post
65
65
 
66
66
  attr_accessor :post_views, :post_tags, :dirty_views
@@ -74,7 +74,7 @@ class RuneBlog
74
74
  teaser: "No teaser", body: "No body", tags: ["untagged"],
75
75
  views: [], back: "javascript:history.go(-1)", home: "no url")
76
76
  log!(enter: __method__, args: [num, title, date, view, teaser, body, tags, views, back, home], level: 3)
77
- viewlist = (views + [view.to_s]).join(" ")
77
+ viewlist = (views + [view.to_s]).join(" ").uniq
78
78
  taglist = ".tags " + tags.join(" ")
79
79
 
80
80
  <<~TEXT
@@ -96,9 +96,9 @@ class RuneBlog
96
96
 
97
97
  def self.create_new_blog_repo(root_rel = ".blogs")
98
98
  log!(enter: __method__, args: [root_rel])
99
+ check_error(BlogRepoAlreadyExists) { Dir.exist?(repo_root) }
99
100
  check_nonempty_string(root_rel)
100
101
  repo_root = Dir.pwd/root_rel
101
- check_error(BlogRepoAlreadyExists) { Dir.exist?(repo_root) }
102
102
 
103
103
  create_dirs(repo_root)
104
104
  Dir.chdir(repo_root) do
@@ -110,7 +110,6 @@ class RuneBlog
110
110
  unless File.exist?(repo_root/"data/VIEW")
111
111
  copy_data(repo_root/:data)
112
112
  end
113
- # copy_data(:extra, repo_root/:config)
114
113
  write_repo_config(root: repo_root)
115
114
  # Weird. Like a singleton - dumbass circular dependency?
116
115
  self.blog = blog = self.new
@@ -128,32 +127,35 @@ class RuneBlog
128
127
  _tmp_error(err)
129
128
  end
130
129
 
131
- def initialize(root_rel = ".blogs") # always assumes existing blog
132
- log!(enter: "initialize", args: [root_rel])
133
- # Weird. Like a singleton - dumbass circular dependency?
134
- self.class.blog = self
135
-
136
- @root = Dir.pwd/root_rel
137
- # write_repo_config(root: @root) # ?? FIXME
138
- get_repo_config
139
- read_features # top level
140
- @views = retrieve_views
141
- self.view = File.read(@root/"data/VIEW").chomp
142
- md = Dir.pwd.match(%r[.*/views/(.*?)/])
143
- if md
144
- @view_name = md[1]
145
- @view = str2view(@view_name)
130
+ ################
131
+
132
+ def self.read(root_rel = ".blogs") # always assumes existing blog
133
+ log!(enter: "RuneBlog.read", args: [root_rel])
134
+ instance = RuneBlog.allocate
135
+ instance.instance_eval do
136
+ @blog = instance # Duhhh
137
+ @root = Dir.pwd/root_rel
138
+ # _init_get_view ##########??????
139
+ # self.class.blog = self # Weird, like singleton. Dumbass circular dependency?
140
+ RuneBlog.blog = instance
141
+ dirs = subdirs("#@root/views/").sort
142
+ @views = dirs.map {|name| RuneBlog::View.new(name) }
143
+ @curr = str2view(File.read(@root/"data/VIEW").chomp)
144
+ @view = @curr
145
+ # ...was init_get_view
146
+ @sequence, @post_views, @post_tags = get_sequence, [], []
146
147
  end
147
- @sequence = get_sequence
148
- @post_views = []
149
- @post_tags = []
148
+ return instance
150
149
  rescue => err
151
- puts "Error - see stdout.txt"
152
- STDERR.puts err.inspect
153
- STDERR.puts err&.backtrace
150
+ puts "ERROR - #{err.inspect}"
151
+ # puts "Error - see stderr.out"
152
+ puts err.inspect + "\n" + err&.backtrace
154
153
  sleep 3
155
154
  end
156
155
 
156
+ def initialize ##### FIXME ??
157
+ end
158
+
157
159
  def complete_file(name, vars, hash)
158
160
  debugging = vars.nil?
159
161
  return if hash.empty?
@@ -270,14 +272,6 @@ class RuneBlog
270
272
  views.any? {|x| x.name == name }
271
273
  end
272
274
 
273
- # def view(name = nil)
274
- # log!(enter: __method__, args: [name], level: 3)
275
- # return @view if name.nil?
276
- #
277
- # check_nonempty_string(name)
278
- # return str2view(name)
279
- # end
280
-
281
275
  def str2view(str)
282
276
  log!(enter: __method__, args: [str], level: 3)
283
277
  check_nonempty_string(str) # redundant?
@@ -297,15 +291,12 @@ class RuneBlog
297
291
  @view = nil
298
292
  return
299
293
  end
300
- # STDERR.puts "view= #{arg.inspect}"
301
-
302
294
  case arg
303
295
  when RuneBlog::View
304
296
  @view = arg
305
297
  @view.get_globals(true)
306
298
  when String
307
299
  new_view = str2view(arg)
308
- # STDERR.puts "view= new view #{new_view.inspect}"
309
300
  check_error(NoSuchView, arg) { new_view.nil? }
310
301
  @view = new_view
311
302
  else
@@ -541,11 +532,10 @@ class RuneBlog
541
532
  next unless Dir.exist?(postdir)
542
533
  meta = nil
543
534
  Dir.chdir(postdir) { meta = read_metadata }
544
- # puts [draft, meta.views].inspect
545
535
  list << draft if meta.views.include?(self.view.to_s)
546
536
  end
547
- # list.sort
548
- curr_drafts
537
+ # curr_drafts
538
+ list.sort
549
539
  end
550
540
 
551
541
  def all_drafts
@@ -739,8 +729,7 @@ args = {cwd: pdraft, src: draft, debug: true, dst: "guts.html",
739
729
 
740
730
  def remove_post(num)
741
731
  log!(enter: __method__, args: [num], level: 1)
742
- check_integer(num)
743
- # FIXME update original draft .views
732
+ check_integer(num) # FIXME update original draft .views
744
733
  tag = prefix(num)
745
734
  files = Find.find(self.view.dir).to_a
746
735
  list = files.select {|x| File.directory?(x) and x =~ /#{tag}/ }
@@ -1,7 +1,7 @@
1
1
  if !defined?(RuneBlog::Path)
2
2
 
3
3
  class RuneBlog
4
- VERSION = "0.3.26"
4
+ VERSION = "0.3.28"
5
5
 
6
6
  path = Gem.find_files("runeblog").grep(/runeblog-/).first
7
7
  Path = File.dirname(path)
data/lib/view.rb CHANGED
@@ -39,8 +39,8 @@ class RuneBlog::View
39
39
 
40
40
  live = Livetext.customize(call: ".nopara")
41
41
  live.xform_file(gfile)
42
- live._setvar("ViewDir", @blog.root/:views/@name)
43
- live._setvar("View", @name)
42
+ live.setvar("ViewDir", @blog.root/:views/@name)
43
+ live.setvar("View", @name)
44
44
  @globals = live.vars
45
45
  # dump_globals_stderr
46
46
  end
data/runeblog.gemspec CHANGED
@@ -21,7 +21,7 @@ spec = Gem::Specification.new do |s|
21
21
  s.authors = ["Hal Fulton"]
22
22
  s.email = 'rubyhacker@gmail.com'
23
23
  s.executables << "blog"
24
- s.add_runtime_dependency 'livetext', '~> 0.9', '>= 0.9.10'
24
+ s.add_runtime_dependency 'livetext', '~> 0.9', '>= 0.9.33'
25
25
  s.add_runtime_dependency 'rubytext', '~> 0.1', '>= 0.1.23'
26
26
  s.add_runtime_dependency 'rouge', '~> 3.25', '>= 3.25.0'
27
27
 
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.3.26
4
+ version: 0.3.28
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-09 00:00:00.000000000 Z
11
+ date: 2024-02-10 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.9'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.9.10
22
+ version: 0.9.33
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.9'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 0.9.10
32
+ version: 0.9.33
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rubytext
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -54,42 +54,42 @@ dependencies:
54
54
  name: rouge
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: 3.25.0
60
57
  - - "~>"
61
58
  - !ruby/object:Gem::Version
62
59
  version: '3.25'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 3.25.0
63
63
  type: :runtime
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: 3.25.0
70
67
  - - "~>"
71
68
  - !ruby/object:Gem::Version
72
69
  version: '3.25'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 3.25.0
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: minitest
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
- - - ">="
78
- - !ruby/object:Gem::Version
79
- version: 5.10.0
80
77
  - - "~>"
81
78
  - !ruby/object:Gem::Version
82
79
  version: '5.10'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 5.10.0
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 5.10.0
90
87
  - - "~>"
91
88
  - !ruby/object:Gem::Version
92
89
  version: '5.10'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 5.10.0
93
93
  description: A blog system based on Ruby and Livetext
94
94
  email: rubyhacker@gmail.com
95
95
  executables:
@@ -101,6 +101,7 @@ files:
101
101
  - "./README.md"
102
102
  - "./runeblog.gemspec"
103
103
  - bin/blog
104
+ - bin/blog.rb
104
105
  - bin/mkwidget
105
106
  - data/EDITOR
106
107
  - data/ROOT
@@ -256,7 +257,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
256
257
  - !ruby/object:Gem::Version
257
258
  version: '0'
258
259
  requirements: []
259
- rubygems_version: 3.0.8
260
+ rubygems_version: 3.2.3
260
261
  signing_key:
261
262
  specification_version: 4
262
263
  summary: A command-line blogging system