Module: Bundler (Ruby 2.7.5)
Description: Module : Bundler - Ruby 2.7.5

### Home Classes Methods

### In Files

- bundler.rb
- bundler/build_metadata.rb
- bundler/capistrano.rb
- bundler/cli.rb
- bundler/cli/add.rb
- bundler/cli/binstubs.rb
- bundler/cli/cache.rb
- bundler/cli/check.rb
- bundler/cli/clean.rb
- bundler/cli/common.rb
- bundler/cli/config.rb
- bundler/cli/console.rb
- bundler/cli/doctor.rb
- bundler/cli/exec.rb
- bundler/cli/gem.rb
- bundler/cli/info.rb
- bundler/cli/init.rb
- bundler/cli/inject.rb
- bundler/cli/install.rb
- bundler/cli/issue.rb
- bundler/cli/list.rb
- bundler/cli/lock.rb
- bundler/cli/open.rb
- bundler/cli/outdated.rb
- bundler/cli/package.rb
- bundler/cli/platform.rb
- bundler/cli/plugin.rb
- bundler/cli/pristine.rb
- bundler/cli/remove.rb
- bundler/cli/show.rb
- bundler/cli/update.rb
- bundler/cli/viz.rb
- bundler/compact_index_client.rb
- bundler/compact_index_client/cache.rb
- bundler/compact_index_client/updater.rb
- bundler/constants.rb
- bundler/current_ruby.rb
- bundler/definition.rb
- bundler/dep_proxy.rb
- bundler/dependency.rb
- bundler/deployment.rb
- bundler/deprecate.rb
- bundler/dsl.rb
- bundler/endpoint_specification.rb
- bundler/env.rb
- bundler/environment_preserver.rb
- bundler/errors.rb
- bundler/feature_flag.rb
- bundler/fetcher.rb
- bundler/fetcher/base.rb
- bundler/fetcher/compact_index.rb
- bundler/fetcher/dependency.rb
- bundler/fetcher/downloader.rb
- bundler/fetcher/index.rb
- bundler/friendly_errors.rb
- bundler/gem_helper.rb
- bundler/gem_helpers.rb
- bundler/gem_remote_fetcher.rb
- bundler/gem_tasks.rb
- bundler/gem_version_promoter.rb
- bundler/gemdeps.rb
- bundler/graph.rb
- bundler/index.rb
- bundler/injector.rb
- bundler/inline.rb
- bundler/installer.rb
- bundler/installer/gem_installer.rb
- bundler/installer/parallel_installer.rb
- bundler/installer/standalone.rb
- bundler/lazy_specification.rb
- bundler/lockfile_generator.rb
- bundler/lockfile_parser.rb
- bundler/match_platform.rb
- bundler/mirror.rb
- bundler/plugin.rb
- bundler/plugin/api.rb
- bundler/plugin/api/source.rb
- bundler/plugin/dsl.rb
- bundler/plugin/events.rb
- bundler/plugin/index.rb
- bundler/plugin/installer.rb
- bundler/plugin/installer/git.rb
- bundler/plugin/installer/rubygems.rb
- bundler/plugin/source_list.rb
- bundler/process_lock.rb
- bundler/psyched_yaml.rb
- bundler/remote_specification.rb
- bundler/resolver.rb
- bundler/resolver/spec_group.rb
- bundler/retry.rb
- bundler/ruby_dsl.rb
- bundler/ruby_version.rb
- bundler/rubygems_ext.rb
- bundler/rubygems_gem_installer.rb
- bundler/rubygems_integration.rb
- bundler/runtime.rb
- bundler/settings.rb
- bundler/settings/validator.rb
- bundler/setup.rb
- bundler/shared_helpers.rb
- bundler/similarity_detector.rb
- bundler/source.rb
- bundler/source/gemspec.rb
- bundler/source/git.rb
- bundler/source/git/git_proxy.rb
- bundler/source/metadata.rb
- bundler/source/path.rb
- bundler/source/path/installer.rb
- bundler/source/rubygems.rb
- bundler/source/rubygems/remote.rb
- bundler/source_list.rb
- bundler/spec_set.rb
- bundler/stub_specification.rb
- bundler/ui.rb
- bundler/ui/rg_proxy.rb
- bundler/ui/shell.rb
- bundler/ui/silent.rb
- bundler/uri_credentials_filter.rb
- bundler/vendor/connection_pool/lib/connection_pool.rb
- bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb
- bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb
- bundler/vendor/connection_pool/lib/connection_pool/version.rb
- bundler/vendor/fileutils/lib/fileutils.rb
- bundler/vendor/fileutils/lib/fileutils/version.rb
- bundler/vendor/molinillo/lib/molinillo.rb
- bundler/vendor/molinillo/lib/molinillo/compatibility.rb
- bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
- bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
- bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb
- bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb
- bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb
- bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
- bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb
- bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb
- bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb
- bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb
- bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb
- bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb
- bundler/vendor/molinillo/lib/molinillo/errors.rb
- bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb
- bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb
- bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
- bundler/vendor/molinillo/lib/molinillo/resolution.rb
- bundler/vendor/molinillo/lib/molinillo/resolver.rb
- bundler/vendor/molinillo/lib/molinillo/state.rb
- bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
- bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
- bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
- bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb
- bundler/vendor/thor/lib/thor.rb
- bundler/vendor/thor/lib/thor/actions.rb
- bundler/vendor/thor/lib/thor/actions/create_file.rb
- bundler/vendor/thor/lib/thor/actions/create_link.rb
- bundler/vendor/thor/lib/thor/actions/directory.rb
- bundler/vendor/thor/lib/thor/actions/empty_directory.rb
- bundler/vendor/thor/lib/thor/actions/file_manipulation.rb
- bundler/vendor/thor/lib/thor/actions/inject_into_file.rb
- bundler/vendor/thor/lib/thor/base.rb
- bundler/vendor/thor/lib/thor/command.rb
- bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb
- bundler/vendor/thor/lib/thor/core_ext/ordered_hash.rb
- bundler/vendor/thor/lib/thor/error.rb
- bundler/vendor/thor/lib/thor/group.rb
- bundler/vendor/thor/lib/thor/invocation.rb
- bundler/vendor/thor/lib/thor/line_editor.rb
- bundler/vendor/thor/lib/thor/line_editor/basic.rb
- bundler/vendor/thor/lib/thor/line_editor/readline.rb
- bundler/vendor/thor/lib/thor/nested_context.rb
- bundler/vendor/thor/lib/thor/parser/argument.rb
- bundler/vendor/thor/lib/thor/parser/arguments.rb
- bundler/vendor/thor/lib/thor/parser/option.rb
- bundler/vendor/thor/lib/thor/parser/options.rb
- bundler/vendor/thor/lib/thor/rake_compat.rb
- bundler/vendor/thor/lib/thor/runner.rb
- bundler/vendor/thor/lib/thor/shell.rb
- bundler/vendor/thor/lib/thor/shell/basic.rb
- bundler/vendor/thor/lib/thor/shell/color.rb
- bundler/vendor/thor/lib/thor/shell/html.rb
- bundler/vendor/thor/lib/thor/util.rb
- bundler/vendor/thor/lib/thor/version.rb
- bundler/vendor/uri/lib/uri.rb
- bundler/vendor/uri/lib/uri/common.rb
- bundler/vendor/uri/lib/uri/file.rb
- bundler/vendor/uri/lib/uri/ftp.rb
- bundler/vendor/uri/lib/uri/generic.rb
- bundler/vendor/uri/lib/uri/http.rb
- bundler/vendor/uri/lib/uri/https.rb
- bundler/vendor/uri/lib/uri/ldap.rb
- bundler/vendor/uri/lib/uri/ldaps.rb
- bundler/vendor/uri/lib/uri/mailto.rb
- bundler/vendor/uri/lib/uri/rfc2396_parser.rb
- bundler/vendor/uri/lib/uri/rfc3986_parser.rb
- bundler/vendor/uri/lib/uri/version.rb
- bundler/vendored_fileutils.rb
- bundler/vendored_molinillo.rb
- bundler/vendored_persistent.rb
- bundler/vendored_thor.rb
- bundler/vendored_uri.rb
- bundler/version.rb
- bundler/version_ranges.rb
- bundler/vlad.rb
- bundler/worker.rb
- bundler/yaml_serializer.rb

### Namespace

- MODULE Bundler::BuildMetadata
- MODULE Bundler::FileUtils
- MODULE Bundler::FriendlyErrors
- MODULE Bundler::GemHelpers
- MODULE Bundler::MatchPlatform
- MODULE Bundler::Molinillo
- MODULE Bundler::Persistent
- MODULE Bundler::Plugin
- MODULE Bundler::RubyDsl
- MODULE Bundler::SharedHelpers
- MODULE Bundler::UI
- MODULE Bundler::URI
- MODULE Bundler::URICredentialsFilter
- MODULE Bundler::VersionRanges
- MODULE Bundler::YAMLSerializer
- CLASS Bundler::APIResponseMismatchError
- CLASS Bundler::BundlerError
- CLASS Bundler::CLI
- CLASS Bundler::CompactIndexClient
- CLASS Bundler::ConnectionPool
- CLASS Bundler::CurrentRuby
- CLASS Bundler::CyclicDependencyError
- CLASS Bundler::Definition
- CLASS Bundler::DepProxy
- CLASS Bundler::Dependency
- CLASS Bundler::Deployment
- CLASS Bundler::Deprecate
- CLASS Bundler::DeprecatedError
- CLASS Bundler::Dsl
- CLASS Bundler::EndpointSpecification
- CLASS Bundler::Env
- CLASS Bundler::EnvironmentPreserver
- CLASS Bundler::FeatureFlag
- CLASS Bundler::Fetcher
- CLASS Bundler::GemHelper
- CLASS Bundler::GemInstaller
- CLASS Bundler::GemNotFound
- CLASS Bundler::GemRemoteFetcher
- CLASS Bundler::GemRequireError
- CLASS Bundler::GemVersionPromoter
- CLASS Bundler::Gemdeps
- CLASS Bundler::GemfileError
- CLASS Bundler::GemfileEvalError
- CLASS Bundler::GemfileLockNotFound
- CLASS Bundler::GemfileNotFound
- CLASS Bundler::GemspecError
- CLASS Bundler::GenericSystemCallError
- CLASS Bundler::GitError
- CLASS Bundler::Graph
- CLASS Bundler::HTTPError
- CLASS Bundler::Index
- CLASS Bundler::Injector
- CLASS Bundler::InstallError
- CLASS Bundler::InstallHookError
- CLASS Bundler::Installer
- CLASS Bundler::InvalidOption
- CLASS Bundler::LazySpecification
- CLASS Bundler::LockfileError
- CLASS Bundler::LockfileGenerator
- CLASS Bundler::LockfileParser
- CLASS Bundler::MarshalError
- CLASS Bundler::MirrorSockets
- CLASS Bundler::NoSpaceOnDeviceError
- CLASS Bundler::OperationNotSupportedError
- CLASS Bundler::ParallelInstaller
- CLASS Bundler::PathError
- CLASS Bundler::PermissionError
- CLASS Bundler::PersistentHTTP
- CLASS Bundler::PluginError
- CLASS Bundler::ProcessLock
- CLASS Bundler::ProductionError
- CLASS Bundler::RemoteSpecification
- CLASS Bundler::Resolver
- CLASS Bundler::Retry
- CLASS Bundler::RubyGemsGemInstaller
- CLASS Bundler::RubyVersion
- CLASS Bundler::RubyVersionMismatch
- CLASS Bundler::RubygemsIntegration
- CLASS Bundler::Runtime
- CLASS Bundler::SecurityError
- CLASS Bundler::Settings
- CLASS Bundler::SimilarityDetector
- CLASS Bundler::SocketAddress
- CLASS Bundler::Source
- CLASS Bundler::SourceList
- CLASS Bundler::SpecSet
- CLASS Bundler::Standalone
- CLASS Bundler::StubSpecification
- CLASS Bundler::SudoNotPermittedError
- CLASS Bundler::TemporaryResourceError
- CLASS Bundler::Thor
- CLASS Bundler::ThreadCreationError
- CLASS Bundler::VersionConflict
- CLASS Bundler::VirtualProtocolError
- CLASS Bundler::Worker
- CLASS Bundler::YamlSyntaxError

### Methods

- ::URI
- ::app_cache
- ::app_config_path
- ::bin_path
- ::bundle_path
- ::bundler_major_version
- ::clean_env
- ::clean_exec
- ::clean_system
- ::clear_gemspec_cache
- ::configure
- ::configured_bundle_path
- ::current_ruby
- ::default_bundle_dir
- ::default_gemfile
- ::default_lockfile
- ::definition
- ::environment
- ::feature_flag
- ::frozen_bundle?
- ::git_present?
- ::home
- ::install_path
- ::load
- ::load_gemspec
- ::load_gemspec_uncached
- ::load_marshal
- ::local_platform
- ::locked_gems
- ::mkdir_p
- ::original_env
- ::original_exec
- ::original_system
- ::read_file
- ::require
- ::require_thor_actions
- ::requires_sudo?
- ::reset!
- ::reset_paths!
- ::reset_rubygems!
- ::rm_rf
- ::root
- ::ruby_scope
- ::rubygems
- ::settings
- ::setup
- ::specs_path
- ::sudo
- ::system_bindir
- ::tmp
- ::ui
- ::ui=
- ::unbundled_env
- ::unbundled_exec
- ::unbundled_system
- ::use_system_gems?
- ::user_bundle_path
- ::user_cache
- ::user_home
- ::which
- ::with_clean_env
- ::with_friendly_errors
- ::with_original_env
- ::with_unbundled_env

### Class/Module Index

Quicksearch

- AmbiguousCommandError
- AmbiguousTaskError
- Bundler
- Bundler::APIResponseMismatchError
- Bundler::BuildMetadata
- Bundler::BundlerError
- Bundler::CLI
- Bundler::CLI::Add
- Bundler::CLI::Binstubs
- Bundler::CLI::Cache
- Bundler::CLI::Check
- Bundler::CLI::Clean
- Bundler::CLI::Common
- Bundler::CLI::Config
- Bundler::CLI::Config::Base
- Bundler::CLI::Console
- Bundler::CLI::Doctor
- Bundler::CLI::Exec
- Bundler::CLI::Gem
- Bundler::CLI::Info
- Bundler::CLI::Init
- Bundler::CLI::Inject
- Bundler::CLI::Install
- Bundler::CLI::Issue
- Bundler::CLI::List
- Bundler::CLI::Lock
- Bundler::CLI::Open
- Bundler::CLI::Outdated
- Bundler::CLI::Package
- Bundler::CLI::Platform
- Bundler::CLI::Plugin
- Bundler::CLI::Pristine
- Bundler::CLI::Remove
- Bundler::CLI::Show
- Bundler::CLI::Update
- Bundler::CLI::Viz
- Bundler::CompactIndexClient
- Bundler::CompactIndexClient::Cache
- Bundler::CompactIndexClient::Error
- Bundler::CompactIndexClient::Updater
- Bundler::CompactIndexClient::Updater::MisMatchedChecksumError
- Bundler::ConnectionPool
- Bundler::ConnectionPool::Error
- Bundler::ConnectionPool::PoolShuttingDownError
- Bundler::ConnectionPool::TimedStack
- Bundler::ConnectionPool::Wrapper
- Bundler::CurrentRuby
- Bundler::CyclicDependencyError
- Bundler::Definition
- Bundler::DepProxy
- Bundler::Dependency
- Bundler::Deployment
- Bundler::Deprecate
- Bundler::DeprecatedError
- Bundler::Dsl
- Bundler::Dsl::DSLError
- Bundler::EndpointSpecification
- Bundler::Env
- Bundler::EnvironmentPreserver
- Bundler::FeatureFlag
- Bundler::Fetcher
- Bundler::Fetcher::AuthenticationRequiredError
- Bundler::Fetcher::BadAuthenticationError
- Bundler::Fetcher::Base
- Bundler::Fetcher::CertificateFailureError
- Bundler::Fetcher::CompactIndex
- Bundler::Fetcher::Dependency
- Bundler::Fetcher::Downloader
- Bundler::Fetcher::FallbackError
- Bundler::Fetcher::Index
- Bundler::Fetcher::NetworkDownError
- Bundler::Fetcher::SSLError
- Bundler::Fetcher::TooManyRequestsError
- Bundler::FileUtils
- Bundler::FileUtils::DryRun
- Bundler::FileUtils::NoWrite
- Bundler::FileUtils::StreamUtils_
- Bundler::FileUtils::Verbose
- Bundler::FriendlyErrors
- Bundler::GemHelper
- Bundler::GemHelpers
- Bundler::GemHelpers::PlatformMatch
- Bundler::GemInstaller
- Bundler::GemNotFound
- Bundler::GemRemoteFetcher
- Bundler::GemRequireError
- Bundler::GemVersionPromoter
- Bundler::Gemdeps
- Bundler::GemfileError
- Bundler::GemfileEvalError
- Bundler::GemfileLockNotFound
- Bundler::GemfileNotFound
- Bundler::GemspecError
- Bundler::GenericSystemCallError
- Bundler::GitError
- Bundler::Graph
- Bundler::Graph::GraphVizClient
- Bundler::HTTPError
- Bundler::Index
- Bundler::Injector
- Bundler::InstallError
- Bundler::InstallHookError
- Bundler::Installer
- Bundler::InvalidOption
- Bundler::LazySpecification
- Bundler::LazySpecification::Identifier
- Bundler::LockfileError
- Bundler::LockfileGenerator
- Bundler::LockfileParser
- Bundler::MarshalError
- Bundler::MatchPlatform
- Bundler::MirrorSockets
- Bundler::Molinillo
- Bundler::Molinillo::CircularDependencyError
- Bundler::Molinillo::Compatibility
- Bundler::Molinillo::Delegates
- Bundler::Molinillo::Delegates::ResolutionState
- Bundler::Molinillo::Delegates::SpecificationProvider
- Bundler::Molinillo::DependencyGraph
- Bundler::Molinillo::DependencyGraph::Action
- Bundler::Molinillo::DependencyGraph::AddEdgeNoCircular
- Bundler::Molinillo::DependencyGraph::DeleteEdge
- Bundler::Molinillo::DependencyGraph::DetachVertexNamed
- Bundler::Molinillo::DependencyGraph::Log
- Bundler::Molinillo::DependencyGraph::Tag
- Bundler::Molinillo::DependencyGraph::Vertex
- Bundler::Molinillo::DependencyState
- Bundler::Molinillo::NoSuchDependencyError
- Bundler::Molinillo::PossibilityState
- Bundler::Molinillo::ResolutionState
- Bundler::Molinillo::Resolver
- Bundler::Molinillo::Resolver::Resolution
- Bundler::Molinillo::Resolver::Resolution::Conflict
- Bundler::Molinillo::Resolver::Resolution::PossibilitySet
- Bundler::Molinillo::Resolver::Resolution::UnwindDetails
- Bundler::Molinillo::ResolverError
- Bundler::Molinillo::SpecificationProvider
- Bundler::Molinillo::UI
- Bundler::Molinillo::VersionConflict
- Bundler::NoSpaceOnDeviceError
- Bundler::OperationNotSupportedError
- Bundler::ParallelInstaller
- Bundler::ParallelInstaller::SpecInstallation
- Bundler::PathError
- Bundler::PermissionError
- Bundler::Persistent
- Bundler::Persistent::Net
- Bundler::Persistent::Net::HTTP
- Bundler::Persistent::Net::HTTP::Persistent
- Bundler::Persistent::Net::HTTP::Persistent::Error
- Bundler::PersistentHTTP
- Bundler::Plugin
- Bundler::Plugin::API
- Bundler::Plugin::API::Source
- Bundler::Plugin::DSL
- Bundler::Plugin::DSL::PluginGemfileError
- Bundler::Plugin::Events
- Bundler::Plugin::Index
- Bundler::Plugin::Index::CommandConflict
- Bundler::Plugin::Index::SourceConflict
- Bundler::Plugin::Installer
- Bundler::Plugin::Installer::Git
- Bundler::Plugin::Installer::Rubygems
- Bundler::Plugin::MalformattedPlugin
- Bundler::Plugin::SourceList
- Bundler::Plugin::UndefinedCommandError
- Bundler::Plugin::UnknownSourceError
- Bundler::PluginError
- Bundler::ProcessLock
- Bundler::ProductionError
- Bundler::RemoteSpecification
- Bundler::Resolver
- Bundler::Resolver::SpecGroup
- Bundler::Retry
- Bundler::RubyDsl
- Bundler::RubyGemsGemInstaller
- Bundler::RubyVersion
- Bundler::RubyVersionMismatch
- Bundler::RubygemsIntegration
- Bundler::RubygemsIntegration::Gem
- Bundler::Runtime
- Bundler::SecurityError
- Bundler::Settings
- Bundler::Settings::Mirror
- Bundler::Settings::MirrorConfig
- Bundler::Settings::Mirrors
- Bundler::Settings::TCPSocketProbe
- Bundler::Settings::Validator
- Bundler::Settings::Validator::Rule
- Bundler::SharedHelpers
- Bundler::SimilarityDetector
- Bundler::SocketAddress
- Bundler::Source
- Bundler::Source::Gemspec
- Bundler::Source::Git
- Bundler::Source::Git::GitCommandError
- Bundler::Source::Git::GitNotAllowedError
- Bundler::Source::Git::GitNotInstalledError
- Bundler::Source::Git::GitProxy
- Bundler::Source::Git::MissingGitRevisionError
- Bundler::Source::Metadata
- Bundler::Source::Path
- Bundler::Source::Path::Installer
- Bundler::Source::Rubygems
- Bundler::Source::Rubygems::Remote
- Bundler::SourceList
- Bundler::SpecSet
- Bundler::Standalone
- Bundler::StubSpecification
- Bundler::SudoNotPermittedError
- Bundler::TemporaryResourceError
- Bundler::Thor::Actions
- Bundler::Thor::Actions::CapturableERB
- Bundler::Thor::Actions::ClassMethods
- Bundler::Thor::Base
- Bundler::Thor::Base::ClassMethods
- Bundler::Thor::Command
- Bundler::Thor::CoreExt
- Bundler::Thor::CoreExt::OrderedHash
- Bundler::Thor::DynamicCommand
- Bundler::Thor::DynamicTask
- Bundler::Thor::Group
- Bundler::Thor::HiddenCommand
- Bundler::Thor::HiddenTask
- Bundler::Thor::Invocation
- Bundler::Thor::Invocation::ClassMethods
- Bundler::Thor::LineEditor
- Bundler::Thor::LineEditor::Basic
- Bundler::Thor::LineEditor::Readline
- Bundler::Thor::LineEditor::Readline::PathCompletion
- Bundler::Thor::NestedContext
- Bundler::Thor::RakeCompat
- Bundler::Thor::Shell
- Bundler::Thor::Shell::Basic
- Bundler::Thor::Shell::Color
- Bundler::Thor::Shell::HTML
- Bundler::Thor::Task
- Bundler::Thor::Util
- Bundler::ThreadCreationError
- Bundler::UI
- Bundler::UI::RGProxy
- Bundler::UI::Shell
- Bundler::UI::Silent
- Bundler::URI
- Bundler::URI::BadURIError
- Bundler::URI::Error
- Bundler::URI::Escape
- Bundler::URI::FTP
- Bundler::URI::File
- Bundler::URI::Generic
- Bundler::URI::HTTP
- Bundler::URI::HTTPS
- Bundler::URI::InvalidComponentError
- Bundler::URI::InvalidURIError
- Bundler::URI::LDAP
- Bundler::URI::LDAPS
- Bundler::URI::MailTo
- Bundler::URI::Parser
- Bundler::URI::REGEXP
- Bundler::URI::RFC2396_Parser
- Bundler::URI::RFC2396_REGEXP
- Bundler::URI::RFC2396_REGEXP::PATTERN
- Bundler::URICredentialsFilter
- Bundler::VersionConflict
- Bundler::VersionRanges
- Bundler::VersionRanges::ReqR
- Bundler::VirtualProtocolError
- Bundler::Worker
- Bundler::Worker::WrappedException
- Bundler::YAMLSerializer
- Bundler::YamlSyntaxError
- Error
- Gem
- Gem::Dependency
- Gem::Platform
- Gem::Specification
- InvocationError
- Kernel
- MalformattedArgumentError
- Object
- RequiredArgumentMissingError
- UndefinedCommandError
- UndefinedCommandError::SpellChecker
- UndefinedTaskError
- UnknownArgumentError
- UnknownArgumentError::SpellChecker

No matching classes.

# Bundler

`Bundler` provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed.

Since Ruby 2.6, `Bundler` is a part of Ruby's standard library.

Bunder is used by creating gemfiles listing all the project dependencies and (optionally) their versions and then using

    require 'bundler/setup'

or `Bundler.setup` to setup environment where only specified gems and their specified versions could be used.

See Bundler website for extensive documentation on gemfiles creation and `Bundler` usage.

As a standard library inside project, `Bundler` could be used for introspection of loaded and required modules.

### Constants

Deprecate
FREEBSD
NULL
ORIGINAL_ENV
SUDO_MUTEX
VERSION
WINDOWS
YamlLibrarySyntaxError

### Public Class Methods

URI(uri) click to toggle source

Returns `uri` converted to an `Bundler::URI` object.

                   # File bundler/vendor/uri/lib/uri/common.rb, line 733
    def URI(uri)
      if uri.is_a?(Bundler::URI::Generic)
        uri
      elsif uri = String.try_convert(uri)
        Bundler::URI.parse(uri)
      else
        raise ArgumentError,
          "bad argument (expected Bundler::URI object or Bundler::URI string)"
      end
    end

app_cache(custom_path = nil) click to toggle source

                   # File bundler.rb, line 294
    def app_cache(custom_path = nil)
      path = custom_path || root
      Pathname.new(path).join(settings.app_cache_path)
    end

app_config_path() click to toggle source

                   # File bundler.rb, line 286
    def app_config_path
      if app_config = ENV["BUNDLE_APP_CONFIG"]
        Pathname.new(app_config).expand_path(root)
      else
        root.join(".bundle")
      end
    end

bin_path() click to toggle source

Returns absolute location of where binstubs are installed to.

                   # File bundler.rb, line 103
    def bin_path
      @bin_path ||= begin
        path = settings[:bin] || "bin"
        path = Pathname.new(path).expand_path(root).expand_path
        SharedHelpers.filesystem_access(path) {|p| FileUtils.mkdir_p(p) }
        path
      end
    end

bundle_path() click to toggle source

Returns absolute path of where gems are installed on the filesystem.

                   # File bundler.rb, line 94
    def bundle_path
      @bundle_path ||= Pathname.new(configured_bundle_path.path).expand_path(root)
    end

bundler_major_version() click to toggle source

                   # File bundler/version.rb, line 6
    def self.bundler_major_version
      @bundler_major_version ||= VERSION.split(".").first.to_i
    end

clean_env() click to toggle source

@deprecated Use `unbundled_env` instead

                   # File bundler.rb, line 328
    def clean_env
      Bundler::SharedHelpers.major_deprecation(
        2,
        "`Bundler.clean_env` has been deprecated in favor of `Bundler.unbundled_env`. " \
        "If you instead want the environment before bundler was originally loaded, use `Bundler.original_env`",
        :print_caller_location => true
      )

      unbundled_env
    end

clean_exec(*args) click to toggle source

@deprecated Use `unbundled_exec` instead

                   # File bundler.rb, line 412
    def clean_exec(*args)
      Bundler::SharedHelpers.major_deprecation(
        2,
        "`Bundler.clean_exec` has been deprecated in favor of `Bundler.unbundled_exec`. " \
        "If you instead want to exec to a command in the environment before bundler was originally loaded, use `Bundler.original_exec`",
        :print_caller_location => true
      )

      with_env(unbundled_env) { Kernel.exec(*args) }
    end

clean_system(*args) click to toggle source

@deprecated Use `unbundled_system` instead

                   # File bundler.rb, line 390
    def clean_system(*args)
      Bundler::SharedHelpers.major_deprecation(
        2,
        "`Bundler.clean_system` has been deprecated in favor of `Bundler.unbundled_system`. " \
        "If you instead want to run the command in the environment before bundler was originally loaded, use `Bundler.original_system`",
        :print_caller_location => true
      )

      with_env(unbundled_env) { Kernel.system(*args) }
    end

clear_gemspec_cache() click to toggle source

                   # File bundler.rb, line 572
    def clear_gemspec_cache
      @gemspec_cache = {}
    end

configure() click to toggle source

                   # File bundler.rb, line 80
    def configure
      @configured ||= configure_gem_home_and_path
    end

configured_bundle_path() click to toggle source

                   # File bundler.rb, line 98
    def configured_bundle_path
      @configured_bundle_path ||= settings.path.tap(&:validate!)
    end

current_ruby() click to toggle source

Returns current version of Ruby

@return [CurrentRuby] Current version of Ruby

                   # File bundler/current_ruby.rb, line 7
    def self.current_ruby
      @current_ruby ||= CurrentRuby.new
    end

default_bundle_dir() click to toggle source

                   # File bundler.rb, line 441
    def default_bundle_dir
      SharedHelpers.default_bundle_dir
    end

default_gemfile() click to toggle source

                   # File bundler.rb, line 433
    def default_gemfile
      SharedHelpers.default_gemfile
    end

default_lockfile() click to toggle source

                   # File bundler.rb, line 437
    def default_lockfile
      SharedHelpers.default_lockfile
    end

definition(unlock = nil) click to toggle source

Returns an instance of `Bundler::Definition` for given Gemfile and lockfile

@param unlock [Hash, Boolean, nil] Gems that have been requested

    to be updated or true if all gems should be updated

@return [Bundler::Definition]

                   # File bundler.rb, line 191
    def definition(unlock = nil)
      @definition = nil if unlock
      @definition ||= begin
        configure
        Definition.build(default_gemfile, default_lockfile, unlock)
      end
    end

environment() click to toggle source

                   # File bundler.rb, line 181
    def environment
      SharedHelpers.major_deprecation 2, "Bundler.environment has been removed in favor of Bundler.load", :print_caller_location => true
      load
    end

feature_flag() click to toggle source

                   # File bundler.rb, line 581
    def feature_flag
      @feature_flag ||= FeatureFlag.new(VERSION)
    end

frozen_bundle?() click to toggle source

                   # File bundler.rb, line 199
    def frozen_bundle?
      frozen = settings[:deployment]
      frozen ||= settings[:frozen] unless feature_flag.deployment_means_frozen?
      frozen
    end

git_present?() click to toggle source

                   # File bundler.rb, line 576
    def git_present?
      return @git_present if defined?(@git_present)
      @git_present = Bundler.which("git") || Bundler.which("git.exe")
    end

home() click to toggle source

                   # File bundler.rb, line 264
    def home
      bundle_path.join("bundler")
    end

install_path() click to toggle source

                   # File bundler.rb, line 268
    def install_path
      home.join("gems")
    end

load() click to toggle source

                   # File bundler.rb, line 177
    def load
      @load ||= Runtime.new(root, definition)
    end

load_gemspec(file, validate = false) click to toggle source

                   # File bundler.rb, line 545
    def load_gemspec(file, validate = false)
      @gemspec_cache ||= {}
      key = File.expand_path(file)
      @gemspec_cache[key] ||= load_gemspec_uncached(file, validate)
      # Protect against caching side-effected gemspecs by returning a
      # new instance each time.
      @gemspec_cache[key].dup if @gemspec_cache[key]
    end

load_gemspec_uncached(file, validate = false) click to toggle source

                   # File bundler.rb, line 554
    def load_gemspec_uncached(file, validate = false)
      path = Pathname.new(file)
      contents = read_file(file)
      spec = if contents.start_with?("---") # YAML header
        eval_yaml_gemspec(path, contents)
      else
        # Eval the gemspec from its parent directory, because some gemspecs
        # depend on "./" relative paths.
        SharedHelpers.chdir(path.dirname.to_s) do
          eval_gemspec(path, contents)
        end
      end
      return unless spec
      spec.loaded_from = path.expand_path.to_s
      Bundler.rubygems.validate(spec) if validate
      spec
    end

load_marshal(data) click to toggle source

                   # File bundler.rb, line 539
    def load_marshal(data)
      Marshal.load(data)
    rescue StandardError => e
      raise MarshalError, "#{e.class}: #{e.message}"
    end

local_platform() click to toggle source

                   # File bundler.rb, line 428
    def local_platform
      return Gem::Platform::RUBY if settings[:force_ruby_platform]
      Gem::Platform.local
    end

locked_gems() click to toggle source

                   # File bundler.rb, line 205
    def locked_gems
      @locked_gems ||=
        if defined?(@definition) && @definition
          definition.locked_gems
        elsif Bundler.default_lockfile.file?
          lock = Bundler.read_file(Bundler.default_lockfile)
          LockfileParser.new(lock)
        end
    end

mkdir_p(path, options = {}) click to toggle source

                   # File bundler.rb, line 486
    def mkdir_p(path, options = {})
      if requires_sudo? && !options[:no_sudo]
        sudo "mkdir -p '#{path}'" unless File.exist?(path)
      else
        SharedHelpers.filesystem_access(path, :write) do |p|
          FileUtils.mkdir_p(p)
        end
      end
    end

original_env() click to toggle source

@return [Hash] Environment present before `Bundler` was activated

                   # File bundler.rb, line 323
    def original_env
      ORIGINAL_ENV.clone
    end

original_exec(*args) click to toggle source

Run a `Kernel.exec` to a subcommand with the environment present before `Bundler` was activated

                   # File bundler.rb, line 407
    def original_exec(*args)
      with_original_env { Kernel.exec(*args) }
    end

original_system(*args) click to toggle source

Run subcommand with the environment present before `Bundler` was activated

                   # File bundler.rb, line 385
    def original_system(*args)
      with_original_env { Kernel.system(*args) }
    end

read_file(file) click to toggle source

                   # File bundler.rb, line 533
    def read_file(file)
      SharedHelpers.filesystem_access(file, :read) do
        File.open(file, "r:UTF-8", &:read)
      end
    end

require(*groups) click to toggle source

Setups `Bundler` environment (see `Bundler.setup`) if it is not already set, and loads all gems from groups specified. Unlike `::setup`, can be called multiple times with different groups (if they were allowed by setup).

Assuming Gemfile

    gem 'first_gem', '= 1.0'
    group :test do
      gem 'second_gem', '= 1.0'
    end

The code will work as follows:

    Bundler.setup # allow all groups
    Bundler.require(:default) # requires only first_gem
    # ...later
    Bundler.require(:test)   # requires second_gem

                   # File bundler.rb, line 173
    def require(*groups)
      setup(*groups).require(*groups)
    end

require_thor_actions() click to toggle source

                   # File bundler/vendored_thor.rb, line 4
    def self.require_thor_actions
      require_relative "vendor/thor/lib/thor/actions"
    end

requires_sudo?() click to toggle source

                   # File bundler.rb, line 458
    def requires_sudo?
      return @requires_sudo if defined?(@requires_sudo_ran)

      sudo_present = which "sudo" if settings.allow_sudo?

      if sudo_present
        # the bundle path and subdirectories need to be writable for RubyGems
        # to be able to unpack and install gems without exploding
        path = bundle_path
        path = path.parent until path.exist?

        # bins are written to a different location on OS X
        bin_dir = Pathname.new(Bundler.system_bindir)
        bin_dir = bin_dir.parent until bin_dir.exist?

        # if any directory is not writable, we need sudo
        files = [path, bin_dir] | Dir[bundle_path.join("build_info/*").to_s] | Dir[bundle_path.join("*").to_s]
        unwritable_files = files.reject {|f| File.writable?(f) }
        sudo_needed = !unwritable_files.empty?
        if sudo_needed
          Bundler.ui.warn "Following files may not be writable, so sudo is needed:\n  #{unwritable_files.map(&:to_s).sort.join("\n  ")}"
        end
      end

      @requires_sudo_ran = true
      @requires_sudo = settings.allow_sudo? && sudo_present && sudo_needed
    end

reset!() click to toggle source

                   # File bundler.rb, line 585
    def reset!
      reset_paths!
      Plugin.reset!
      reset_rubygems!
    end

reset_paths!() click to toggle source

                   # File bundler.rb, line 591
    def reset_paths!
      @bin_path = nil
      @bundler_major_version = nil
      @bundle_path = nil
      @configured = nil
      @configured_bundle_path = nil
      @definition = nil
      @load = nil
      @locked_gems = nil
      @root = nil
      @settings = nil
      @setup = nil
      @user_home = nil
    end

reset_rubygems!() click to toggle source

                   # File bundler.rb, line 606
    def reset_rubygems!
      return unless defined?(@rubygems) && @rubygems
      rubygems.undo_replacements
      rubygems.reset
      @rubygems = nil
    end

rm_rf(path) click to toggle source

                   # File bundler.rb, line 304
        def rm_rf(path)
          FileUtils.remove_entry_secure(path) if path && File.exist?(path)
        rescue ArgumentError
          message = <<EOF
    It is a security vulnerability to allow your home directory to be world-writable, and bundler can not continue.
    You should probably consider fixing this issue by running `chmod o-w ~` on *nix.
    Please refer to https://ruby-doc.org/stdlib-2.1.2/libdoc/fileutils/rdoc/FileUtils.html#method-c-remove_entry_secure for details.
    EOF
          File.world_writable?(path) ? Bundler.ui.warn(message) : raise
          raise PathError, "Please fix the world-writable issue with your #{path} directory"
        end

root() click to toggle source

                   # File bundler.rb, line 276
    def root
      @root ||= begin
                  SharedHelpers.root
                rescue GemfileNotFound
                  bundle_dir = default_bundle_dir
                  raise GemfileNotFound, "Could not locate Gemfile or .bundle/ directory" unless bundle_dir
                  Pathname.new(File.expand_path("..", bundle_dir))
                end
    end

ruby_scope() click to toggle source

                   # File bundler.rb, line 215
    def ruby_scope
      "#{Bundler.rubygems.ruby_engine}/#{RbConfig::CONFIG["ruby_version"]}"
    end

rubygems() click to toggle source

                   # File bundler/rubygems_integration.rb, line 645
    def self.rubygems
      @rubygems ||= RubygemsIntegration.new
    end

settings() click to toggle source

                   # File bundler.rb, line 316
    def settings
      @settings ||= Settings.new(app_config_path)
    rescue GemfileNotFound
      @settings = Settings.new(Pathname.new(".bundle").expand_path)
    end

setup(*groups) click to toggle source

Turns on the `Bundler` runtime. After `Bundler.setup` call, all `load` or `require` of the gems would be allowed only if they are part of the Gemfile or Ruby's standard library. If the versions specified in Gemfile, only those versions would be loaded.

Assuming Gemfile

    gem 'first_gem', '= 1.0'
    group :test do
      gem 'second_gem', '= 1.0'
    end

The code using `Bundler.setup` works as follows:

    require 'third_gem' # allowed, required from global gems
    require 'first_gem' # allowed, loads the last installed version
    Bundler.setup
    require 'fourth_gem' # fails with LoadError
    require 'second_gem' # loads exactly version 1.0

`Bundler.setup` can be called only once, all subsequent calls are no-op.

If groups list is provided, only gems from specified groups would be allowed (gems specified outside groups belong to special `:default` group).

To require all gems from Gemfile (or only some groups), see `Bundler.require`.

                   # File bundler.rb, line 139
    def setup(*groups)
      # Return if all groups are already loaded
      return @setup if defined?(@setup) && @setup

      definition.validate_runtime!

      SharedHelpers.print_major_deprecations!

      if groups.empty?
        # Load all groups, but only once
        @setup = load.setup
      else
        load.setup(*groups)
      end
    end

specs_path() click to toggle source

                   # File bundler.rb, line 272
    def specs_path
      bundle_path.join("specifications")
    end

sudo(str) click to toggle source

                   # File bundler.rb, line 509
        def sudo(str)
          SUDO_MUTEX.synchronize do
            prompt = "\n\n" + <<-PROMPT.gsub(/^ {6}/, "").strip + " "
            Your user account isn't allowed to install to the system RubyGems.
            You can cancel this installation and run:

                bundle install --path vendor/bundle

            to install the gems into ./vendor/bundle/, or you can enter your password
            and install the bundled gems to RubyGems using sudo.

            Password:
            PROMPT

            unless @prompted_for_sudo ||= system(%(sudo -k -p "#{prompt}" true))
              raise SudoNotPermittedError,
                "Bundler requires sudo access to install at the moment. " \
                "Try installing again, granting Bundler sudo access when prompted, or installing into a different path."
            end

            `sudo -p "#{prompt}" #{str}`
          end
        end

system_bindir() click to toggle source

                   # File bundler.rb, line 445
    def system_bindir
      # Gem.bindir doesn't always return the location that RubyGems will install
      # system binaries. If you put '-n foo' in your .gemrc, RubyGems will
      # install binstubs there instead. Unfortunately, RubyGems doesn't expose
      # that directory at all, so rather than parse .gemrc ourselves, we allow
      # the directory to be set as well, via `bundle config set bindir foo`.
      Bundler.settings[:system_bindir] || Bundler.rubygems.gem_bindir
    end

tmp(name = Process.pid.to_s) click to toggle source

                   # File bundler.rb, line 299
    def tmp(name = Process.pid.to_s)
      Kernel.send(:require, "tmpdir")
      Pathname.new(Dir.mktmpdir(["bundler", name]))
    end

ui() click to toggle source

                   # File bundler.rb, line 84
    def ui
      (defined?(@ui) && @ui) || (self.ui = UI::Shell.new)
    end

ui=(ui) click to toggle source

                   # File bundler.rb, line 88
    def ui=(ui)
      Bundler.rubygems.ui = UI::RGProxy.new(ui)
      @ui = ui
    end

unbundled_env() click to toggle source

@return [Hash] Environment with all bundler-related variables removed

                   # File bundler.rb, line 340
    def unbundled_env
      env = original_env

      if env.key?("BUNDLER_ORIG_MANPATH")
        env["MANPATH"] = env["BUNDLER_ORIG_MANPATH"]
      end

      env.delete_if {|k, _| k[0, 7] == "BUNDLE_" }

      if env.key?("RUBYOPT")
        env["RUBYOPT"] = env["RUBYOPT"].sub "-rbundler/setup", ""
      end

      if env.key?("RUBYLIB")
        rubylib = env["RUBYLIB"].split(File::PATH_SEPARATOR)
        rubylib.delete(File.expand_path("..", __FILE__))
        env["RUBYLIB"] = rubylib.join(File::PATH_SEPARATOR)
      end

      env
    end

unbundled_exec(*args) click to toggle source

Run a `Kernel.exec` to a subcommand in an environment with all bundler related variables removed

                   # File bundler.rb, line 424
    def unbundled_exec(*args)
      with_env(unbundled_env) { Kernel.exec(*args) }
    end

unbundled_system(*args) click to toggle source

Run subcommand in an environment with all bundler related variables removed

                   # File bundler.rb, line 402
    def unbundled_system(*args)
      with_unbundled_env { Kernel.system(*args) }
    end

use_system_gems?() click to toggle source

                   # File bundler.rb, line 454
    def use_system_gems?
      configured_bundle_path.use_system_gems?
    end

user_bundle_path(dir = "home") click to toggle source

                   # File bundler.rb, line 242
    def user_bundle_path(dir = "home")
      env_var, fallback = case dir
                          when "home"
                            ["BUNDLE_USER_HOME", proc { Pathname.new(user_home).join(".bundle") }]
                          when "cache"
                            ["BUNDLE_USER_CACHE", proc { user_bundle_path.join("cache") }]
                          when "config"
                            ["BUNDLE_USER_CONFIG", proc { user_bundle_path.join("config") }]
                          when "plugin"
                            ["BUNDLE_USER_PLUGIN", proc { user_bundle_path.join("plugin") }]
                          else
                            raise BundlerError, "Unknown user path requested: #{dir}"
      end
      # `fallback` will already be a Pathname, but Pathname.new() is
      # idempotent so it's OK
      Pathname.new(ENV.fetch(env_var, &fallback))
    end

user_cache() click to toggle source

                   # File bundler.rb, line 260
    def user_cache
      user_bundle_path("cache")
    end

user_home() click to toggle source

                   # File bundler.rb, line 219
    def user_home
      @user_home ||= begin
        home = Bundler.rubygems.user_home
        bundle_home = home ? File.join(home, ".bundle") : nil

        warning = if home.nil?
          "Your home directory is not set."
        elsif !File.directory?(home)
          "`#{home}` is not a directory."
        elsif !File.writable?(home) && (!File.directory?(bundle_home) || !File.writable?(bundle_home))
          "`#{home}` is not writable."
        end

        if warning
          user_home = tmp_home_path(warning)
          Bundler.ui.warn "#{warning}\nBundler will use `#{user_home}' as your home directory temporarily.\n"
          user_home
        else
          Pathname.new(home)
        end
      end
    end

which(executable) click to toggle source

                   # File bundler.rb, line 496
    def which(executable)
      if File.file?(executable) && File.executable?(executable)
        executable
      elsif paths = ENV["PATH"]
        quote = '"'.freeze
        paths.split(File::PATH_SEPARATOR).find do |path|
          path = path[1..-2] if path.start_with?(quote) && path.end_with?(quote)
          executable_path = File.expand_path(executable, path)
          return executable_path if File.file?(executable_path) && File.executable?(executable_path)
        end
      end
    end

with_clean_env() click to toggle source

@deprecated Use `with_unbundled_env` instead

                   # File bundler.rb, line 368
    def with_clean_env
      Bundler::SharedHelpers.major_deprecation(
        2,
        "`Bundler.with_clean_env` has been deprecated in favor of `Bundler.with_unbundled_env`. " \
        "If you instead want the environment before bundler was originally loaded, use `Bundler.with_original_env`",
        :print_caller_location => true
      )

      with_env(unbundled_env) { yield }
    end

with_friendly_errors() click to toggle source

                   # File bundler/friendly_errors.rb, line 122
    def self.with_friendly_errors
      yield
    rescue SignalException
      raise
    rescue Exception => e # rubocop:disable Lint/RescueException
      FriendlyErrors.log_error(e)
      exit FriendlyErrors.exit_status(e)
    end

with_original_env() click to toggle source

Run block with environment present before `Bundler` was activated

                   # File bundler.rb, line 363
    def with_original_env
      with_env(original_env) { yield }
    end

with_unbundled_env() click to toggle source

Run block with all bundler-related variables removed

                   # File bundler.rb, line 380
    def with_unbundled_env
      with_env(unbundled_env) { yield }
    end