class Bundler::Plugin::API

Public Class Methods

command(command, cls = self) click to toggle source

The plugins should declare that they handle a command through this helper.

@param [String] command being handled by them @param [Class] (optional) class that handles the command. If not

provided, the `self` class will be used.
# File lib/bundler/plugin/api.rb, line 33
def self.command(command, cls = self)
  Plugin.add_command command, cls
end
hook(event, &block) click to toggle source
# File lib/bundler/plugin/api.rb, line 48
def self.hook(event, &block)
  Plugin.add_hook(event, &block)
end
source(source, cls = self) click to toggle source

The plugins should declare that they provide a installation source through this helper.

@param [String] the source type they provide @param [Class] (optional) class that handles the source. If not

provided, the `self` class will be used.
# File lib/bundler/plugin/api.rb, line 43
def self.source(source, cls = self)
  cls.send :include, Bundler::Plugin::API::Source
  Plugin.add_source source, cls
end

Public Instance Methods

cache_dir() click to toggle source

The cache dir to be used by the plugins for storage

@return [Pathname] path of the cache dir

# File lib/bundler/plugin/api.rb, line 55
def cache_dir
  Plugin.cache.join("plugins")
end
method_missing(name, *args, &blk) click to toggle source
Calls superclass method BasicObject#method_missing
# File lib/bundler/plugin/api.rb, line 67
def method_missing(name, *args, &blk)
  return Bundler.send(name, *args, &blk) if Bundler.respond_to?(name)

  return SharedHelpers.send(name, *args, &blk) if SharedHelpers.respond_to?(name)

  super
end
respond_to_missing?(name, include_private = false) click to toggle source
Calls superclass method Object#respond_to_missing?
# File lib/bundler/plugin/api.rb, line 75
def respond_to_missing?(name, include_private = false)
  SharedHelpers.respond_to?(name, include_private) ||
    Bundler.respond_to?(name, include_private) || super
end
tmp(*names) click to toggle source

A tmp dir to be used by plugins Accepts names that get concatenated as suffix

@return [Pathname] object for the new directory created

# File lib/bundler/plugin/api.rb, line 63
def tmp(*names)
  Bundler.tmp(["plugin", *names].join("-"))
end