class Pry::PluginManager::Plugin

Attributes

active[RW]
active?[RW]
enabled[RW]
enabled?[RW]
gem_name[RW]
name[RW]
spec[RW]

Public Class Methods

new(name, gem_name, spec, enabled) click to toggle source
# File lib/pry/plugins.rb, line 19
def initialize(name, gem_name, spec, enabled)
  @name, @gem_name, @enabled, @spec = name, gem_name, enabled, spec
end

Public Instance Methods

activate!() click to toggle source

Activate the plugin (require the gem - enables/loads the plugin immediately at point of call, even if plugin is disabled) Does not reload plugin if it's already active.

# File lib/pry/plugins.rb, line 44
def activate!
  # Create the configuration object for the plugin.
  Pry.config.send("#{gem_name.gsub('-', '_')}=", OpenStruct.new)

  begin
    require gem_name if !active?
  rescue LoadError => e
    warn "Found plugin #{gem_name}, but could not require '#{gem_name}'"
    warn e
  rescue => e
    warn "require '#{gem_name}' # Failed, saying: #{e}"
  end

  self.active = true
  self.enabled = true
end
disable!() click to toggle source

Disable a plugin. (prevents plugin from being loaded, cannot disable an already activated plugin)

# File lib/pry/plugins.rb, line 25
def disable!
  self.enabled = false
end
enable!() click to toggle source

Enable a plugin. (does not load it immediately but puts on 'white list' to be loaded)

# File lib/pry/plugins.rb, line 31
def enable!
  self.enabled = true
end
load_cli_options() click to toggle source

Load the Command line options defined by this plugin (if they exist)

# File lib/pry/plugins.rb, line 36
def load_cli_options
  cli_options_file = File.join(spec.full_gem_path, "lib/#{spec.name}/cli.rb")
  require cli_options_file if File.exists?(cli_options_file)
end