class MainApp

Public Class Methods

new(arguments) click to toggle source
# File lib/gito.rb, line 13
def initialize(arguments)

  @url = %w(-h --help -v --version -s --set-editor).include?(arguments.first) ? nil : arguments.shift

  # defaults
  @options = {}
  @options[:app_path] = nil
  @options[:should_edit] = false
  @options[:should_open] = false
  @options[:dryrun] = false
  @options[:editor] = nil
  @options[:setting_up] = false
  @options[:is_temp] = false
  @options[:shell_copy] = false

  # Parse Options
  create_options_parser(arguments)
end

Public Instance Methods

call() click to toggle source
# File lib/gito.rb, line 88
def call
  if @options[:setting_up]
    if @options[:editor].nil?
        puts 'New new editor can\'t be empty'.red
      else
        update_configuration
        puts 'Updated the editor to: ' + @options[:editor].yellow
    end
  exit
  end

  if @url.nil?
    puts 'You need to insert a valid GIT URL/folder'
    exit
  end

  # handle the configuration
  update_configuration

  project = Project.new(@url)

  # Clone the repository
  project.clone(@options[:is_temp], @options[:shell_copy])

  # Open in editor
  if @options[:should_edit]
    project.open_editor @options[:editor]
  end

  # Open in Finder
  if @options[:should_open]
    project.open_folder
  end

  # Install dependencies
  unless @options[:dryrun]
    project.install_dependencies
  end

  puts "\n🚘  Finished".yellow

  # Change to directory
  project.change_directory

end
create_options_parser(args) click to toggle source
# File lib/gito.rb, line 32
def create_options_parser(args)
  args.options do |opts|
    opts.banner = 'Usage: gito GIT_URL [OPTIONS]'
    opts.separator ''
    opts.separator 'Options'

    opts.on('-s EDITOR', '--set-editor EDITOR', 'Set a custom editor to open the project (e.g. "atom", "subl", "vim", etc.') do |editor|
      @options[:editor] = editor.nil? ? nil : editor
      @options[:setting_up] = true
    end

    opts.on('-e', '--edit', 'Open the project on an editor') do |editor|
      @options[:should_edit] = true
    end

    opts.on('-o', '--open', 'Open the project on Finder') do |edit|
      @options[:should_open] = true
    end

    opts.on('-d', '--dryrun', 'Doesn\'t install the dependencies') do |dryrun|
      @options[:dryrun] = true
    end

    opts.on('-t', '--temp', 'Clones the project into a temporary folder') do |is_temp|
      @options[:is_temp] = true
    end

    opts.on('-c', '--shell-copy', 'Only makes a shell copy of the repository') do |is_temp|
      @options[:shell_copy] = true
    end

    opts.on('-h', '--help', 'Displays help') do
      puts opts.help
      exit
    end

    opts.on('-v', '--version', 'Displays the version') do
      puts Gito::VERSION
      exit
    end

    opts.parse!
  end
end
update_configuration() click to toggle source
# File lib/gito.rb, line 77
def update_configuration
  config_manager = ConfigManager.new
  app_config = config_manager.get

  if @options[:editor].nil?
    @options[:editor] = app_config[:editor]
  else
    config_manager.write_editor @options[:editor]
  end
end