Class: Bundler::Source::Path
Defined Under Namespace
Classes: Installer
Constant Summary
collapse
- DEFAULT_GLOB =
"{,*,*/*}.gemspec"
Instance Attribute Summary collapse
#checksum_store, #dependency_names
Class Method Summary
collapse
Instance Method Summary
collapse
#add_dependency_names, #can_lock?, #dependency_names_to_double_check, #double_check_for, #extension_cache_path, #identifier, #include?, #inspect, #local!, #local_only!, #path?, #spec_names, #unmet_deps, #version_message
Constructor Details
#initialize(options) ⇒ Path
Returns a new instance of Path.
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/bundler/source/path.rb', line 16
def initialize(options)
@checksum_store = Checksum::Store.new
@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"]
@original_path = @path
end
|
Instance Attribute Details
#name ⇒ Object
81
82
83
|
# File 'lib/bundler/source/path.rb', line 81
def name
File.basename(expanded_path.to_s)
end
|
#options ⇒ Object
Returns the value of attribute options.
8
9
10
|
# File 'lib/bundler/source/path.rb', line 8
def options
@options
end
|
#path ⇒ Object
Returns the value of attribute path.
8
9
10
|
# File 'lib/bundler/source/path.rb', line 8
def path
@path
end
|
#root_path ⇒ Object
Returns the value of attribute root_path.
8
9
10
|
# File 'lib/bundler/source/path.rb', line 8
def root_path
@root_path
end
|
#version ⇒ Object
Returns the value of attribute version.
10
11
12
|
# File 'lib/bundler/source/path.rb', line 10
def version
@version
end
|
Class Method Details
.from_lock(options) ⇒ Object
54
55
56
|
# File 'lib/bundler/source/path.rb', line 54
def self.from_lock(options)
new(options.merge("path" => options.delete("remote")))
end
|
Instance Method Details
#app_cache_dirname ⇒ Object
119
120
121
|
# File 'lib/bundler/source/path.rb', line 119
def app_cache_dirname
name
end
|
#cache(spec, custom_path = nil) ⇒ Object
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# File 'lib/bundler/source/path.rb', line 93
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! ⇒ Object
49
50
51
52
|
# File 'lib/bundler/source/path.rb', line 49
def cached!
@local_specs = nil
@allow_cached = true
end
|
#eql?(other) ⇒ Boolean
Also known as:
==
73
74
75
76
77
|
# File 'lib/bundler/source/path.rb', line 73
def eql?(other)
return unless other.class == self.class
expanded_original_path == other.expanded_original_path &&
version == other.version
end
|
#expanded_original_path ⇒ Object
127
128
129
|
# File 'lib/bundler/source/path.rb', line 127
def expanded_original_path
@expanded_original_path ||= expand(original_path)
end
|
#hash ⇒ Object
69
70
71
|
# File 'lib/bundler/source/path.rb', line 69
def hash
[self.class, expanded_path, version].hash
end
|
#install(spec, options = {}) ⇒ Object
85
86
87
88
89
90
91
|
# File 'lib/bundler/source/path.rb', line 85
def install(spec, options = {})
using_message = "Using #{version_message(spec, options[:previous_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 end
|
#local_specs ⇒ Object
107
108
109
|
# File 'lib/bundler/source/path.rb', line 107
def local_specs(*)
@local_specs ||= load_spec_files
end
|
#remote! ⇒ Object
44
45
46
47
|
# File 'lib/bundler/source/path.rb', line 44
def remote!
@local_specs = nil
@allow_remote = true
end
|
#root ⇒ Object
123
124
125
|
# File 'lib/bundler/source/path.rb', line 123
def root
Bundler.root
end
|
#specs ⇒ Object
111
112
113
114
115
116
117
|
# File 'lib/bundler/source/path.rb', line 111
def specs
if has_app_cache?
@path = app_cache_path
@expanded_path = nil end
local_specs
end
|
#to_lock ⇒ Object
58
59
60
61
62
63
|
# File 'lib/bundler/source/path.rb', line 58
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 ⇒ Object
65
66
67
|
# File 'lib/bundler/source/path.rb', line 65
def to_s
"source at `#{@path}`"
end
|