lib/space/app.rb in space-0.0.5 vs lib/space/app.rb in space-0.0.6

- old
+ new

@@ -1,60 +1,44 @@ +require 'space/logger' require 'readline' +require 'thread' module Space class App - autoload :Command, 'space/app/command' - autoload :Handler, 'space/app/handler' - autoload :Logger, 'space/app/logger' - autoload :Parser, 'space/app/parser' - - class << self - def logger - @logger ||= Logger.new - end - end - - include Readline - attr_reader :name, :project, :screen def initialize(name) @name = name - @project = Models::Project.new(name) + @project = Model::Project.new(name) @screen = Screen.new(project) - - project.subscribe(screen) end def run - refresh - screen.display(:dashboard) + screen.display + project.refresh cli_loop + # Thread.new(&method(:cli_loop)) + # sleep + puts end private - def refresh - screen.display(:progress) - project.refresh - end - def cli_loop loop do - line = readline(prompt, true) - break if line.nil? - handle(line) unless line.empty? + print "\e[3;0H" + line = Readline.readline(prompt, true) || break + handle(line) end + rescue Exception => e + log e.message, e.backtrace end def handle(line) - screen.display(:progress) - Handler.new(project).run(line) - screen.display(:dashboard) + Action::Handler.new(project).run(line) unless line.empty? end def prompt "#{project.repos.scoped? ? project.repos.scope.map { |r| r.name }.join(', ') : project.name} > " end end end -