Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove autoloading of plugins #2119

Merged
merged 4 commits into from Nov 28, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 0 additions & 1 deletion lib/pry.rb
Expand Up @@ -13,7 +13,6 @@

require 'pry/basic_object'
require 'pry/prompt'
require 'pry/plugins'
require 'pry/code_object'
require 'pry/exceptions'
require 'pry/hooks'
Expand Down
27 changes: 5 additions & 22 deletions lib/pry/cli.rb
Expand Up @@ -35,13 +35,6 @@ def add_options(&block)
self
end

# Bring in options defined in plugins
def add_plugin_options
Pry.plugins.values.each(&:load_cli_options)

self
end

# Add a block responsible for processing parsed options.
def add_option_processor(&block)
self.option_processors ||= []
Expand Down Expand Up @@ -124,15 +117,6 @@ def start(opts)
end
end

# Bring in options defined by plugins
Pry::Slop.new do
on "no-plugins" do
Pry.config.should_load_plugins = false
end
end.parse(ARGV.dup)

Pry::CLI.add_plugin_options if Pry.config.should_load_plugins

# The default Pry command line options (before plugin options are included)
Pry::CLI.add_options do
banner(
Expand Down Expand Up @@ -166,17 +150,16 @@ def start(opts)
Pry.config.should_load_local_rc = false
end

on :s, "select-plugin=", "Only load specified plugin (and no others)." do |plugin_name|
Pry.config.should_load_plugins = false
Pry.plugins[plugin_name].activate!
on :s, "select-plugin=", "Only load specified plugin (and no others)." do |_plugin_name|
warn "The --select-plugin option is deprecated and has no effect"
end

on :d, "disable-plugin=", "Disable a specific plugin." do |plugin_name|
Pry.plugins[plugin_name].disable!
on :d, "disable-plugin=", "Disable a specific plugin." do |_plugin_name|
warn "The --disable-plugin option is deprecated and has no effect"
end

on "no-plugins", "Suppress loading of plugins." do
Pry.config.should_load_plugins = false
warn "The --no-plugins option is deprecated and has no effect"
end

on "plugins", "List installed plugins." do
Expand Down
4 changes: 0 additions & 4 deletions lib/pry/config.rb
Expand Up @@ -73,9 +73,6 @@ class Config
# @return [Boolean] whether the local ./.pryrc should be loaded
attribute :should_load_local_rc

# @return [Boolean]
attribute :should_load_plugins

# @return [Boolean] whether to load files specified with the -r flag
attribute :should_load_requires

Expand Down Expand Up @@ -196,7 +193,6 @@ def initialize
output_prefix: '=> ',
requires: [],
should_load_requires: true,
should_load_plugins: true,
windows_console_warning: true,
control_d_handler: Pry::ControlDHandler.method(:default),
memory_size: 100,
Expand Down
139 changes: 0 additions & 139 deletions lib/pry/plugins.rb

This file was deleted.

5 changes: 0 additions & 5 deletions lib/pry/pry_class.rb
Expand Up @@ -24,8 +24,6 @@ class << self
attr_accessor :last_internal_error
attr_accessor :config

def_delegators :@plugin_manager, :plugins, :load_plugins, :locate_plugins

def_delegators(
:@config, :input, :input=, :output, :output=, :commands,
:commands=, :print, :print=, :exception_handler, :exception_handler=,
Expand Down Expand Up @@ -142,7 +140,6 @@ def self.final_session_setup
return if @session_finalized

@session_finalized = true
load_plugins if Pry.config.should_load_plugins
load_requires if Pry.config.should_load_requires
load_history if Pry.config.history_load
load_traps if Pry.config.should_trap_interrupts
Expand Down Expand Up @@ -333,9 +330,7 @@ def self.reset_defaults

# Basic initialization.
def self.init
@plugin_manager ||= PluginManager.new
reset_defaults
locate_plugins
end

# Return a `Binding` object for `target` or return `target` if it is
Expand Down
15 changes: 0 additions & 15 deletions spec/cli_spec.rb
Expand Up @@ -41,21 +41,6 @@
end
end

describe ".add_plugin_options" do
it "returns self" do
expect(described_class.add_plugin_options).to eq(described_class)
end

it "loads cli options of plugins" do
plugin_mock = double
expect(plugin_mock).to receive(:load_cli_options)
plugins = { 'pry-testplugin' => plugin_mock }
expect(Pry).to receive(:plugins).and_return(plugins)

described_class.add_plugin_options
end
end

describe ".add_option_processor" do
it "returns self" do
expect(described_class.add_option_processor {}).to eq(described_class)
Expand Down
1 change: 0 additions & 1 deletion spec/config_spec.rb
Expand Up @@ -28,7 +28,6 @@
specify { expect(subject.output_prefix).to be_a(String) }
specify { expect(subject.requires).to be_an(Array) }
specify { expect(subject.should_load_requires).to be(true).or be(false) }
specify { expect(subject.should_load_plugins).to be(true).or be(false) }
specify { expect(subject.windows_console_warning).to be(true).or be(false) }
specify { expect(subject.control_d_handler).to respond_to(:call) }
specify { expect(subject.memory_size).to be_a(Numeric) }
Expand Down