Sha256: 5a4808fd957c459457147f564787dd12da57c9bfc2639ddfb86ba492dbb446ec

Contents?: true

Size: 1.23 KB

Versions: 2

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literal: true

module InstallGemLocal
  class Action
    extend InstallGemLocal::InstallGem
    extend InstallGemLocal::CopyGem
    extend InstallGemLocal::RemoveGem
    extend InstallGemLocal::BuildGem
    extend InstallGemLocal::PushGem

    class << self
      def till_install
        remove_gem
        build_gem
        install_gem
      end

      def till_copy
        till_install
        copy_gem
      end

      private

      def tty_command
        @tty_command ||= TTY::Command.new(uuid: false, printer: :quiet)
      end

      def file_names
        file = tty_command.run('find -type f -name "*.gem"')
        file.entries
      end

      def multiple_version_selection(include_all: false)
        options =
          include_all ? { '*' => { 'value' => 'all', 'display' => 'All Versions' } } : {}
        file_names.each_with_index do |file_name, index|
          options[('a'..'z').to_a[index]] = { 'value' => file_name, 'display' => file_name }
        end
        options['/'] = { 'value' => 'exit', 'display' => 'Exit' }
        InstallGemLocal::Helper.prompt_options(
          flash_message: InstallGemLocal::Helper.flash_message(title: 'Choose Version'),
          options: options
        )
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
install_gem_local-0.1.19 lib/install_gem_local/action.rb
install_gem_local-0.1.18 lib/install_gem_local/action.rb