runeblog 0.0.91 → 0.0.93

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
  SHA1:
3
- metadata.gz: f2ff1adf77bd4d84b2abc678661e31fb63171e6e
4
- data.tar.gz: 19347aaaeb617a47eb3466c0860bd9eda2110b38
3
+ metadata.gz: d401049bff7f80d13c2708674608b2c2c418d77e
4
+ data.tar.gz: 0a8dead9268c46004a4a31d8977724d119adabeb
5
5
  SHA512:
6
- metadata.gz: 04449624f1a73aa9ea968c144417884336fec5803905b0071c46a190a7ccd4f2f04b93c7b732c23db73044c0ac5f57c236ae1249c96a31ef1eba0ec145044c49
7
- data.tar.gz: b70c923bed20854a310a3bc43ff3026e1050022868f8b69d36d6e859165c4fed1237832cdae5a1d1fecdd71207380945ebc6bce7594a1eb2a027911aba4d2087
6
+ metadata.gz: d0d9364fa2a1dc901ebd178fa7f5b7544ec519ee756dcad417cdcb7542cbed97129f3e2b814025b12e884feb5e9142a74bc03c2f64b9b946d68a5f0771cc4a46
7
+ data.tar.gz: 4f47211d17dab06700c3afd9f956c3f20b0b9ccd7f6b69d1fcdd2cded31efd6f1d68d2ab47059a102c983b4dca19094c4c63ca8fe8f685a5a639b6215d1c4eb3
data/lib/deploy.rb CHANGED
@@ -37,7 +37,7 @@ class RuneBlog::Deployment
37
37
  cmd = "scp -r #{list} #@user@##server:#{dir} >/dev/null 2>&1"
38
38
  output! "Deploying #{files.size} files...\n"
39
39
  result = system(cmd)
40
- raise "Problem occurred in deployment" unless result
40
+ raise DeploymentError unless result
41
41
 
42
42
  dump(files, "#{@blog.view.dir}/last_deployed")
43
43
  output! "...finished.\n"
data/lib/helpers-blog.rb CHANGED
@@ -38,7 +38,7 @@ module RuneBlog::Helpers
38
38
  end
39
39
 
40
40
  def new_dotfile(root: "data", current_view: "no_default", editor: "vi")
41
- raise "Blog already exists" if Dir.exist?(".blog")
41
+ raise BlogAlreadyExists if Dir.exist?(".blog")
42
42
  Dir.mkdir(".blog")
43
43
  x = OpenStruct.new
44
44
  x.root, x.current_view, x.editor = root, current_view, editor
@@ -71,7 +71,7 @@ module RuneBlog::Helpers
71
71
  return if Dir.exist?(dir) # && File.directory?(dir)
72
72
  cmd = "mkdir -p #{dir} >/dev/null 2>&1"
73
73
  result = system(cmd)
74
- raise "Can't create #{dir}" unless result
74
+ raise CantCreateDir(dir) unless result
75
75
  end
76
76
 
77
77
  def interpolate(str)
data/lib/helpers-repl.rb CHANGED
@@ -1,6 +1,11 @@
1
1
 
2
2
  # Reopening...
3
3
 
4
+ make_exception(:CantOpen, "Can't open '$1'")
5
+ make_exception(:CantDelete, "Can't open '$1'")
6
+ make_exception(:InternalError, "Glitch: $1 got arg '$2'")
7
+ make_exception(:CantCopy, "Can't copy $1 to $2")
8
+
4
9
  module RuneBlog::REPL
5
10
  Patterns =
6
11
  {"help" => :cmd_help,
@@ -128,12 +133,9 @@ module RuneBlog::REPL
128
133
  n.times { @out << "\n" }
129
134
  end
130
135
 
131
- FileNotFound = StandardError.dup
132
- CantOpen = StandardError.dup
133
- CantDelete = StandardError.dup
134
136
 
135
137
  def check_empty(arg)
136
- raise "Glitch: #{caller[0]} got arg #{arg.inspect}" unless arg.nil?
138
+ raise InternalError(caller[0], arg.inspect) unless arg.nil?
137
139
  end
138
140
 
139
141
  def get_integer(arg)
@@ -143,15 +145,15 @@ module RuneBlog::REPL
143
145
  end
144
146
 
145
147
  def check_file_exists(file)
146
- raise FileNotFound, file unless File.exist?(file)
148
+ raise FileNotFound(file) unless File.exist?(file)
147
149
  end
148
150
 
149
151
  def error_cant_delete(files)
150
152
  case files
151
153
  when String
152
- raise CantDelete, "Error deleting #{files}"
154
+ raise CantDelete(files)
153
155
  when Array
154
- raise CantDelete, "Error deleting: \n#{files.join("\n")}"
156
+ raise CantDelete(files.join("\n"))
155
157
  end
156
158
  end
157
159
 
@@ -186,7 +188,7 @@ module RuneBlog::REPL
186
188
  @slug = @blog.make_slug(@title)
187
189
  @fname = @slug + ".lt3"
188
190
  result = system("cp #{name} #@root/src/#@fname")
189
- raise "Could not copy #{name} to #@root/src/#@fname" unless result
191
+ raise CantCopy(name, "#@root/src/#@fname") unless result
190
192
 
191
193
  edit_initial_post(@fname)
192
194
  process_post(@fname)
data/lib/post.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'helpers-blog'
2
2
  require 'runeblog'
3
3
 
4
+ make_exception(:NoBlogAccessor, "Runeblog.blog is not set")
5
+
4
6
  class RuneBlog::Post
5
7
 
6
8
  attr_reader :id, :title, :date, :views, :num, :slug
@@ -15,7 +17,7 @@ class RuneBlog::Post
15
17
 
16
18
  def self.load(post)
17
19
  # FIXME weird logic here
18
- raise "RuneBlog.blog is not set!" if RuneBlog.blog.nil?
20
+ raise NoBlogAccessor if RuneBlog.blog.nil?
19
21
  pdir = RuneBlog.blog.view.dir + "/" + post
20
22
  meta = nil
21
23
  Dir.chdir(pdir) do
@@ -31,7 +33,7 @@ class RuneBlog::Post
31
33
 
32
34
  def initialize(meta, view_name)
33
35
  # FIXME weird logic here
34
- raise "RuneBlog.blog is not set!" if RuneBlog.blog.nil?
36
+ raise NoBlogAccessor if RuneBlog.blog.nil?
35
37
  @blog = RuneBlog.blog
36
38
  @title = meta.title
37
39
  @view = @blog.str2view(view_name)
@@ -46,7 +48,7 @@ class RuneBlog::Post
46
48
 
47
49
  def edit
48
50
  result = system("vi #@draft +8")
49
- raise "Problem editing #@draft" unless result
51
+ raise EditorProblem(draft) unless result
50
52
  nil
51
53
  rescue => err
52
54
  error(err)
@@ -55,7 +57,7 @@ class RuneBlog::Post
55
57
  def publish
56
58
  livetext = Livetext.new(STDOUT)
57
59
  @meta = livetext.process_file(@draft, binding)
58
- raise "process_file returned nil" if @meta.nil?
60
+ raise LivetextError(@draft) if @meta.nil?
59
61
 
60
62
  @meta.views.each do |view_name| # Create dir using slug (index.html, metadata?)
61
63
  view = @blog.str2view(view_name)
@@ -76,7 +78,6 @@ class RuneBlog::Post
76
78
 
77
79
  def create_post_subtree(vdir)
78
80
  create_dir("assets")
79
- # dump(@meta.to_yaml, "metadata.yaml")
80
81
  write_metadata(@meta)
81
82
  template = RuneBlog::Default::TeaserTemplate # FIXME template into custom dir?
82
83
  text = interpolate(template)
data/lib/repl.rb CHANGED
@@ -2,6 +2,9 @@ require 'runeblog'
2
2
  require 'ostruct'
3
3
  require 'helpers-repl' # FIXME structure
4
4
 
5
+ make_exception(:DeploymentError, "Error during deployment")
6
+ make_exception(:EditorProblem, "Could not edit $1")
7
+
5
8
  module RuneBlog::REPL
6
9
 
7
10
  def cmd_quit(arg)
@@ -27,7 +30,7 @@ module RuneBlog::REPL
27
30
  return @out
28
31
  end
29
32
  result = system("open '#{url}'")
30
- raise CantOpen, url unless result
33
+ raise CantOpen(url) unless result
31
34
  nil
32
35
  rescue => err
33
36
  error(err)
@@ -38,7 +41,7 @@ module RuneBlog::REPL
38
41
  check_empty(arg)
39
42
  local = @blog.view.index
40
43
  result = system("open #{local}")
41
- raise CantOpen, local unless result
44
+ raise CantOpen(local) unless result
42
45
  rescue => err
43
46
  error(err)
44
47
  end
@@ -64,7 +67,7 @@ module RuneBlog::REPL
64
67
  cmd = "scp -r #{files.join(' ')} root@#{server}:#{dir} >/dev/null 2>&1"
65
68
  output! "Deploying #{files.size} files...\n"
66
69
  result = system(cmd)
67
- raise "Problem occurred in deployment" unless result
70
+ raise DeploymentError unless result
68
71
 
69
72
  dump(files, "#{vdir}/last_deployed")
70
73
  output! "...finished.\n"
@@ -197,7 +200,7 @@ module RuneBlog::REPL
197
200
 
198
201
  file = files.first
199
202
  result = system("vi #{@blog.root}/src/#{file}")
200
- raise "Problem editing #{file}" unless result
203
+ raise EditorProblem(file) unless result
201
204
 
202
205
  @blog.rebuild_post(file)
203
206
  nil
data/lib/runeblog.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require 'find'
2
- # require 'yaml' # get rid of YAML later
3
2
  require 'livetext'
4
3
  require 'skeleton'
5
4
  require 'helpers-blog'
@@ -9,15 +8,6 @@ require 'deploy'
9
8
  require 'post'
10
9
  require 'version'
11
10
 
12
- def make_exception(sym, str)
13
- Object.const_set(sym, StandardError.dup)
14
- define_method(sym) do |*args|
15
- msg = str
16
- args.each.with_index {|arg, i| msg.sub!("$#{i+1}", arg) }
17
- Object.class_eval(sym.to_s).new(msg)
18
- end
19
- end
20
-
21
11
 
22
12
  ###
23
13
 
@@ -30,9 +20,12 @@ class RuneBlog
30
20
  make_exception(:BlogAlreadyExists, "Blog $1 already exists")
31
21
  make_exception(:CantAssignView, "$1 is not a view")
32
22
  make_exception(:ViewAlreadyExists, "View $1 already exists")
23
+ make_exception(:DirAlreadyExists, "Directory $1 already exists")
24
+ make_exception(:CantCreateDir, "Can't create directory $1")
33
25
  make_exception(:EditorProblem, "Could not edit $1")
34
26
  make_exception(:NoSuchView, "No such view: $1")
35
-
27
+ make_exception(:LivetextError, "Livetext#process_file returned nil for $1")
28
+
36
29
  class << self
37
30
  attr_accessor :blog
38
31
  include Helpers
@@ -129,7 +122,7 @@ class RuneBlog
129
122
  raise ViewAlreadyExists(arg) if names.include?(arg)
130
123
 
131
124
  dir = "#@root/views/#{arg}/"
132
- raise "Can't happen: #{dir} exists already" if Dir.exist?(dir)
125
+ raise DirAlreadyExists(dir) if Dir.exist?(dir)
133
126
  create_dir(dir)
134
127
  up = Dir.pwd
135
128
  Dir.chdir(dir)
@@ -213,10 +206,10 @@ class RuneBlog
213
206
  def process_post(file)
214
207
  raise ArgumentError unless file.is_a?(String)
215
208
  path = @root + "/src/#{file}"
216
- raise "File not found: #{path}" unless File.exist?(path)
209
+ raise FileNotFound(path) unless File.exist?(path)
217
210
  livetext = Livetext.new(STDOUT) # (nil)
218
211
  @meta = livetext.process_file(path, binding)
219
- raise "process_file returned nil" if @meta.nil?
212
+ raise LivetextError(path) if @meta.nil?
220
213
 
221
214
  num, slug = self.make_slug(@meta.title, self.sequence)
222
215
  slug = file.sub(/.lt3$/, "")
@@ -241,7 +234,6 @@ class RuneBlog
241
234
  dir = vdir + @meta.slug + "/"
242
235
  create_dir(dir + "assets")
243
236
  Dir.chdir(dir) do
244
- #? dump(@meta.to_yaml, "metadata.yaml")
245
237
  dump(@meta.teaser, "teaser.txt")
246
238
  dump(@meta.body, "body.txt")
247
239
  # FIXME make get_post_template method
@@ -271,7 +263,6 @@ class RuneBlog
271
263
  @blogtail = interpolate(tail)
272
264
 
273
265
  # Output view
274
- #? posts.map! {|post| YAML.load(File.read("#{vdir}/#{post}/metadata.yaml")) }
275
266
  posts.map! do |post|
276
267
  meta = nil
277
268
  pdir = vdir + "/" + post
data/lib/skeleton.rb CHANGED
@@ -17,3 +17,13 @@ class RuneBlog
17
17
  end
18
18
  end
19
19
 
20
+ def make_exception(sym, str)
21
+ return if Object.constants.include?(sym)
22
+ Object.const_set(sym, StandardError.dup)
23
+ define_method(sym) do |*args|
24
+ msg = str
25
+ args.each.with_index {|arg, i| msg.sub!("$#{i+1}", arg) }
26
+ Object.class_eval(sym.to_s).new(msg)
27
+ end
28
+ end
29
+
data/lib/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  class RuneBlog
3
- VERSION = "0.0.91"
3
+ VERSION = "0.0.93"
4
4
 
5
5
  Path = File.expand_path(File.join(File.dirname(__FILE__)))
6
6
  end
data/lib/view.rb CHANGED
@@ -8,7 +8,7 @@ class RuneBlog::View
8
8
  include RuneBlog::Helpers
9
9
 
10
10
  def initialize(name)
11
- raise "RuneBlog.blog is not set!" if RuneBlog.blog.nil?
11
+ raise NoBlogAccessor if RuneBlog.blog.nil?
12
12
  @blog = RuneBlog.blog
13
13
  @name = name
14
14
  dep_file = @blog.root + "/views/#@name/deploy"
data/test/general.rb CHANGED
@@ -43,7 +43,7 @@ class TestREPL < Minitest::Test
43
43
  lines = out.split("\n").length
44
44
  assert lines >= 2, "Expecting at least 2 lines"
45
45
  end
46
-
46
+
47
47
  def test_004_change_view!
48
48
  out = cmd_change_view(nil) # no param
49
49
  assert out.is_a?(String), "Expected a string; got: #{out.inspect}"
@@ -224,7 +224,45 @@ if File.exist?("testing.deploy")
224
224
  assert result.nil?, "Expected to detect login error (bad server)"
225
225
  end
226
226
 
227
- end
227
+ end # conditional tests
228
+
229
+ def test_019_exception_existing_blog
230
+ assert_raises(BlogAlreadyExists) { RuneBlog.create_new_blog }
231
+ end
232
+
233
+ def test_020_exception_missing_blog_accessor
234
+ save = RuneBlog.blog
235
+ RuneBlog.blog = nil
236
+ assert_raises(NoBlogAccessor) { RuneBlog::Post.load(1) }
237
+ RuneBlog.blog = save
238
+ end
239
+
240
+ def test_021_exception_cant_assign_view
241
+ assert_raises(CantAssignView) { @blog.view = 99 }
242
+ end
243
+
244
+ def test_022_exception_no_such_view
245
+ assert_raises(NoSuchView) { @blog.view = 'not_a_view_name' }
246
+ end
247
+
248
+ def test_023_exception_view_already_exists
249
+ assert_raises(ViewAlreadyExists) { @blog.view = 'alpha_view' }
250
+ end
251
+
252
+ def test_024_exception_cant_edit_file
253
+ assert_raises(EditorProblem) { @blog.edit_initial_post(999) }
254
+ end
255
+
256
+ def xtest_025_exception_livetext_error # FIXME Doesn't work! Change Livetext
257
+ testfile = "testfile.lt3"
258
+ path = @blog.root + "/src/" + testfile
259
+ cmd = "echo .no_such_command > #{path}"
260
+ p cmd
261
+ system(cmd)
262
+ system("ls -l #{path}")
263
+ assert_raises(LivetextError) { @blog.process_post(testfile) }
264
+ File.rm(path)
265
+ end
228
266
 
229
267
  # later tests...
230
268
  # new view asks for deployment info and writes it
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runeblog
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.91
4
+ version: 0.0.93
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton