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 41 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 13 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 102 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 37 def cached! @allow_cached = true end
eql?(o)
click to toggle source
# File lib/bundler/source/path.rb, line 60 def eql?(o) o.instance_of?(Path) && expand(path) == expand(o.path) && version == o.version end
Also aliased as: ==
hash()
click to toggle source
# File lib/bundler/source/path.rb, line 56 def hash self.class.hash end
install(spec)
click to toggle source
# File lib/bundler/source/path.rb, line 72 def install(spec) generate_bin(spec, :disable_extensions) ["Using #{version_message(spec)} from #{to_s}", nil] 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 68 def name File.basename(expand(path).to_s) end
remote!()
click to toggle source
# File lib/bundler/source/path.rb, line 33 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 end local_specs end
to_lock()
click to toggle source
# File lib/bundler/source/path.rb, line 45 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 52 def to_s "source at #{@path}" end