123456789_123456789_123456789_123456789_123456789_

Class: Bundler::Settings::Path

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, Struct
Instance Chain:
self, Struct
Inherits: Struct
  • Object
Defined in: lib/bundler/settings.rb

Instance Attribute Summary

Instance Method Summary

Instance Attribute Details

#explicit_path (rw)

[ GitHub ]

  
# File 'lib/bundler/settings.rb', line 232

Path = Struct.new(:explicit_path, :system_path)

#system_path (rw)

[ GitHub ]

  
# File 'lib/bundler/settings.rb', line 232

Path = Struct.new(:explicit_path, :system_path)

#use_system_gems?Boolean (readonly)

[ GitHub ]

  
# File 'lib/bundler/settings.rb', line 239

def use_system_gems?
  return true if system_path
  return false if explicit_path
  !Bundler.feature_flag.default_install_uses_path?
end

Instance Method Details

#base_path

[ GitHub ]

  
# File 'lib/bundler/settings.rb', line 245

def base_path
  path = explicit_path
  path ||= ".bundle" unless use_system_gems?
  path ||= Bundler.rubygems.gem_dir
  path
end

#base_path_relative_to_pwd

[ GitHub ]

  
# File 'lib/bundler/settings.rb', line 252

def base_path_relative_to_pwd
  base_path = Pathname.new(self.base_path)
  expanded_base_path = base_path.expand_path(Bundler.root)
  relative_path = expanded_base_path.relative_path_from(Pathname.pwd)
  if relative_path.to_s.start_with?("..")
    relative_path = base_path if base_path.absolute?
  else
    relative_path = Pathname.new(File.join(".", relative_path))
  end
  relative_path
rescue ArgumentError
  expanded_base_path
end

#path

[ GitHub ]

  
# File 'lib/bundler/settings.rb', line 233

def path
  path = base_path
  path = File.join(path, Bundler.ruby_scope) unless use_system_gems?
  path
end

#validate!

Raises:

[ GitHub ]

  
# File 'lib/bundler/settings.rb', line 266

def validate!
  return unless explicit_path && system_path
  path = Bundler.settings.pretty_values_for(:path)
  path.unshift(nil, "path:") unless path.empty?
  system_path = Bundler.settings.pretty_values_for("path.system")
  system_path.unshift(nil, "path.system:") unless system_path.empty?
  disable_shared_gems = Bundler.settings.pretty_values_for(:disable_shared_gems)
  disable_shared_gems.unshift(nil, "disable_shared_gems:") unless disable_shared_gems.empty?
  raise InvalidOption,
    "Using a custom path while using system gems is unsupported.\n#{path.join("\n")}\n#{system_path.join("\n")}\n#{disable_shared_gems.join("\n")}"
end