class InstalledGemFuture

Attributes

gem[R]
installed_version[R]
name[R]

Public Class Methods

new(gem) click to toggle source
# File lib/installed_gem_future.rb, line 5
def initialize(gem)
  @gem = gem
  @name = gem.name
  @installed_version = gem.version.to_s
  @futures = Array.new
end

Public Instance Methods

add_future_version(version) click to toggle source
# File lib/installed_gem_future.rb, line 12
def add_future_version(version)
  @futures << version unless @futures.include? version
end
count() click to toggle source
# File lib/installed_gem_future.rb, line 16
def count
  @futures.size
end
inspect() click to toggle source
# File lib/installed_gem_future.rb, line 20
def inspect
  "#{@name} (#{@installed_version}): #{PP.pp(@futures, ' ')}" 
end
to_html() click to toggle source
# File lib/installed_gem_future.rb, line 24
def to_html
  "<tr><td class='gem'>#{@name}</td><td class='current-version'>#{@installed_version}</td><td class='versions-behind'>#{versions_behind}</td>#{futures_to_html}</tr>" 
end

Private Instance Methods

futures_to_html() click to toggle source
# File lib/installed_gem_future.rb, line 36
def futures_to_html
  html = ""
  previous_version = @installed_version
  @futures.each do |future|
    html << "<td class='#{version_change_label(previous_version, future)}'>#{future}</td>"
    previous_version = future
  end
  
  html
end
version_change_label(from_version, to_version) click to toggle source
# File lib/installed_gem_future.rb, line 47
def version_change_label(from_version, to_version)
  from_components = from_version.split(".")
  to_components = to_version.split(".")
  
  begin
    return "major" if (from_components[0].to_i < to_components[0].to_i)
    return "minor" if (from_components[1].to_i < to_components[1].to_i)
    return "build" if (from_components[2].to_i < to_components[2].to_i)
  rescue NoMethodError
    "unknown"
  end
  
  "trivial"
end
versions_behind() click to toggle source
# File lib/installed_gem_future.rb, line 30
def versions_behind
  return count if count > 0
  
  "N/a"
end