Sha256: b83ac94a392dab35a9876e64deb455a294ff26c2bf4e67c249d8d52c4da25d5b

Contents?: true

Size: 921 Bytes

Versions: 1

Compression:

Stored size: 921 Bytes

Contents

require 'git'
require 'yaml'
require 'readline'
require 'launchy'

class GitPresenter
  require 'git_presenter/presentation'
  require 'git_presenter/controller'
  require 'git_presenter/slide'

  def initialize(current_dir, interactive=true)
    @controller = Controller.new(current_dir)
    @interactive = interactive
  end

  def execute(command)
    if command == 'init'
      @controller.initialise_presentation
    elsif command == 'start'
      @presentation = @controller.start_presentation
      if @interactive
        enter_run_loop
      end
    elsif command == 'update'
      @controller.update_presentation
    else
      puts @presentation.execute(command)
    end
    @presentation
  end

  private

  def enter_run_loop
    while command = Readline.readline(@presentation.status_line, true)
      result = @presentation.execute(command)
      exit if result == :exit
      puts result
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
git_presenter-1.0.0 lib/git_presenter.rb