lib/repl.rb in runeblog-0.0.62 vs lib/repl.rb in runeblog-0.0.63

- old
+ new

@@ -33,23 +33,23 @@ error(err) end def cmd_open_local reset_output - local = @blog.viewdir(@view) + "/index.html" + local = @blog.viewdir(@blog.view) + "/index.html" result = system("open #{local}") raise CantOpen, local unless result rescue => err error(err) end def cmd_deploy(arg) # FIXME non-string return expected in caller? # TBD clunky FIXME reset_output check_empty(arg) - user, server, sroot, spath = *@deploy[@view] - if files.empty? + user, server, sroot, spath = *@deploy[@blog.view] + if files.empty? # FIXME baloney output! "No files to deploy" return @out end output "Files:" @@ -74,33 +74,29 @@ def cmd_rebuild(arg) reset_output check_empty(arg) puts - # Simplify this - files = Dir.entries("#@root/src/").grep /\d\d\d\d.*.lt3$/ - files.map! {|f| File.basename(f) } - files = files.sort.reverse + files = @blog.find_src_slugs files.each {|file| rebuild_post(file) } nil rescue => err error(err) end def cmd_relink(arg) reset_output check_empty(arg) - @blog.views.each {|view| generate_index(view) } + @blog.relink nil rescue => err error(err) end def cmd_list_views(arg) reset_output("\n") check_empty(arg) - abort "Config file not read" unless @blog @blog.views.each do |v| v = bold(v) if v == @blog.view outstr " #{v}\n" end @out @@ -108,19 +104,19 @@ error(err) end def cmd_change_view(arg) reset_output - # Simlify this + # Simplify this if arg.nil? output "#{@blog.view}" return @out else list = @blog.views.grep /^#{arg}/ if list.size == 1 - @view = @blog.view = list.first - output! "View: #{@view}\n" if arg != @view + @blog.view = list.first + output! "View: #{@blog.view}\n" if arg != @blog.view else output! "view #{arg.inspect} does not exist\n" end end @out @@ -128,43 +124,43 @@ error(err) end def cmd_new_view(arg) reset_output - arg ||= ask("New view: ") # check validity later @blog.create_view(arg) - return nil + nil rescue => err error(err) end def cmd_new_post(arg) reset_output check_empty(arg) - @title = ask("Title: ") - @blog.create_new_post(@title) - return nil + title = ask("Title: ") + @blog.create_new_post(title) + nil rescue => err error(err) end def cmd_kill(arg) reset_output args = arg.split - args.each {|x| cmd_remove_post([x], false) } - return nil + args.each {|x| cmd_remove_post(x, false) } + nil rescue => err error(err) + puts err.backtrace end #-- FIXME affects linking, building, deployment... def cmd_remove_post(arg, safe=true) reset_output id = get_integer(arg) - files = @blog.files_by_id(id) - if files.empty? + files = @blog.post_exists?(id) + if files.nil? output! "No such post found (#{id})" return @out end if safe @@ -173,46 +169,47 @@ reset_output ques = "\n Delete?\n " ques.sub!(/\?/, " all these?") if files.size > 1 yes = yesno red(ques) if yes - result = system("rm -rf #{files.join(' ')}") - error_cant_delete(files) unless result + @blog.remove_post(id) output! "Deleted\n" else output! "No action taken\n" end else - result = system("rm -rf #{files.join(' ')}") - error_cant_delete(files) unless result + @blog.remove_post(id) output! "Deleted:\n" files.each {|f| output " #{f}\n" } end @out rescue ArgumentError => err puts err + puts err.backtrace rescue CantDelete => err puts err + puts err.backtrace rescue => err error(err) + puts err.backtrace end #-- FIXME affects linking, building, deployment... def cmd_edit_post(arg) reset_output id = get_integer(arg) - # Simlify this + # Simplify this tag = "#{'%04d' % id}" - files = Find.find(@root+"/src").to_a + files = Find.find(@blog.root+"/src").to_a files = files.grep(/#{tag}-/) files = files.map {|f| File.basename(f) } return red("Multiple files: #{files}") if files.size > 1 return red("\n No such post found (#{id})") if files.empty? file = files.first - result = system("vi #@root/src/#{file}") + result = system("vi #{@blog.root}/src/#{file}") raise "Problem editing #{file}" unless result rebuild_post(file) nil rescue => err @@ -221,11 +218,11 @@ def cmd_list_posts(arg) check_empty(arg) reset_output posts = @blog.posts # current view - output @view + ":\n" + output @blog.view + ":\n" if posts.empty? output! "No posts\n" else posts.each {|post| outstr " #{colored_slug(post)}\n" } end @@ -295,32 +292,32 @@ @out end ## Funky stuff -- needs to move? - def new_blog!(arg) # FIXME weird? - check_empty(arg) - return if RuneBlog.exist? - yes = yesno(red(" No .blog found. Create new blog? ")) - RuneBlog.create_new_blog if yes - rescue => err - error(err) - end +# def new_blog!(arg) # FIXME weird? +# check_empty(arg) +# return if RuneBlog.exist? +# yes = yesno(red(" No .blog found. Create new blog? ")) +# RuneBlog.create_new_blog if yes +# rescue => err +# error(err) +# end - def open_blog # Crude - FIXME later - @blog = RuneBlog.new - @view = @blog.view # current view - @sequence = @blog.sequence - @root = @blog.root - @deploy ||= {} - @blog.views.each do |view| - deployment = @blog.viewdir(@view) + "deploy" - check_file_exists(deployment) - lines = File.readlines(deployment).map {|x| x.chomp } - @deploy[@view] = lines - end - @blog - rescue => err - error(err) - end +# def open_blog # Crude - FIXME later +# @blog = RuneBlog.new +# @view = @blog.view # current view +# @sequence = @blog.sequence +# @root = @blog.root +# @deploy ||= {} +# @blog.views.each do |view| +# deployment = @blog.viewdir(@view) + "deploy" +# check_file_exists(deployment) +# lines = File.readlines(deployment).map {|x| x.chomp } +# @deploy[@view] = lines +# end +# @blog +# rescue => err +# error(err) +# end end