class Bundler::Source::Path
Constants
- DEFAULT_GLOB
Attributes
name[W]
options[R]
original_path[R]
path[R]
root_path[R]
version[RW]
Public Class Methods
from_lock(options)
click to toggle source
# File bundler/source/path.rb, line 53 def self.from_lock(options) new(options.merge("path" => options.delete("remote"))) end
new(options)
click to toggle source
# File bundler/source/path.rb, line 16 def initialize(options) @options = options.dup @glob = options["glob"] || DEFAULT_GLOB @allow_cached = false @allow_remote = false @root_path = options["root_path"] || root if options["path"] @path = Pathname.new(options["path"]) expanded_path = expand(@path) @path = if @path.relative? expanded_path.relative_path_from(root_path.expand_path) else expanded_path end end @name = options["name"] @version = options["version"] # Stores the original path. If at any point we move to the # cached directory, we still have the original path to copy from. @original_path = @path end
Public Instance Methods
app_cache_dirname()
click to toggle source
# File bundler/source/path.rb, line 118 def app_cache_dirname name end
cache(spec, custom_path = nil)
click to toggle source
# File bundler/source/path.rb, line 92 def cache(spec, custom_path = nil) app_cache_path = app_cache_path(custom_path) return unless Bundler.feature_flag.cache_all? return if expand(@original_path).to_s.index(root_path.to_s + "/") == 0 unless @original_path.exist? raise GemNotFound, "Can't cache gem #{version_message(spec)} because #{self} is missing!" end FileUtils.rm_rf(app_cache_path) FileUtils.cp_r("#{@original_path}/.", app_cache_path) FileUtils.touch(app_cache_path.join(".bundlecache")) end
cached!()
click to toggle source
# File bundler/source/path.rb, line 48 def cached! @local_specs = nil @allow_cached = true end
eql?(other)
click to toggle source
# File bundler/source/path.rb, line 72 def eql?(other) return unless other.class == self.class expanded_original_path == other.expanded_original_path && version == other.version end
Also aliased as: ==
expanded_original_path()
click to toggle source
# File bundler/source/path.rb, line 126 def expanded_original_path @expanded_original_path ||= expand(original_path) end
hash()
click to toggle source
# File bundler/source/path.rb, line 68 def hash [self.class, expanded_path, version].hash end
install(spec, options = {})
click to toggle source
# File bundler/source/path.rb, line 84 def install(spec, options = {}) using_message = "Using #{version_message(spec)} from #{self}" using_message += " and installing its executables" unless spec.executables.empty? print_using_message using_message generate_bin(spec, :disable_extensions => true) nil # no post-install message end
local_specs(*)
click to toggle source
# File bundler/source/path.rb, line 106 def local_specs(*) @local_specs ||= load_spec_files end
name()
click to toggle source
# File bundler/source/path.rb, line 80 def name File.basename(expanded_path.to_s) end
remote!()
click to toggle source
# File bundler/source/path.rb, line 43 def remote! @local_specs = nil @allow_remote = true end
root()
click to toggle source
# File bundler/source/path.rb, line 122 def root Bundler.root end
specs()
click to toggle source
# File bundler/source/path.rb, line 110 def specs if has_app_cache? @path = app_cache_path @expanded_path = nil # Invalidate end local_specs end
to_lock()
click to toggle source
# File bundler/source/path.rb, line 57 def to_lock out = String.new("PATH\n") out << " remote: #{lockfile_path}\n" out << " glob: #{@glob}\n" unless @glob == DEFAULT_GLOB out << " specs:\n" end
to_s()
click to toggle source
# File bundler/source/path.rb, line 64 def to_s "source at `#{@path}`" end