Class | Gem::DependencyInstaller
In: | lib/rubygems/dependency_installer.rb
Parent: | Object

Installs a gem along with all its dependencies from local and remote gems.

### Methods

find_gems_with_sources find_spec_by_name_and_version gather_dependencies install new

### Included Modules

Gem::UserInteraction

### Constants

DEFAULT_OPTIONS | = | { :env_shebang => false, :domain => :both, # HACK dup :force => false, :format_executable => false, # HACK dup :ignore_dependencies => false, :security_policy => nil, # HACK NoSecurity requires OpenSSL. AlmostNo? Low? :wrappers => true

### Attributes

gems_to_install | [R] |
installed_gems | [R] |

### Public Class methods

new(options = {})

Creates a new installer instance.

Options are:

:cache_dir: | Alternate repository path to store .gem files in.
:domain: | :local, :remote, or :both. :local only searches gems in the current directory. :remote searches only gems in Gem::sources. :both searches both.
:env_shebang: | See Gem::Installer::new.
:force: | See Gem::Installer#install.
:format_executable: | See Gem::Installer#initialize.
:ignore_dependencies: | Don‘t install any dependencies.
:install_dir: | See Gem::Installer#install.
:security_policy: | See Gem::Installer::new and Gem::Security.
:wrappers: | See Gem::Installer::new

### Public Instance methods

find_gems_with_sources(dep)

Returns a list of pairs of gemspecs and source_uris that match Gem::Dependency `dep` from both local (Dir.pwd) and remote (Gem.sources) sources. Gems are sorted with newer gems prefered over older gems, and local gems preferred over remote gems.

find_spec_by_name_and_version(gem_name, version = Gem::Requirement.default)

Finds a spec and the source_uri it came from for gem `gem_name` and `version`. Returns an Array of specs and sources required for installation of the gem.

gather_dependencies()

Gathers all dependencies necessary for the installation from local and remote sources unless the ignore_dependencies was given.

install(dep_or_name, version = Gem::Requirement.default)

Installs the gem and all its dependencies. Returns an Array of installed gems specifications.

[Validate]