Sha256: 39ad18923005047037e8ddc44f3a0b2af184bdf46ef95620590d9be82ee3d67e
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
module Grub module SpecFinder extend self def find_specs_for(gem_lines) gem_lines = Array(gem_lines) find_matching_specs_for(gem_lines) gems_to_fetch = gem_lines.select { |gem_line| gem_line.spec.nil? } fetch_specs_for(gems_to_fetch) if gems_to_fetch.any? end def find_matching_specs_for(gem_lines) gem_lines.each do |line| matching_specs = Gem::Dependency.new(line.name).matching_specs # need to find latest line.spec = matching_specs.first if matching_specs.any? end end def fetch_specs_for(gem_lines) print "Fetching gem metadata..." fetcher = Bundler::Fetcher.new(Gem.sources.first.uri) versions, _ = fetcher.send(:fetch_dependency_remote_specs, gem_lines.collect(&:name)) gem_lines.each do |gem_line| print "." gem_versions = versions.select { |v| v.first == gem_line.name } version = find_latest_version(gem_versions) gem_line.spec = fetcher.fetch_spec([gem_line.name, version]) end print "\n" end def find_latest_version(versions) versions.sort_by { |v| v[1] }.last[1] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
grub-0.0.3 | lib/grub/spec_finder.rb |