lib/runeblog.rb in runeblog-0.0.63 vs lib/runeblog.rb in runeblog-0.0.64

- old
+ new

@@ -1,11 +1,11 @@ require 'find' require 'yaml' require 'livetext' class RuneBlog - VERSION = "0.0.63" + VERSION = "0.0.64" Path = File.expand_path(File.join(File.dirname(__FILE__))) DefaultData = Path + "/../data" BlogHeaderPath = DefaultData + "/custom/blog_header.html" @@ -146,16 +146,16 @@ dir = "#@root/src" drafts = Dir.entries(dir).grep(/^0.*.lt3/) end def change_view(view) - @view = view + @view = view # error checking? end def process_post(file) @main ||= Livetext.new - @main.main.output = File.new("/tmp/WHOA","w") + @main.main.output = File.new("/tmp/WHOA","w") # FIXME srsly? path = @root + "/src/#{file}" @meta = @main.process_file(path, binding) raise "process_file returned nil" if @meta.nil? num, slug = self.make_slug(@meta.title, self.sequence) @@ -165,14 +165,11 @@ rescue => err error(err) end def publish_post(meta) - puts " #{colored_slug(meta.slug)}" rescue nil # puts(meta.slug) # FIXME - # First gather the views - views = meta.views - views.each {|view| link_post_view(view) } + meta.views.each {|view| link_post_view(view) } # assets = find_all_assets(@meta.assets, views) nil rescue => err error(err) end @@ -252,10 +249,11 @@ def remove_post(num) list = files_by_id(num) result = system("rm -rf #{list.join(' ')}") error_cant_delete(files) unless result + # FIXME - update index/etc end def post_exists?(num) list = files_by_id(num) list.empty? ? nil : list @@ -296,6 +294,38 @@ files.map! {|f| File.basename(f) } files = files.sort.reverse files end +end + +####### + +class RuneBlog::Post + + attr_reader :id, :title, :date, :views, :num, :slug + + def self.files(num, root) + files = Find.find(root).to_a + result = files.grep(/#{tag(num)}-/) + result + end + + def initialize(title, view) + @title = title + @view = view + @num, @slug = make_slug + end + + private + + def make_slug(postnum = nil) + postnum ||= RuneBlog.next_sequence + num = tag(postnum) # FIXME can do better + slug = @title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '') + [postnum, "#{num}-#{slug}"] + end + + def tag(num) + "#{'%04d' % num}" + end end