lib/runeblog.rb in runeblog-0.0.89 vs lib/runeblog.rb in runeblog-0.0.90

- old
+ new

@@ -94,10 +94,11 @@ dump(@sequence += 1, "#@root/sequence") @sequence end def viewdir(v = nil) + v = str2view(v) if v.is_a?(String) raise ArgumentError unless v.nil? || v.is_a?(RuneBlog::View) v ||= @view @root + "/views/#{v}/" end @@ -142,11 +143,11 @@ files += posts.map {|x| "#{vdir}/#{x}" } # Huh? files.reject! {|f| File.mtime(f) < File.mtime("#{vdir}/last_deployed") } end - def files_by_id(id) + def files_by_id(id) # FIXME get rid of this later raise ArgumentError unless id.is_a?(Integer) files = Find.find(self.view.dir).to_a tag = "#{'%04d' % id}" result = files.grep(/#{tag}-/) result @@ -302,29 +303,46 @@ error(err) end def remove_post(num) raise ArgumentError unless num.is_a?(Integer) - list = files_by_id(num) + files = Find.find("#@root/views/").to_a + tag = "#{'%04d' % num.to_i}" + list = files.select {|x| File.directory?(x) and x =~ /#{tag}/ } return nil if list.empty? dest = list.map {|f| f.sub(/(?<num>\d{4}-)/, "_\\k<num>") } list.each.with_index do |src, i| cmd = "mv #{src} #{dest[i]} 2>/dev/null" system(cmd) end # FIXME - update index/etc true end + def undelete_post(num) + raise ArgumentError unless num.is_a?(Integer) + files = Find.find("#@root/views/").to_a + tag = "#{'%04d' % num.to_i}" + list = files.select {|x| File.directory?(x) and x =~ /_#{tag}/ } + return nil if list.empty? + dest = list.map {|f| f.sub(/_(?<num>\d{4}-)/, "\\k<num>") } + list.each.with_index do |src, i| + cmd = "mv #{src} #{dest[i]} 2>/dev/null" + system(cmd) + end + # FIXME - update index/etc + true + end + def delete_draft(num) raise ArgumentError unless num.is_a?(Integer) tag = "#{'%04d' % num.to_i}" system("rm -rf #@root/src/#{tag}-*") end def post_exists?(num) raise ArgumentError unless num.is_a?(Integer) - list = files_by_id(num) + list = files_by_id(num) # FIXME search under view dirs list.empty? ? nil : list end def make_slug(title, postnum = nil) raise ArgumentError unless title.is_a?(String)