mirror of
https://github.com/pry/pry.git
synced 2022-11-09 12:35:05 -05:00
Group command-commands into their own set
This commit is contained in:
parent
0b457ba9fa
commit
563f6e89a5
4 changed files with 64 additions and 55 deletions
|
@ -21,7 +21,6 @@ class Pry
|
|||
@commands = {}
|
||||
@helper_module = Module.new
|
||||
|
||||
define_default_commands
|
||||
import(*imported_sets)
|
||||
|
||||
instance_eval(&block) if block
|
||||
|
@ -340,53 +339,6 @@ class Pry
|
|||
:takes_block => false
|
||||
}
|
||||
end
|
||||
|
||||
def define_default_commands
|
||||
create_command "install-command", "Install a disabled command." do |name|
|
||||
|
||||
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
|
||||
|
||||
# Wraps the return result of process_commands, indicates if the
|
||||
|
|
|
@ -2,6 +2,7 @@ require "pry/default_commands/basic"
|
|||
require "pry/default_commands/help"
|
||||
require "pry/default_commands/gems"
|
||||
require "pry/default_commands/context"
|
||||
require "pry/default_commands/commands"
|
||||
require "pry/default_commands/input_and_output"
|
||||
require "pry/default_commands/introspection"
|
||||
require "pry/default_commands/editing"
|
||||
|
@ -23,5 +24,6 @@ class Pry
|
|||
import DefaultCommands::InputAndOutput
|
||||
import DefaultCommands::Introspection
|
||||
import DefaultCommands::EasterEggs
|
||||
import DefaultCommands::Commands
|
||||
end
|
||||
end
|
||||
|
|
|
@ -20,13 +20,6 @@ class Pry
|
|||
output.puts "Pry version: #{Pry::VERSION} on Ruby #{RUBY_VERSION}."
|
||||
end
|
||||
|
||||
command "import-set", "Import a command set" do |command_set_name|
|
||||
raise CommandError, "Provide a command set name" if command_set.nil?
|
||||
|
||||
set = target.eval(arg_string)
|
||||
_pry_.commands.import set
|
||||
end
|
||||
|
||||
command "reload-method", "Reload the source file that contains the specified method" do |meth_name|
|
||||
meth = get_method_or_raise(meth_name, target, {}, :omit_help)
|
||||
|
||||
|
|
62
lib/pry/default_commands/commands.rb
Normal file
62
lib/pry/default_commands/commands.rb
Normal file
|
@ -0,0 +1,62 @@
|
|||
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
|
||||
|
Loading…
Add table
Reference in a new issue