class BleedingEdge
Public Class Methods
new()
click to toggle source
# File lib/bleeding_edge.rb, line 7 def initialize @installed_gems = Array.new @fetcher = Gem::SpecFetcher.new end
Public Instance Methods
find_future_versions_for(gem)
click to toggle source
# File lib/bleeding_edge.rb, line 19 def find_future_versions_for(gem) version_filter = Gem::Requirement.create("> " + gem.installed_version) dep = Gem::Dependency.new gem.name, version_filter matching_specs = @fetcher.find_matching dep, true, true, false matching_specs.each do |spec| gem.add_future_version spec[0][1].version end puts "Found #{gem.count} versions for #{dep}" end
find_futures_for_gems()
click to toggle source
# File lib/bleeding_edge.rb, line 12 def find_futures_for_gems puts "Looking for most recent versions of installed gems for platform #{Gem.platforms.to_a}..." @installed_gems.each do |gem| find_future_versions_for(gem) end end
find_installed_gems()
click to toggle source
# File lib/bleeding_edge.rb, line 29 def find_installed_gems Gem.searcher.find_all("*").each do |gem| @installed_gems << InstalledGemFuture.new(gem) end puts "Found #{@installed_gems.size.to_s} installed gems in scope" end
output_as_html()
click to toggle source
# File lib/bleeding_edge.rb, line 37 def output_as_html File.open("bleeding-edge-report.html", "w") do |f| @installed_gems.sort! { |a,b| b.count <=> a.count} f.write File.open("report-header.html", "r").readlines @installed_gems.each do |future| f.write future.to_html end f.write File.open("report-footer.html", "r").readlines end end