Sha256: 8d94b654c5941e57135c84527edaa190405ff8a15bf45f2709c48e6cceb3d80a

Contents?: true

Size: 1.92 KB

Versions: 59

Compression:

Stored size: 1.92 KB

Contents

class Pry
  module DefaultCommands
    Commands = Pry::CommandSet.new do
      create_command "import-set", "Import a command set" do
        group "Commands"
        def process(command_set_name)
          raise CommandError, "Provide a command set name" if command_set.nil?

          set = target.eval(arg_string)
          _pry_.commands.import set
        end
      end

      create_command "install-command", "Install a disabled command." do |name|
        group 'Commands'

        banner <<-BANNER
          Usage: install-command COMMAND

          Installs the gems necessary to run the given COMMAND. You will generally not
          need to run this unless told to by an error message.
        BANNER

        def process(name)
          require 'rubygems/dependency_installer' unless defined? Gem::DependencyInstaller
          command = find_command(name)

          if command_dependencies_met?(command.options)
            output.puts "Dependencies for #{command.name} are met. Nothing to do."
            return
          end

          output.puts "Attempting to install `#{name}` command..."
          gems_to_install = Array(command.options[:requires_gem])

          gems_to_install.each do |g|
            next if gem_installed?(g)
            output.puts "Installing `#{g}` gem..."

            begin
              Gem::DependencyInstaller.new.install(g)
            rescue Gem::GemNotFoundException
              raise CommandError, "Required Gem: `#{g}` not found. Aborting command installation."
            end
          end

          Gem.refresh
          gems_to_install.each do |g|
            begin
              require g
            rescue LoadError
              raise CommandError, "Required Gem: `#{g}` installed but not found?!. Aborting command installation."
            end
          end

          output.puts "Installation of `#{name}` successful! Type `help #{name}` for information"
        end
      end
    end
  end
end

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
pry-0.9.10 lib/pry/default_commands/commands.rb
pry-0.9.10-i386-mswin32 lib/pry/default_commands/commands.rb
pry-0.9.10-i386-mingw32 lib/pry/default_commands/commands.rb
pry-0.9.10-java lib/pry/default_commands/commands.rb
pry-0.9.10pre1 lib/pry/default_commands/commands.rb
pry-0.9.10pre1-i386-mswin32 lib/pry/default_commands/commands.rb
pry-0.9.10pre1-i386-mingw32 lib/pry/default_commands/commands.rb
pry-0.9.10pre1-java lib/pry/default_commands/commands.rb
pry-0.10.pre.1-i386-mingw32 lib/pry/default_commands/commands.rb
pry-0.10.pre.1-java lib/pry/default_commands/commands.rb
pry-0.10.pre.1-i386-mswin32 lib/pry/default_commands/commands.rb
pry-0.9.9.6 lib/pry/default_commands/commands.rb
pry-0.9.9.6-i386-mswin32 lib/pry/default_commands/commands.rb
pry-0.9.9.6-i386-mingw32 lib/pry/default_commands/commands.rb
pry-0.9.9.6-java lib/pry/default_commands/commands.rb
pry-0.9.9.6pre2 lib/pry/default_commands/commands.rb
pry-0.9.9.6pre2-i386-mswin32 lib/pry/default_commands/commands.rb
pry-0.9.9.6pre2-i386-mingw32 lib/pry/default_commands/commands.rb
pry-0.9.9.6pre2-java lib/pry/default_commands/commands.rb
pry-0.9.9.6pre1 lib/pry/default_commands/commands.rb