Skip to content

Commit

Permalink
Merge pull request #2119 from mvz/issue-1241-remove-autoloading-of-pl…
Browse files Browse the repository at this point in the history
…ugins

Remove autoloading of plugins
  • Loading branch information
kyrylo committed Nov 28, 2020
2 parents 845cd6d + 6901976 commit a619cfb
Show file tree
Hide file tree
Showing 7 changed files with 5 additions and 187 deletions.
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

0 comments on commit a619cfb

Please sign in to comment.