class Bundler::Source::Path
Constants
- DEFAULT_GLOB
Attributes
name[W]
options[R]
path[R]
version[RW]
Public Class Methods
from_lock(options)
click to toggle source
# File lib/bundler/source/path.rb, line 40 def self.from_lock(options) new(options.merge("path" => options.delete("remote"))) end
new(options)
click to toggle source
# File lib/bundler/source/path.rb, line 12 def initialize(options) @options = options @glob = options["glob"] || DEFAULT_GLOB @allow_cached = false @allow_remote = false if options["path"] @path = Pathname.new(options["path"]) @path = expand(@path) unless @path.relative? 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 lib/bundler/source/path.rb, line 103 def app_cache_dirname name end
cache(spec, custom_path = nil)
click to toggle source
# File lib/bundler/source/path.rb, line 77 def cache(spec, custom_path = nil) app_cache_path = app_cache_path(custom_path) return unless Bundler.settings[:cache_all] return if expand(@original_path).to_s.index(Bundler.root.to_s) == 0 unless @original_path.exist? raise GemNotFound, "Can't cache gem #{version_message(spec)} because #{to_s} 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 lib/bundler/source/path.rb, line 36 def cached! @allow_cached = true end
eql?(o)
click to toggle source
# File lib/bundler/source/path.rb, line 59 def eql?(o) o.instance_of?(Path) && expanded_path == expand(o.path) && version == o.version end
Also aliased as: ==
hash()
click to toggle source
# File lib/bundler/source/path.rb, line 55 def hash [self.class, expanded_path, version].hash end
install(spec, force = false)
click to toggle source
# File lib/bundler/source/path.rb, line 71 def install(spec, force = false) Bundler.ui.info "Using #{version_message(spec)} from #{to_s}" generate_bin(spec, :disable_extensions) nil # no post-install message end
local_specs(*)
click to toggle source
# File lib/bundler/source/path.rb, line 91 def local_specs(*) @local_specs ||= load_spec_files end
name()
click to toggle source
# File lib/bundler/source/path.rb, line 67 def name File.basename(expanded_path.to_s) end
remote!()
click to toggle source
# File lib/bundler/source/path.rb, line 32 def remote! @allow_remote = true end
specs()
click to toggle source
# File lib/bundler/source/path.rb, line 95 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 lib/bundler/source/path.rb, line 44 def to_lock out = "PATH\n" out << " remote: #{relative_path}\n" out << " glob: #{@glob}\n" unless @glob == DEFAULT_GLOB out << " specs:\n" end
to_s()
click to toggle source
# File lib/bundler/source/path.rb, line 51 def to_s "source at #{@path}" end