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
81
82
83
|
# File 'lib/bundler/source/path.rb', line 81
def name
File.basename(expanded_path.to_s)
end
|
Returns the value of attribute options.
8
9
10
|
# File 'lib/bundler/source/path.rb', line 8
def options
@options
end
|
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
|
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
|
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
|
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
|
44
45
46
47
|
# File 'lib/bundler/source/path.rb', line 44
def remote!
@local_specs = nil
@allow_remote = true
end
|
123
124
125
|
# File 'lib/bundler/source/path.rb', line 123
def root
Bundler.root
end
|
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
|
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
|
65
66
67
|
# File 'lib/bundler/source/path.rb', line 65
def to_s
"source at `#{@path}`"
end
|