Class: Pry::PluginManager::Plugin

Inherits:
Object
  • Object
show all
Defined in:
lib/pry/plugins.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, gem_name, spec, enabled) ⇒ Plugin

Returns a new instance of Plugin.



19
20
21
# 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

Instance Attribute Details

#activeObject Also known as: active?

Returns the value of attribute active.



17
18
19
# File 'lib/pry/plugins.rb', line 17

def active
  @active
end

#enabledObject Also known as: enabled?

Returns the value of attribute enabled.



17
18
19
# File 'lib/pry/plugins.rb', line 17

def enabled
  @enabled
end

#gem_nameObject

Returns the value of attribute gem_name.



17
18
19
# File 'lib/pry/plugins.rb', line 17

def gem_name
  @gem_name
end

#nameObject

Returns the value of attribute name.



17
18
19
# File 'lib/pry/plugins.rb', line 17

def name
  @name
end

#specObject

Returns the value of attribute spec.



17
18
19
# File 'lib/pry/plugins.rb', line 17

def spec
  @spec
end

Instance Method Details

#activate!Object

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.



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/pry/plugins.rb', line 44

def activate!
  # Create the configuration object for the plugin.
  Pry.config.send("#{gem_name.gsub('-', '_')}=", Pry::Config.from_hash({}))

  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!Object

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



25
26
27
# File 'lib/pry/plugins.rb', line 25

def disable!
  self.enabled = false
end

#enable!Object

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



31
32
33
# File 'lib/pry/plugins.rb', line 31

def enable!
  self.enabled = true
end

#load_cli_optionsObject

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



36
37
38
39
# 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.exist?(cli_options_file)
end