### Home Classes Methods

### In Files

- lib/bundler/build_metadata.rb
- lib/bundler/cli/add.rb
- lib/bundler/cli/binstubs.rb
- lib/bundler/cli/cache.rb
- lib/bundler/cli/check.rb
- lib/bundler/cli/clean.rb
- lib/bundler/cli/common.rb
- lib/bundler/cli/config.rb
- lib/bundler/cli/console.rb
- lib/bundler/cli/doctor.rb
- lib/bundler/cli/exec.rb
- lib/bundler/cli/gem.rb
- lib/bundler/cli/info.rb
- lib/bundler/cli/init.rb
- lib/bundler/cli/inject.rb
- lib/bundler/cli/install.rb
- lib/bundler/cli/issue.rb
- lib/bundler/cli/list.rb
- lib/bundler/cli/lock.rb
- lib/bundler/cli/open.rb
- lib/bundler/cli/outdated.rb
- lib/bundler/cli/package.rb
- lib/bundler/cli/platform.rb
- lib/bundler/cli/plugin.rb
- lib/bundler/cli/pristine.rb
- lib/bundler/cli/remove.rb
- lib/bundler/cli/show.rb
- lib/bundler/cli/update.rb
- lib/bundler/cli/viz.rb
- lib/bundler/cli.rb
- lib/bundler/compact_index_client/cache.rb
- lib/bundler/compact_index_client/updater.rb
- lib/bundler/compact_index_client.rb
- lib/bundler/constants.rb
- lib/bundler/current_ruby.rb
- lib/bundler/definition.rb
- lib/bundler/dep_proxy.rb
- lib/bundler/dependency.rb
- lib/bundler/deployment.rb
- lib/bundler/deprecate.rb
- lib/bundler/dsl.rb
- lib/bundler/endpoint_specification.rb
- lib/bundler/env.rb
- lib/bundler/environment_preserver.rb
- lib/bundler/errors.rb
- lib/bundler/feature_flag.rb
- lib/bundler/fetcher/base.rb
- lib/bundler/fetcher/compact_index.rb
- lib/bundler/fetcher/dependency.rb
- lib/bundler/fetcher/downloader.rb
- lib/bundler/fetcher/index.rb
- lib/bundler/fetcher.rb
- lib/bundler/friendly_errors.rb
- lib/bundler/gem_helper.rb
- lib/bundler/gem_helpers.rb
- lib/bundler/gem_remote_fetcher.rb
- lib/bundler/gem_version_promoter.rb
- lib/bundler/gemdeps.rb
- lib/bundler/graph.rb
- lib/bundler/index.rb
- lib/bundler/injector.rb
- lib/bundler/inline.rb
- lib/bundler/installer/gem_installer.rb
- lib/bundler/installer/parallel_installer.rb
- lib/bundler/installer/standalone.rb
- lib/bundler/installer.rb
- lib/bundler/lazy_specification.rb
- lib/bundler/lockfile_generator.rb
- lib/bundler/lockfile_parser.rb
- lib/bundler/match_platform.rb
- lib/bundler/mirror.rb
- lib/bundler/plugin/api/source.rb
- lib/bundler/plugin/api.rb
- lib/bundler/plugin/dsl.rb
- lib/bundler/plugin/events.rb
- lib/bundler/plugin/index.rb
- lib/bundler/plugin/installer/git.rb
- lib/bundler/plugin/installer/rubygems.rb
- lib/bundler/plugin/installer.rb
- lib/bundler/plugin/source_list.rb
- lib/bundler/plugin.rb
- lib/bundler/process_lock.rb
- lib/bundler/psyched_yaml.rb
- lib/bundler/remote_specification.rb
- lib/bundler/resolver/spec_group.rb
- lib/bundler/resolver.rb
- lib/bundler/retry.rb
- lib/bundler/ruby_dsl.rb
- lib/bundler/ruby_version.rb
- lib/bundler/rubygems_gem_installer.rb
- lib/bundler/rubygems_integration.rb
- lib/bundler/runtime.rb
- lib/bundler/settings/validator.rb
- lib/bundler/settings.rb
- lib/bundler/shared_helpers.rb
- lib/bundler/similarity_detector.rb
- lib/bundler/source/gemspec.rb
- lib/bundler/source/git/git_proxy.rb
- lib/bundler/source/git.rb
- lib/bundler/source/metadata.rb
- lib/bundler/source/path/installer.rb
- lib/bundler/source/path.rb
- lib/bundler/source/rubygems/remote.rb
- lib/bundler/source/rubygems.rb
- lib/bundler/source.rb
- lib/bundler/source_list.rb
- lib/bundler/spec_set.rb
- lib/bundler/stub_specification.rb
- lib/bundler/ui/rg_proxy.rb
- lib/bundler/ui/shell.rb
- lib/bundler/ui/silent.rb
- lib/bundler/ui.rb
- lib/bundler/uri_credentials_filter.rb
- lib/bundler/vendored_fileutils.rb
- lib/bundler/vendored_molinillo.rb
- lib/bundler/vendored_persistent.rb
- lib/bundler/vendored_thor.rb
- lib/bundler/version.rb
- lib/bundler/version_ranges.rb
- lib/bundler/worker.rb
- lib/bundler/yaml_serializer.rb
- lib/bundler.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::URICredentialsFilter
- MODULE Bundler::VersionRanges
- MODULE Bundler::YAMLSerializer
- CLASS Bundler::APIResponseMismatchError
- CLASS Bundler::BundlerError
- CLASS Bundler::CLI
- CLASS Bundler::CompactIndexClient
- 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

- ::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
- ::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
- ::tmp_home_path
- ::ui
- ::ui=
- ::use_system_gems?
- ::user_bundle_path
- ::user_cache
- ::user_home
- ::which
- ::with_clean_env
- ::with_friendly_errors
- ::with_original_env

### Class/Module Index

Quicksearch

- 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::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::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::FileUtils
- Bundler::FileUtils::DryRun
- Bundler::FileUtils::LowMethods
- 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::Persistent::Net::HTTP::Persistent::SSLReuse
- 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::::Kernel
- Bundler::RubygemsIntegration::AlmostModern
- Bundler::RubygemsIntegration::Ancient
- Bundler::RubygemsIntegration::Future
- Bundler::RubygemsIntegration::Future::Gem
- Bundler::RubygemsIntegration::Gem
- Bundler::RubygemsIntegration::Legacy
- Bundler::RubygemsIntegration::Legacy::Gem::SourceIndex
- Bundler::RubygemsIntegration::Modern
- Bundler::RubygemsIntegration::MoreFuture
- Bundler::RubygemsIntegration::MoreModern
- Bundler::RubygemsIntegration::Transitional
- 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
- Bundler::Thor::Actions
- Bundler::Thor::Actions::CapturableERB
- Bundler::Thor::Actions::ClassMethods
- Bundler::Thor::AmbiguousCommandError
- Bundler::Thor::AmbiguousTaskError
- 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::Error
- Bundler::Thor::Group
- Bundler::Thor::HiddenCommand
- Bundler::Thor::HiddenTask
- Bundler::Thor::Invocation
- Bundler::Thor::Invocation::ClassMethods
- Bundler::Thor::InvocationError
- Bundler::Thor::LineEditor
- Bundler::Thor::LineEditor::Basic
- Bundler::Thor::LineEditor::Readline
- Bundler::Thor::LineEditor::Readline::PathCompletion
- Bundler::Thor::MalformattedArgumentError
- Bundler::Thor::RakeCompat
- Bundler::Thor::RequiredArgumentMissingError
- Bundler::Thor::Shell
- Bundler::Thor::Shell::Basic
- Bundler::Thor::Shell::Color
- Bundler::Thor::Shell::HTML
- Bundler::Thor::Task
- Bundler::Thor::UndefinedCommandError
- Bundler::Thor::UndefinedTaskError
- Bundler::Thor::UnknownArgumentError
- Bundler::Thor::Util
- Bundler::ThreadCreationError
- Bundler::UI
- Bundler::UI::RGProxy
- Bundler::UI::Shell
- Bundler::UI::Silent
- Bundler::URICredentialsFilter
- Bundler::VersionConflict
- Bundler::VersionRanges
- Bundler::VersionRanges::ReqR
- Bundler::VirtualProtocolError
- Bundler::Worker
- Bundler::Worker::WrappedException
- Bundler::YAMLSerializer
- Bundler::YamlSyntaxError
- Gem
- Gem::Dependency
- Gem::Platform
- Gem::Requirement
- Gem::Specification
- Net
- Net::HTTP
- Net::HTTP::Persistent
- Object

No matching classes.

# Bundler

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

Some versions of the Bundler 1.1 RC series introduced corrupted lockfiles. There were two major problems:

- multiple copies of the same GIT section appeared in the lockfile

- when this happened, those sections got multiple copies of gems in those sections.

As a result, Bundler 1.1 contains code that fixes the earlier corruption. We will remove this fix-up code in Bundler 1.2.

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

frozen_string_literal: true

Ruby 1.9.3 and old RubyGems don’t play nice with frozen version strings rubocop:disable MutableConstant

frozen_string_literal: true

frozen_string_literal: true

### Constants

Deprecate
FREEBSD
NULL
ORIGINAL_ENV
SUDO_MUTEX
VERSION

  We’re doing this because we might write tests that deal with other versions of bundler and we are unsure how to handle this better.

WINDOWS
YamlLibrarySyntaxError

### Public Class Methods

app_cache(custom_path = nil) click to toggle source

    # File lib/bundler.rb, line 250
    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 lib/bundler.rb, line 242
    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 lib/bundler.rb, line 88
    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 lib/bundler.rb, line 79
    def bundle_path
      @bundle_path ||= Pathname.new(configured_bundle_path.path).expand_path(root)
    end

bundler_major_version() click to toggle source

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

clean_env() click to toggle source

@deprecated Use `original_env` instead @return [Hash] Environment with all bundler-related variables removed

    # File lib/bundler.rb, line 285
    def clean_env
      Bundler::SharedHelpers.major_deprecation(2, "`Bundler.clean_env` has weird edge cases, use `.original_env` instead")
      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

clean_exec(*args) click to toggle source

    # File lib/bundler.rb, line 320
    def clean_exec(*args)
      with_clean_env { Kernel.exec(*args) }
    end

clean_system(*args) click to toggle source

    # File lib/bundler.rb, line 316
    def clean_system(*args)
      with_clean_env { Kernel.system(*args) }
    end

clear_gemspec_cache() click to toggle source

    # File lib/bundler.rb, line 468
    def clear_gemspec_cache
      @gemspec_cache = {}
    end

configure() click to toggle source

    # File lib/bundler.rb, line 65
    def configure
      @configured ||= configure_gem_home_and_path
    end

configured_bundle_path() click to toggle source

    # File lib/bundler.rb, line 83
    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 lib/bundler/current_ruby.rb, line 7
    def self.current_ruby
      @current_ruby ||= CurrentRuby.new
    end

default_bundle_dir() click to toggle source

    # File lib/bundler.rb, line 337
    def default_bundle_dir
      SharedHelpers.default_bundle_dir
    end

default_gemfile() click to toggle source

    # File lib/bundler.rb, line 329
    def default_gemfile
      SharedHelpers.default_gemfile
    end

default_lockfile() click to toggle source

    # File lib/bundler.rb, line 333
    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 lib/bundler.rb, line 131
    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 lib/bundler.rb, line 121
    def environment
      SharedHelpers.major_deprecation 2, "Bundler.environment has been removed in favor of Bundler.load"
      load
    end

feature_flag() click to toggle source

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

frozen_bundle?() click to toggle source

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

git_present?() click to toggle source

    # File lib/bundler.rb, line 472
    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 lib/bundler.rb, line 220
    def home
      bundle_path.join("bundler")
    end

install_path() click to toggle source

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

load() click to toggle source

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

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

    # File lib/bundler.rb, line 441
    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 lib/bundler.rb, line 450
    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 lib/bundler.rb, line 435
    def load_marshal(data)
      Marshal.load(data)
    rescue StandardError => e
      raise MarshalError, "#{e.class}: #{e.message}"
    end

local_platform() click to toggle source

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

locked_gems() click to toggle source

    # File lib/bundler.rb, line 145
    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 lib/bundler.rb, line 382
    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 lib/bundler.rb, line 279
    def original_env
      ORIGINAL_ENV.clone
    end

read_file(file) click to toggle source

    # File lib/bundler.rb, line 429
    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

    # File lib/bundler.rb, line 113
    def require(*groups)
      setup(*groups).require(*groups)
    end

require_thor_actions() click to toggle source

    # File lib/bundler/vendored_thor.rb, line 4
    def self.require_thor_actions
      Kernel.send(:require, "bundler/vendor/thor/lib/thor/actions")
    end

requires_sudo?() click to toggle source

    # File lib/bundler.rb, line 354
    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 lib/bundler.rb, line 481
    def reset!
      reset_paths!
      Plugin.reset!
      reset_rubygems!
    end

reset_paths!() click to toggle source

    # File lib/bundler.rb, line 487
    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 lib/bundler.rb, line 502
    def reset_rubygems!
      return unless defined?(@rubygems) && @rubygems
      rubygems.undo_replacements
      rubygems.reset
      @rubygems = nil
    end

rm_rf(path) click to toggle source

    # File lib/bundler.rb, line 260
    def rm_rf(path)
      FileUtils.remove_entry_secure(path) if path && File.exist?(path)
    rescue ArgumentError
      message = 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 http://ruby-doc.org/stdlib-2.1.2/libdoc/fileutils/rdoc/FileUtils.html#method-c-remove_entry_secure for details.
      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 lib/bundler/inline.rb, line 42
    def Bundler.root
      Bundler::SharedHelpers.pwd.expand_path
    end

ruby_scope() click to toggle source

    # File lib/bundler.rb, line 155
    def ruby_scope
      "#{Bundler.rubygems.ruby_engine}/#{Bundler.rubygems.config_map[:ruby_version]}"
    end

rubygems() click to toggle source

    # File lib/bundler/rubygems_integration.rb, line 879
    def self.rubygems
      @rubygems ||= if RubygemsIntegration.provides?(">= 2.1.0")
        RubygemsIntegration::MoreFuture.new
      elsif RubygemsIntegration.provides?(">= 1.99.99")
        RubygemsIntegration::Future.new
      elsif RubygemsIntegration.provides?(">= 1.8.20")
        RubygemsIntegration::MoreModern.new
      elsif RubygemsIntegration.provides?(">= 1.8.5")
        RubygemsIntegration::Modern.new
      elsif RubygemsIntegration.provides?(">= 1.8.0")
        RubygemsIntegration::AlmostModern.new
      elsif RubygemsIntegration.provides?(">= 1.7.0")
        RubygemsIntegration::Transitional.new
      elsif RubygemsIntegration.provides?(">= 1.4.0")
        RubygemsIntegration::Legacy.new
      else # RubyGems 1.3.6 and 1.3.7
        RubygemsIntegration::Ancient.new
      end
    end

settings() click to toggle source

    # File lib/bundler.rb, line 272
    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

    # File lib/bundler.rb, line 97
    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 lib/bundler.rb, line 228
    def specs_path
      bundle_path.join("specifications")
    end

sudo(str) click to toggle source

    # File lib/bundler.rb, line 405
    def sudo(str)
      SUDO_MUTEX.synchronize do
        prompt = "\n\n" +         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:.gsub(/^ {6}/, "").strip + " "

        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 lib/bundler.rb, line 341
    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 bindir foo`.
      Bundler.settings[:system_bindir] || Bundler.rubygems.gem_bindir
    end

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

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

tmp_home_path(login, warning) click to toggle source

    # File lib/bundler.rb, line 183
    def tmp_home_path(login, warning)
      login ||= "unknown"
      Kernel.send(:require, "tmpdir")
      path = Pathname.new(Dir.tmpdir).join("bundler", "home")
      SharedHelpers.filesystem_access(path) do |tmp_home_path|
        unless tmp_home_path.exist?
          tmp_home_path.mkpath
          tmp_home_path.chmod(0o777)
        end
        tmp_home_path.join(login).tap(&:mkpath)
      end
    rescue RuntimeError => e
      raise e.exception("#{warning}\nBundler also failed to create a temporary home directory at `#{path}':\n#{e}")
    end

ui() click to toggle source

    # File lib/bundler.rb, line 69
    def ui
      (defined?(@ui) && @ui) || (self.ui = UI::Silent.new)
    end

ui=(ui) click to toggle source

    # File lib/bundler.rb, line 73
    def ui=(ui)
      Bundler.rubygems.ui = ui ? UI::RGProxy.new(ui) : nil
      @ui = ui
    end

use_system_gems?() click to toggle source

    # File lib/bundler.rb, line 350
    def use_system_gems?
      configured_bundle_path.use_system_gems?
    end

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

    # File lib/bundler.rb, line 198
    def user_bundle_path(dir = "home")
      env_var, fallback = case dir
                          when "home"
                            ["BUNDLE_USER_HOME", Pathname.new(user_home).join(".bundle")]
                          when "cache"
                            ["BUNDLE_USER_CACHE", user_bundle_path.join("cache")]
                          when "config"
                            ["BUNDLE_USER_CONFIG", user_bundle_path.join("config")]
                          when "plugin"
                            ["BUNDLE_USER_PLUGIN", 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 lib/bundler.rb, line 216
    def user_cache
      user_bundle_path("cache")
    end

user_home() click to toggle source

    # File lib/bundler.rb, line 159
    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
          Kernel.send(:require, "etc")
          user_home = tmp_home_path(Etc.getlogin, 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 lib/bundler.rb, line 392
    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

    # File lib/bundler.rb, line 312
    def with_clean_env
      with_env(clean_env) { yield }
    end

with_friendly_errors() click to toggle source

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

with_original_env() click to toggle source

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

[Validate]

Generated with the Darkfish Rdoc Generator 2.