Class: Bundler::LazySpecification
- Inherits:
-
Object
- Object
- Bundler::LazySpecification
show all
- Includes:
- MatchPlatform
- Defined in:
- lib/bundler/lazy_specification.rb
Constant Summary
Constants included
from GemHelpers
GemHelpers::GENERICS, GemHelpers::GENERIC_CACHE
Instance Attribute Summary collapse
Instance Method Summary
collapse
#match_platform
Methods included from GemHelpers
#generic
Constructor Details
#initialize(name, version, platform, source = nil) ⇒ LazySpecification
12
13
14
15
16
17
18
19
|
# File 'lib/bundler/lazy_specification.rb', line 12
def initialize(name, version, platform, source = nil)
@name = name
@version = version
@dependencies = []
@platform = platform
@source = source
@specification = nil
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &blk) ⇒ Object
74
75
76
77
78
79
80
|
# File 'lib/bundler/lazy_specification.rb', line 74
def method_missing(method, *args, &blk)
raise "LazySpecification has not been materialized yet (calling :#{method} #{args.inspect})" unless @specification
return super unless respond_to?(method)
@specification.send(method, *args, &blk)
end
|
Instance Attribute Details
#dependencies ⇒ Object
Returns the value of attribute dependencies.
9
10
11
|
# File 'lib/bundler/lazy_specification.rb', line 9
def dependencies
@dependencies
end
|
#name ⇒ Object
Returns the value of attribute name.
9
10
11
|
# File 'lib/bundler/lazy_specification.rb', line 9
def name
@name
end
|
Returns the value of attribute platform.
9
10
11
|
# File 'lib/bundler/lazy_specification.rb', line 9
def platform
@platform
end
|
#source ⇒ Object
Returns the value of attribute source.
10
11
12
|
# File 'lib/bundler/lazy_specification.rb', line 10
def source
@source
end
|
#source_uri ⇒ Object
Returns the value of attribute source_uri.
10
11
12
|
# File 'lib/bundler/lazy_specification.rb', line 10
def source_uri
@source_uri
end
|
#version ⇒ Object
Returns the value of attribute version.
9
10
11
|
# File 'lib/bundler/lazy_specification.rb', line 9
def version
@version
end
|
Instance Method Details
#==(other) ⇒ Object
29
30
31
|
# File 'lib/bundler/lazy_specification.rb', line 29
def ==(other)
identifier == other.identifier
end
|
#__materialize__ ⇒ Object
52
53
54
|
# File 'lib/bundler/lazy_specification.rb', line 52
def __materialize__
@specification = source.specs.search(Gem::Dependency.new(name, version)).last
end
|
#full_name ⇒ Object
21
22
23
24
25
26
27
|
# File 'lib/bundler/lazy_specification.rb', line 21
def full_name
if platform == Gem::Platform::RUBY or platform.nil? then
"#{@name}-#{@version}"
else
"#{@name}-#{@version}-#{platform}"
end
end
|
#identifier ⇒ Object
64
65
66
|
# File 'lib/bundler/lazy_specification.rb', line 64
def identifier
@__identifier ||= [name, version, source, platform, dependencies].hash
end
|
#respond_to?(*args) ⇒ Boolean
56
57
58
|
# File 'lib/bundler/lazy_specification.rb', line 56
def respond_to?(*args)
super || @specification.respond_to?(*args)
end
|
#satisfies?(dependency) ⇒ Boolean
33
34
35
|
# File 'lib/bundler/lazy_specification.rb', line 33
def satisfies?(dependency)
@name == dependency.name && dependency.requirement.satisfied_by?(Gem::Version.new(@version))
end
|
#to_lock ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/bundler/lazy_specification.rb', line 37
def to_lock
if platform == Gem::Platform::RUBY or platform.nil?
out = " #{name} (#{version})\n"
else
out = " #{name} (#{version}-#{platform})\n"
end
dependencies.sort_by {|d| d.to_s }.each do |dep|
next if dep.type == :development
out << " #{dep.to_lock}\n"
end
out
end
|
#to_s ⇒ Object
60
61
62
|
# File 'lib/bundler/lazy_specification.rb', line 60
def to_s
@__to_s ||= "#{name} (#{version})"
end
|