lib/repl.rb in runeblog-0.1.14 vs lib/repl.rb in runeblog-0.1.15

- old
+ new

@@ -30,11 +30,12 @@ def cmd_version(arg, testing = false) reset_output check_empty(arg) output RuneBlog::VERSION - [true, @out] + puts RuneBlog::VERSION unless testing + [false, @out] end def cmd_config(arg, testing = false) check_empty(arg) dir = @blog.view.dir @@ -51,15 +52,16 @@ check_empty(arg) url = @blog.view.publisher.url # FIXME Bad logic here. if url.nil? output! "Publish first." - return [true, @out] + puts "\n Publish first." + return [false, @out] end result = system("open '#{url}'") raise CantOpen(url) unless result - nil + return [false, @out] end def cmd_preview(arg, testing = false) reset_output check_empty(arg) @@ -75,28 +77,28 @@ unless @blog.view.can_publish? puts "Can't publish without entries in #{@blog.view.name}/publish" unless testing output! "Can't publish without entries in #{@blog.view.name}/publish" return [false, @out] end - RubyText.spinner { @blog.view.publish } + ret = RubyText.spinner { @blog.view.publish } + return [false, @out] unless ret vdir = @blog.view.dir dump("fix this later", "#{vdir}/last_published") - puts " ...finished" unless testing - output! "...finished.\n" + if ! testing || ! ret + puts " ...finished.\n " + output! "...finished.\n" + end return [false, @out] end def cmd_rebuild(arg, testing = false) debug "Starting cmd_rebuild..." reset_output check_empty(arg) puts unless testing -debug "cp1" files = @blog.find_src_slugs -debug "cp2" files.each {|file| @blog.rebuild_post(file) } -debug "cp3" nil end def cmd_relink(arg, testing = false) reset_output @@ -151,24 +153,26 @@ reset_output args = arg.split args.each do |x| # FIXME ret = cmd_remove_post(x.to_i, false) + puts ret output ret end - return [true, @out] + return [false, @out] end #-- FIXME affects linking, building, publishing... def cmd_remove_post(arg, testing = false, safe=true) # FIXME - 'safe' is no longer a thing reset_output id = get_integer(arg) result = @blog.remove_post(id) output! "Post #{id} not found" if result.nil? - return [true, @out] +# puts "Post #{id} not found" if result.nil? + return [false, @out] end #-- FIXME affects linking, building, publishing... def cmd_edit_post(arg, testing = false) @@ -177,29 +181,38 @@ # Simplify this tag = "#{'%04d' % id}" files = Find.find(@blog.root+"/src").to_a files = files.grep(/#{tag}-/) files = files.map {|f| File.basename(f) } - return [true, "Multiple files: #{files}"] if files.size > 1 - return [true, "\n Can't edit post #{id}"] if files.empty? + if files.size > 1 + msg = "Multiple files: #{files}" + output msg + puts msg unless testing + return [false, msg] + end + if files.empty? + msg = "\n Can't edit post #{id}" + output msg + puts msg unless testing + return [false, msg] + end file = files.first result = edit_file("#{@blog.root}/src/#{file}") @blog.rebuild_post(file) - nil + return [false, @out] end def cmd_list_views(arg, testing = false) reset_output("\n") check_empty(arg) puts unless testing @blog.views.each do |v| v = v.to_s v = fx(v, :bold) if v == @blog.view.name - print " " output v + "\n" - puts v unless testing + puts " ", v unless testing end puts unless testing return [false, @out] end @@ -208,22 +221,20 @@ check_empty(arg) posts = @blog.posts # current view str = @blog.view.name + ":\n" output str puts unless testing - print " " - puts fx(str, :bold) unless testing + puts " ", fx(str, :bold) unless testing if posts.empty? output! bold("No posts") puts fx(" No posts", :bold) unless testing else posts.each do |post| outstr " #{colored_slug(post)}\n" base = post.sub(/.lt3$/, "") num, rest = base[0..3], base[4..-1] - print " " - puts fx(num, Red), fx(rest, Blue) unless testing + puts " ", fx(num, Red), fx(rest, Blue) unless testing end end puts unless testing return [false, @out] end @@ -233,65 +244,67 @@ check_empty(arg) drafts = @blog.drafts # current view if drafts.empty? output! "No drafts" puts " No drafts" unless testing - return [true, @out] + return [false, @out] else puts unless testing drafts.each do |draft| outstr " #{colored_slug(draft.sub(/.lt3$/, ""))}\n" base = draft.sub(/.lt3$/, "") num, rest = base[0..3], base[4..-1] - print " " - puts fx(num, Red), fx(rest, Blue) unless testing + puts " ", fx(num, Red), fx(rest, Blue) unless testing end end puts unless testing return [false, @out] end def cmd_INVALID(arg, testing = false) reset_output "\n Command '#{red(arg)}' was not understood." - return [true, @out] + puts "\n Command ", fx(arg, Red), " was not understood." + return [false, @out] end def cmd_help(arg, testing = false) reset_output check_empty(arg) - output(<<-EOS) + msg = <<-EOS Commands: - #{red('h, help ')} This message - #{red('q, quit ')} Exit the program - #{red('v, version ')} Print version information + h, help This message + q, quit Exit the program + v, version Print version information - #{red('change view VIEW ')} Change current view - #{red('cv VIEW ')} Change current view + change view VIEW Change current view + cv VIEW Change current view - #{red('new view ')} Create a new view + new view Create a new view - #{red('list views ')} List all views available - #{red('lsv ')} Same as: list views + list views List all views available + lsv Same as: list views - #{red('p, post ')} Create a new post - #{red('new post ')} Same as post (create a post) + p, post Create a new post + new post Same as post (create a post) - #{red('lsp, list posts ')} List posts in current view + lsp, list posts List posts in current view - #{red('lsd, list drafts ')} List all posts regardless of view + lsd, list drafts List all posts regardless of view - #{red('rm ID ')} Remove a post - #{red('kill ID ID ID... ')} Remove multiple posts - #{red('undelete ID ')} Undelete a post - #{red('edit ID ')} Edit a post + rm ID Remove a post + kill ID ID ID... Remove multiple posts + undelete ID Undelete a post + edit ID Edit a post - #{red('preview ')} Look at current (local) view in browser - #{red('browse ')} Look at current (published) view in browser - #{red('relink ')} Regenerate index for all views - #{red('rebuild ')} Regenerate all posts and relink - #{red('publish ')} Publish (current view) + preview Look at current (local) view in browser + browse Look at current (published) view in browser + relink Regenerate index for all views + rebuild Regenerate all posts and relink + publish Publish (current view) EOS - return [true, @out] + output msg + puts msg unless testing + return [false, @out] end end