class Bundler::Resolver::SpecGroup
Attributes
activated[R]
required_by[R]
Public Class Methods
new(a)
click to toggle source
Calls superclass method
# File lib/bundler/resolver.rb, line 75 def initialize(a) super @required_by = [] @activated = [] @dependencies = nil @specs = {} ALL.each do |p| @specs[p] = reverse.find {|s| s.match_platform(p) } end end
Public Instance Methods
activate_platform(platform)
click to toggle source
# File lib/bundler/resolver.rb, line 108 def activate_platform(platform) unless @activated.include?(platform) if for?(platform, nil) @activated << platform return __dependencies[platform] || [] end end [] end
dependencies_for_activated_platforms()
click to toggle source
# File lib/bundler/resolver.rb, line 144 def dependencies_for_activated_platforms @activated.map {|p| __dependencies[p] }.flatten end
for?(platform, required_ruby_version)
click to toggle source
# File lib/bundler/resolver.rb, line 130 def for?(platform, required_ruby_version) if spec = @specs[platform] if required_ruby_version && spec.respond_to?(:required_ruby_version) && spec_required_ruby_version = spec.required_ruby_version spec_required_ruby_version.satisfied_by?(required_ruby_version) else true end end end
initialize_copy(o)
click to toggle source
Calls superclass method
# File lib/bundler/resolver.rb, line 87 def initialize_copy(o) super @required_by = o.required_by.dup @activated = o.activated.dup end
name()
click to toggle source
# File lib/bundler/resolver.rb, line 118 def name @name ||= first.name end
platforms_for_dependency_named(dependency)
click to toggle source
# File lib/bundler/resolver.rb, line 148 def platforms_for_dependency_named(dependency) __dependencies.select {|_, deps| deps.map(&:name).include? dependency }.keys end
source()
click to toggle source
# File lib/bundler/resolver.rb, line 126 def source @source ||= first.source end
to_s()
click to toggle source
# File lib/bundler/resolver.rb, line 140 def to_s "#{name} (#{version})" end
to_specs()
click to toggle source
# File lib/bundler/resolver.rb, line 93 def to_specs specs = {} @activated.each do |p| next unless s = @specs[p] platform = generic(Gem::Platform.new(s.platform)) next if specs[platform] lazy_spec = LazySpecification.new(name, version, platform, source) lazy_spec.dependencies.replace s.dependencies specs[platform] = lazy_spec end specs.values end
version()
click to toggle source
# File lib/bundler/resolver.rb, line 122 def version @version ||= first.version end
Private Instance Methods
__dependencies()
click to toggle source
# File lib/bundler/resolver.rb, line 154 def __dependencies @dependencies ||= begin dependencies = {} ALL.each do |p| next unless spec = @specs[p] dependencies[p] = [] spec.dependencies.each do |dep| next if dep.type == :development dependencies[p] << DepProxy.new(dep, p) end end dependencies end end