class Gemdiff::OutdatedGem
Constants
- LIST_NO_V
gems that tag releases with tag names like 1.2.3 keep it alphabetical
Attributes
name[R]
new_version[R]
old_version[R]
Public Class Methods
new(name, old_version = nil, new_version = nil)
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 37 def initialize(name, old_version = nil, new_version = nil) @name = find_name(name) set_versions old_version, new_version end
Public Instance Methods
commits_url()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 70 def commits_url clean_url "#{repo}/commits/main" end
compare()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 90 def compare open_url(compare_url) if repo? end
compare_message()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 74 def compare_message "#{name}: #{new_version} > #{old_version}" end
compare_url()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 78 def compare_url clean_url "#{repo}/compare/#{compare_part}" end
load_bundle_versions()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 50 def load_bundle_versions outdated_gem = BundleInspector.new.get(@name) return false if outdated_gem.nil? @old_version ||= outdated_gem.old_version @new_version ||= outdated_gem.new_version true end
main()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 82 def main open_url(commits_url) if repo? end
missing_versions?()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 46 def missing_versions? @old_version.nil? || @new_version.nil? end
open()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 94 def open open_url(repo) if repo? end
releases()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 86 def releases open_url(releases_url) if repo? end
releases_url()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 66 def releases_url clean_url "#{repo}/releases" end
repo()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 58 def repo @repo ||= RepoFinder.github_url(@name) end
repo?()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 62 def repo? repo end
set_versions(v_old, v_new)
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 42 def set_versions(v_old, v_new) @old_version, @new_version = old_new(v_old, v_new) end
Private Instance Methods
clean_url(url)
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 106 def clean_url(url) uri = URI.parse(url) uri.path.gsub! %r{/+}, "/" uri.to_s end
compare_part()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 118 def compare_part if compare_type == :no_v "#{old_version}...#{new_version}" else # if the new version is not a number, assume it is a branch name # and drop the 'v' prefix = (new_version[0] =~ /^[0-9]/) == 0 ? "v" : "" "v#{old_version}...#{prefix}#{new_version}" end end
compare_type()
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 129 def compare_type if LIST_NO_V.include?(@name) :no_v else :default end end
find_name(name)
click to toggle source
When “.”, use the name of the current directory
# File lib/gemdiff/outdated_gem.rb, line 101 def find_name(name) return File.basename(Dir.getwd) if name == "." name end
old_new(v_old, v_new)
click to toggle source
swap versions if needed
# File lib/gemdiff/outdated_gem.rb, line 138 def old_new(v_old, v_new) return [v_old, v_new] unless v_old && v_new if v_old == "main" || (Gem::Version.new(v_old) > Gem::Version.new(v_new)) [v_new, v_old] else [v_old, v_new] end rescue ArgumentError [v_old, v_new] end
open_url(url)
click to toggle source
# File lib/gemdiff/outdated_gem.rb, line 112 def open_url(url) Launchy.open(url) do |exception| warn "Could not open #{url} because #{exception}" end end