runeblog 0.3.28 → 0.3.30

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0f9a3b31f1adc96704b1781f04e2eb4227ca341ebc3f118a0ead49c3be65859
4
- data.tar.gz: 573d4f8ba2778d476b9b327e1c994863745f1d643f6b633cc771d3d4b2872af6
3
+ metadata.gz: 2f1dd9b0013eda386f3152a196dcd6ee279274bdcfebca3fce17fd1a495fe93d
4
+ data.tar.gz: 9b1a091067233521f3a9216d84471ae31a0132b68ca22dca174555e824267c21
5
5
  SHA512:
6
- metadata.gz: acaaf9714332878e5f60b26576c86286672f221717b8c66901749cf9e9e4a257baee45ec5a2fe42d1eea3c64746cd959d10bbba1b08828cb15075ca9af85ae40
7
- data.tar.gz: 43b9c4d21d1c5d82f6c7e1b1ce291f304e1dd52f12b46b36200f4aebe2db127603b15ab1dcaca43cc8ea607a515263019abf20c4b88d8e0da620a41187639a9a
6
+ metadata.gz: ac2b3d8dd3d7f378658d138db56695e5749b0022ef19197bb6d863c077b469972e3d6a6b6adb27f20dc91e1a6a656320d8c15b657da9015935a5bd371d5a4b4e
7
+ data.tar.gz: ffd02d0666582b4d2a31dcc552872fc5e257e30b26054e06ebf337aca2ceac9540ff0b1506cdf272b0cdee7fa7f6b70b4c7bddc578460472684039bac5dbb05c
data/bin/blog CHANGED
@@ -11,6 +11,8 @@ require 'repl'
11
11
 
12
12
  include RuneBlog::REPL
13
13
 
14
+ include ErrorChecks
15
+
14
16
  def yesno(question, noskip=false)
15
17
  puts fx("\n #{question}", :bold)
16
18
  puts unless noskip
@@ -46,18 +48,25 @@ end
46
48
 
47
49
  def get_global
48
50
  view_name = ask!(" Filename: ")
51
+ # FIXME test below doesn't work?
52
+ FilenameHasBlank(view_name) if view_name.include?(" ")
53
+
49
54
  @blog.create_view(view_name) # call change_view??
50
55
  if yesno("Faster view setup? (no: edit global.lt3)")
51
56
  title = ask!(" View title: ")
52
57
  subtitle = ask!(" Subtitle : ")
53
58
  domain = ask!(" Domain : ")
54
59
  modify_view_global(view_name)
55
- modify_view_settings(name: view_name, title: title, subtitle: subtitle,
60
+ modify_view_settings(name: view_name, title: title, subtitle: subtitle,
56
61
  domain: domain)
57
62
  else
58
63
  vim_params = '-c ":set hlsearch" -c ":hi Search ctermfg=2 ctermbg=6" +/"\(VIEW_.*\|SITE.*\)"'
59
64
  edit_file(@blog.view.dir/"themes/standard/global.lt3", vim: vim_params)
60
65
  end
66
+ rescue => err
67
+ puts err
68
+ puts "Retrying..."
69
+ retry
61
70
  end
62
71
 
63
72
  def get_started
@@ -204,6 +213,7 @@ def create_new_repo?
204
213
  rescue => err
205
214
  STDERR.puts "Error - #{err.to_s}"
206
215
  STDERR.puts err.backtrace if err.respond_to?(:backtrace)
216
+ puts "Sleeping..."; sleep 10
207
217
  end
208
218
 
209
219
  def print_intro
@@ -234,12 +244,13 @@ reopen_stderr
234
244
 
235
245
  check_ruby_version
236
246
  handle_cmdline unless ARGV.empty?
247
+
237
248
  set_fgbg
238
249
  print_intro
239
- # STDERR.puts "cp 6 - pause"; gets
240
250
  create_new_repo?
241
- # STDERR.puts "cp 7 - pause"; gets
251
+
242
252
  cmd_history_etc
243
- # STDERR.puts "cp 8 - pause"; gets
253
+
244
254
  loop { mainloop }
255
+
245
256
  exit_repl
data/lib/exceptions.rb CHANGED
@@ -34,4 +34,5 @@ make_exception(:CantFindWidgetDir, "Can't find widget dir '%1'")
34
34
  make_exception(:PublishError, "Error during publishing")
35
35
  make_exception(:NoNumericPrefix, "No numeric prefix on slug '%1'")
36
36
  make_exception(:NoExtensionExpected, "No file extension expected on '%1'")
37
+ make_exception(:FilenameHasBlank, "File '%1' contains a blank space.")
37
38
 
data/lib/lowlevel.rb CHANGED
@@ -4,15 +4,6 @@
4
4
  STDERR.puts err.backtrace.join("\n") if err.respond_to?(:backtrace)
5
5
  log!(str: "#{err} - see also stderr.out")
6
6
  log!(str: err.backtrace.join("\n")) if err.respond_to?(:backtrace)
7
- return
8
-
9
- out = "/tmp/blog#{rand(100)}.txt"
10
- File.open(out, "w") do |f|
11
- f.puts err.to_s + "\n--------"
12
- f.puts err.backtrace.join("\n")
13
- end
14
- puts "Error: See #{out}"
15
- # sleep 3
16
7
  end
17
8
 
18
9
  def dump(obj, name)
@@ -25,7 +16,6 @@
25
16
 
26
17
  def system!(os_cmd, show: false)
27
18
  log!(enter: __method__, args: [os_cmd], level: 2)
28
- caller.each {|x| print "::: "; p x }
29
19
  STDERR.puts os_cmd if show
30
20
  rc = system(os_cmd)
31
21
  STDERR.puts " rc = #{rc.inspect}" if show
data/lib/menus.rb CHANGED
@@ -105,7 +105,7 @@ Menu.top_config = {
105
105
  "Generator for a post" => proc { edit_post_generate },
106
106
  " HEAD info for post" => proc { edit_post_head },
107
107
  " Content for post" => proc { edit_post_index },
108
- "Variables (general)" => proc { edit_view_global },
108
+ "Variables (general!)" => proc { edit_view_global },
109
109
  " View-specific" => proc { edit_settings_view },
110
110
  " Recent posts" => proc { edit_settings_recent },
111
111
  " Publishing" => proc { edit_settings_publish },
data/lib/repl.rb CHANGED
@@ -11,8 +11,10 @@ Signal.trap("INT") { puts "Don't :)" }
11
11
  module RuneBlog::REPL
12
12
  def edit_file(file, vim: "")
13
13
  ed = @blog.editor
14
+ STDERR.puts ">>> edit_file: ed = #{ed.inspect}"
14
15
  params = vim if ed =~ /vim$/
15
16
  result = system!("#{@blog.editor} #{file} #{params}")
17
+ STDERR.puts ">>> edit_file: after system call"
16
18
  raise EditorProblem(file) unless result
17
19
  cmd_clear
18
20
  end
@@ -38,7 +40,7 @@ module RuneBlog::REPL
38
40
  end
39
41
 
40
42
  def cmd_config
41
- hash = {"Variables (general)" => "global.lt3",
43
+ hash = {"Variables (General)" => "global.lt3",
42
44
  " View-specific" => "../settings/view.txt",
43
45
  " Recent posts" => "../../settings/recent.txt",
44
46
  " Publishing" => "../../settings/publish.txt",
@@ -60,6 +62,7 @@ module RuneBlog::REPL
60
62
  }
61
63
 
62
64
  dir = @blog.view.dir/"themes/standard/"
65
+ STDERR.puts ">>> cmd_config: dir = #{dir.inspect}"
63
66
  num, target = STDSCR.menu(title: "Edit file:", items: hash)
64
67
  edit_file(dir/target)
65
68
  end
data/lib/runeblog.rb CHANGED
@@ -96,14 +96,13 @@ 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
+ check_error(BlogRepoAlreadyExists) { Dir.exist?(root_rel) }
100
100
  check_nonempty_string(root_rel)
101
101
  repo_root = Dir.pwd/root_rel
102
102
 
103
103
  create_dirs(repo_root)
104
104
  Dir.chdir(repo_root) do
105
105
  create_dirs(:data, :config, :widgets, :drafts, :views, :posts) # ?? widgets?
106
- # FIXME
107
106
  get_all_widgets("widgets")
108
107
  new_sequence
109
108
  end
@@ -131,21 +130,7 @@ class RuneBlog
131
130
 
132
131
  def self.read(root_rel = ".blogs") # always assumes existing blog
133
132
  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, [], []
147
- end
148
- return instance
133
+ RuneBlog.new(root_rel)
149
134
  rescue => err
150
135
  puts "ERROR - #{err.inspect}"
151
136
  # puts "Error - see stderr.out"
@@ -153,7 +138,20 @@ class RuneBlog
153
138
  sleep 3
154
139
  end
155
140
 
156
- def initialize ##### FIXME ??
141
+ def initialize(root_rel = ".blogs") ##### FIXME ??
142
+ # @blog = instance # Duhhh
143
+ @root = Dir.pwd/root_rel
144
+ # _init_get_view ##########??????
145
+ # self.class.blog = self # Weird, like singleton. Dumbass circular dependency?
146
+ RuneBlog.blog = self
147
+ dirs = subdirs("#@root/views/").sort
148
+ @views = dirs.map {|name| RuneBlog::View.new(name) }
149
+ @curr = str2view(File.read(@root/"data/VIEW").chomp)
150
+ @view = @curr
151
+ # ...was init_get_view
152
+ @sequence, @post_views, @post_tags = get_sequence, [], []
153
+ get_repo_config
154
+ read_features
157
155
  end
158
156
 
159
157
  def complete_file(name, vars, hash)
@@ -1,7 +1,7 @@
1
1
  if !defined?(RuneBlog::Path)
2
2
 
3
3
  class RuneBlog
4
- VERSION = "0.3.28"
4
+ VERSION = "0.3.30"
5
5
 
6
6
  path = Gem.find_files("runeblog").grep(/runeblog-/).first
7
7
  Path = File.dirname(path)
data/lib/view.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  require 'logging'
2
2
 
3
3
  class RuneBlog::View
4
- attr_reader :name, :state, :globals
5
- attr_accessor :publisher
4
+ attr_reader :name, :state
5
+ attr_accessor :publisher, :globals
6
6
 
7
7
  include RuneBlog::Helpers
8
8
 
@@ -33,14 +33,25 @@ class RuneBlog::View
33
33
 
34
34
  def get_globals(force = false)
35
35
  return if @globals && !force
36
+
36
37
  # gfile = @blog.root/"views/#@name/themes/standard/global.lt3"
37
38
  gfile = @blog.root/"views/#@name/data/global.lt3"
38
39
  return unless File.exist?(gfile) # Hackish!! how is View.new called from create_view??
39
40
 
40
41
  live = Livetext.customize(call: ".nopara")
42
+ puts "get_globals - 1 - transforming #{gfile}"
43
+ # FIXME - error here somehow:
44
+ # get_globals - 1 - transforming /private/tmp/.blogs/views/foobar/data/global.lt3
45
+ # >> variables: pre="view" file="../settings/view.txt" pwd=/private/tmp
46
+ # No such dir "../settings" (file ../settings/view.txt)
47
+ # No such dir "../settings" (file ../settings/view.txt)
48
+ # get_globals - 2
41
49
  live.xform_file(gfile)
50
+ puts "get_globals - 2"
42
51
  live.setvar("ViewDir", @blog.root/:views/@name)
52
+ puts "get_globals - 3"
43
53
  live.setvar("View", @name)
54
+ puts "get_globals - 4"
44
55
  @globals = live.vars
45
56
  # dump_globals_stderr
46
57
  end
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.28
4
+ version: 0.3.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-10 00:00:00.000000000 Z
11
+ date: 2024-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: livetext