runeblog 0.3.28 → 0.3.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/blog +15 -4
- data/lib/exceptions.rb +1 -0
- data/lib/lowlevel.rb +0 -10
- data/lib/menus.rb +1 -1
- data/lib/repl.rb +4 -1
- data/lib/runeblog.rb +16 -18
- data/lib/runeblog_version.rb +1 -1
- data/lib/view.rb +13 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f1dd9b0013eda386f3152a196dcd6ee279274bdcfebca3fce17fd1a495fe93d
|
4
|
+
data.tar.gz: 9b1a091067233521f3a9216d84471ae31a0132b68ca22dca174555e824267c21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
251
|
+
|
242
252
|
cmd_history_etc
|
243
|
-
|
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 (
|
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?(
|
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
|
-
|
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)
|
data/lib/runeblog_version.rb
CHANGED
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
|
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.
|
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-
|
11
|
+
date: 2024-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: livetext
|