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)