# File lib/bundler/spec_set.rb, line 56 56: def [](key) 57: key = key.name if key.respond_to?(:name) 58: lookup[key].reverse 59: end
# File lib/bundler/spec_set.rb, line 61 61: def []=(key, value) 62: @specs << value 63: @lookup = nil 64: @sorted = nil 65: value 66: end
# File lib/bundler/spec_set.rb, line 16 16: def for(dependencies, skip = [], check = false, match_current_platform = false) 17: handled, deps, specs = {}, dependencies.dup, [] 18: skip << 'bundler' 19: 20: until deps.empty? 21: dep = deps.shift 22: next if handled[dep] || skip.include?(dep.name) 23: 24: spec = lookup[dep.name].find do |s| 25: match_current_platform ? 26: Gem::Platform.match(s.platform) : 27: s.match_platform(dep.__platform) 28: end 29: 30: handled[dep] = true 31: 32: if spec 33: specs << spec 34: 35: spec.dependencies.each do |d| 36: next if d.type == :development 37: d = DepProxy.new(d, dep.__platform) unless match_current_platform 38: deps << d 39: end 40: elsif check 41: return false 42: end 43: end 44: 45: if spec = lookup['bundler'].first 46: specs << spec 47: end 48: 49: check ? true : SpecSet.new(specs) 50: end
# File lib/bundler/spec_set.rb, line 80 80: def materialize(deps, missing_specs = nil) 81: materialized = self.for(deps, [], false, true).to_a 82: deps = materialized.map {|s| s.name }.uniq 83: materialized.map! do |s| 84: next s unless s.is_a?(LazySpecification) 85: s.source.dependency_names = deps if s.source.respond_to?(:dependency_names=) 86: spec = s.__materialize__ 87: if missing_specs 88: missing_specs << s unless spec 89: else 90: raise GemNotFound, "Could not find #{s.full_name} in any of the sources" unless spec 91: end 92: spec if spec 93: end 94: SpecSet.new(materialized.compact) 95: end
# File lib/bundler/spec_set.rb, line 97 97: def merge(set) 98: arr = sorted.dup 99: set.each do |s| 100: next if arr.any? { |s2| s2.name == s.name && s2.version == s.version && s2.platform == s.platform } 101: arr << s 102: end 103: SpecSet.new(arr) 104: end
# File lib/bundler/spec_set.rb, line 68 68: def sort! 69: self 70: end
# File lib/bundler/spec_set.rb, line 72 72: def to_a 73: sorted.dup 74: end
# File lib/bundler/spec_set.rb, line 113 113: def lookup 114: @lookup ||= begin 115: lookup = Hash.new { |h,k| h[k] = [] } 116: specs = @specs.sort_by do |s| 117: s.platform.to_s == 'ruby' ? "\00"" : s.platform.to_s 118: end 119: specs.reverse_each do |s| 120: lookup[s.name] << s 121: end 122: lookup 123: end 124: end
# File lib/bundler/spec_set.rb, line 108 108: def sorted 109: rake = @specs.find { |s| s.name == 'rake' } 110: @sorted ||= ([rake] + tsort).compact.uniq 111: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.