Class: Bundler::Settings::Path
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Struct
|
|
Instance Chain:
self,
Struct
|
|
Inherits: |
Struct
|
Defined in: | lib/bundler/settings.rb |
Instance Attribute Summary
- #explicit_path rw
- #system_path rw
- #use_system_gems? ⇒ Boolean readonly
Instance Method Summary
Instance Attribute Details
#explicit_path (rw)
[ GitHub ]# File 'lib/bundler/settings.rb', line 233
Path = Struct.new(:explicit_path, :system_path)
#system_path (rw)
[ GitHub ]# File 'lib/bundler/settings.rb', line 233
Path = Struct.new(:explicit_path, :system_path)
#use_system_gems? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/bundler/settings.rb', line 240
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 246
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 253
def base_path_relative_to_pwd base_path = Pathname.new(self.base_path) = base_path. (Bundler.root) relative_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 end
#path
[ GitHub ]# File 'lib/bundler/settings.rb', line 234
def path path = base_path path = File.join(path, Bundler.ruby_scope) unless use_system_gems? path end
#validate!
# File 'lib/bundler/settings.rb', line 267
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