lib/post.rb in runeblog-0.2.16 vs lib/post.rb in runeblog-0.2.17
- old
+ new
@@ -1,13 +1,12 @@
-# require 'helpers-blog'
require 'runeblog'
require 'global'
+require 'pathmagic'
class RuneBlog::Post
attr_reader :num, :title, :date, :views, :num, :slug
-
attr_accessor :meta, :blog, :draft
include RuneBlog::Helpers
def self.files(num, root)
@@ -20,21 +19,15 @@
def self.load(post)
log!(enter: __method__, args: [post])
raise "Doesn't work right now"
raise NoBlogAccessor if RuneBlog.blog.nil?
# "post" is a slug
- pdir = RuneBlog.blog.view.dir + "/" + post
+ pdir = RuneBlog.blog.view.dir/post
verify(Dir.exist?(pdir) => "Directory #{pdir} not found")
meta = nil
Dir.chdir(pdir) do
- verify(File.exist?("metadata.txt") => "metadata.txt not found",
- File.exist?("teaser.txt") => "teaser.txt not found")
-# File.exist?("body.txt") => "body.txt not found")
meta = read_config("metadata.txt")
- verify(meta.date => "meta.date is nil",
- meta.views => "meta.views is nil",
- meta.tags => "meta.tags is nil")
meta.date = Date.parse(meta.date)
meta.views = meta.views.split
meta.tags = meta.tags.split
meta.teaser = File.read("teaser.txt")
# meta.body = File.read("body.txt")
@@ -48,12 +41,10 @@
debug "-----\n#{meta.inspect}\n-----"
fname2 = "metadata.txt"
hash = meta.to_h
File.write("teaser.txt", hash[:teaser])
-# STDERR.puts ">>>> #{__method__}: writing #{@live.body.size} bytes to #{Dir.pwd}/body.txt"
-# File.write("body.txt", hash[:body])
hash.delete(:teaser)
hash.delete(:body)
hash[:views] = hash[:views].join(" ")
hash[:tags] = hash[:tags].join(" ")
@@ -73,11 +64,11 @@
def self.create(title:, teaser:, body:, pubdate: Time.now.strftime("%Y-%m-%d"),
other_views:[])
log!(enter: __method__, args: [title, teaser, body, pubdate, other_views])
post = self.new
- # ONLY place next_sequence is called!
+ # NOTE: This is the ONLY place next_sequence is called!
num = post.meta.num = post.blog.next_sequence
# new_metadata
post.meta.title, post.meta.teaser, post.meta.body, post.meta.pubdate =
title, teaser, body, pubdate
@@ -89,14 +80,12 @@
viewhome = post.blog.view.publisher.url
meta = post.meta
text = RuneBlog.post_template(num: meta.num, title: meta.title, date: meta.pubdate,
view: meta.view, teaser: meta.teaser, body: meta.body,
views: meta.views, tags: meta.tags, home: viewhome)
- srcdir = "#{post.blog.root}/drafts/"
- vpdir = "#{post.blog.root}/drafts/"
- verify(Dir.exist?(srcdir) => "#{srcdir} not found",
- meta.slug.is_a?(String) => "slug #{meta.slug.inspect} is invalid")
+ srcdir = post.blog.root/:drafts + "/"
+ vpdir = post.blog.root/:drafts + "/"
fname = meta.slug + ".lt3"
post.draft = srcdir + fname
dump(text, post.draft)
return post
end
@@ -132,25 +121,25 @@
@nslug = @path.split("/").last
@aslug = @nslug[5..-1]
fname = "#{postdir}/teaser.txt"
@teaser_text = File.read(fname).chomp
# FIXME dumb hacks...
- mdfile = "#{postdir}/metadata.txt"
+ mdfile = postdir/"metadata.txt"
lines = File.readlines(mdfile)
@title = lines.grep(/title:/).first[7..-1].chomp
@date = lines.grep(/pubdate:/).first[9..-1].chomp
end
def get_dirs
log!(enter: __method__, args: [view, postdir])
fname = File.basename(draft)
noext = fname.sub(/.lt3$/, "")
- vdir = "#@root/views/#{view}"
- dir = "#{vdir}/posts/#{noext}/"
+ vdir = @root/:views/view
+ dir = vdir/:posts/noext + "/"
Dir.mkdir(dir) unless Dir.exist?(dir)
system("cp #{draft} #{dir}")
viewdir, slugdir, aslug = vdir, dir, noext[5..-1]
- theme = viewdir + "/themes/standard"
+ theme = viewdir/:themes/:standard
[noext, viewdir, slugdir, aslug, theme]
end
end