class Torba::Cli

Public Instance Methods

open(name) click to toggle source
# File lib/torba/cli.rb, line 29
def open(name)
  editor = [ENV["TORBA_EDITOR"], ENV["VISUAL"], ENV["EDITOR"]].find { |e| !e.nil? && !e.empty? }
  unless editor
    Torba.ui.error("To open a package, set $EDITOR or $TORBA_EDITOR")
    exit(false)
  end

  Torba.pretty_errors do
    Torba.pack

    command = Shellwords.split(editor) << find_package(name).load_path
    system(*command) || Torba.ui.error("Could not run '#{command.join(" ")}'")
  end
end
pack() click to toggle source
# File lib/torba/cli.rb, line 8
def pack
  Torba.pretty_errors { Torba.pack }
  Torba.ui.confirm "Torba has been packed!"
end
show(name) click to toggle source
# File lib/torba/cli.rb, line 21
def show(name)
  Torba.pretty_errors do
    Torba.pack
    Torba.ui.info(find_package(name).load_path)
  end
end
verify() click to toggle source
# File lib/torba/cli.rb, line 15
def verify
  Torba.pretty_errors { Torba.verify }
  Torba.ui.confirm "Torba is prepared!"
end

Private Instance Methods

find_package(name) click to toggle source
# File lib/torba/cli.rb, line 46
def find_package(name)
  packages = Torba.find_packages_by_name(name)
  case packages.size
  when 0
    Torba.ui.error "Could not find package '#{name}'."
    exit(false)
  when 1
    packages.first
  else
    index = Torba.ui.choose_one(packages.map(&:name))
    if index
      packages[index]
    else
      exit(false)
    end
  end
end