class RuneBlog::Post
Attributes
blog[RW]
date[R]
draft[RW]
meta[RW]
num[R]
slug[R]
title[R]
views[R]
Public Class Methods
create(title:, teaser:, body:, pubdate: Time.now.strftime("%Y-%m-%d"), views:[], file: nil)
click to toggle source
# File lib/post.rb, line 36 def self.create(title:, teaser:, body:, pubdate: Time.now.strftime("%Y-%m-%d"), views:[], file: nil) log!(enter: __method__, args: [title, teaser, body, pubdate, views], stderr: true) post = self.new # 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 post.meta.views = [post.blog.view.to_s] + views post.meta.tags = [] post.blog.make_slug(post.meta) # adds to meta # create_draft viewhome = post.blog.view.publisher.url meta = post.meta if file.nil? 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 + "/" fname = meta.slug + ".lt3" post.draft = srcdir + fname dump(text, post.draft) else dump(File.read(file), post.draft) end return post end
load(post)
click to toggle source
# File lib/post.rb, line 12 def self.load(post) log!(enter: __method__, args: [post], level: 3) raise NotImplemented raise NoBlogAccessor if RuneBlog.blog.nil? # "post" is a slug? pdir = RuneBlog.blog.root/:drafts/post meta = nil Dir.chdir(pdir) do # meta = read_config("metadata.txt") # 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") end meta end
new()
click to toggle source
# File lib/post.rb, line 30 def initialize log!(enter: __method__, level: 3) @blog = RuneBlog.blog || raise(NoBlogAccessor) @meta = OpenStruct.new end
Public Instance Methods
build()
click to toggle source
# File lib/post.rb, line 76 def build log!(enter: __method__) post = self views = post.meta.views @blog.generate_post(@draft) @blog.generate_index(@blog.view) end
edit()
click to toggle source
# File lib/post.rb, line 68 def edit log!(enter: __method__) edit_file(@draft, vim: "+8") build rescue => err error(err) end