class GemsComparator::Comparator
Public Class Methods
convert(gems)
click to toggle source
# File lib/gems_comparator/comparator.rb, line 5 def self.convert(gems) if defined?(Parallel) Parallel.map(gems, &:to_h) else gems.map(&:to_h) end end
new(before_lockfile, after_lockfile)
click to toggle source
# File lib/gems_comparator/comparator.rb, line 13 def initialize(before_lockfile, after_lockfile) @before_lockfile = before_lockfile @after_lockfile = after_lockfile end
Public Instance Methods
compare()
click to toggle source
# File lib/gems_comparator/comparator.rb, line 18 def compare gems = addition_gems + change_gems Comparator.convert(gems.sort_by(&:name)) end
Private Instance Methods
addition_gems()
click to toggle source
# File lib/gems_comparator/comparator.rb, line 38 def addition_gems names = after_gems.keys - before_gems.keys names.map { |name| new_geminfo(name) } end
after_gems()
click to toggle source
# File lib/gems_comparator/comparator.rb, line 34 def after_gems @after_gems ||= parse_lockfile(@after_lockfile) end
before_gems()
click to toggle source
# File lib/gems_comparator/comparator.rb, line 30 def before_gems @before_gems ||= parse_lockfile(@before_lockfile) end
change_gems()
click to toggle source
# File lib/gems_comparator/comparator.rb, line 43 def change_gems names = before_gems.keys.reject do |name| before_gems[name] == after_gems[name] end names.map { |name| new_geminfo(name) } end
new_geminfo(name)
click to toggle source
# File lib/gems_comparator/comparator.rb, line 50 def new_geminfo(name) GemInfo.new(name, before_gems[name].to_s, after_gems[name].to_s) end
parse_lockfile(lockfile)
click to toggle source
# File lib/gems_comparator/comparator.rb, line 25 def parse_lockfile(lockfile) parser = Bundler::LockfileParser.new(lockfile) parser.specs.map { |spec| [spec.name, spec.version] }.to_h end