Class: GemCP::Tools::CompareVersions
- Defined in:
- lib/gemcp/tools/compare_versions.rb
Overview
Compare dependency requirements between two versions of the same gem. Shows added, removed, and changed dependencies.
Instance Method Summary collapse
-
#call(name:, old_version:, new_version:) ⇒ Hash
MCP response.
Methods inherited from Base
Constructor Details
This class inherits a constructor from GemCP::Tools::Base
Instance Method Details
#call(name:, old_version:, new_version:) ⇒ Hash
Returns MCP response.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/gemcp/tools/compare_versions.rb', line 23 def call(name:, old_version:, new_version:) result = with_errors do = client.version(name, old_version) = client.version(name, new_version) old_deps = normalize_deps() new_deps = normalize_deps() added = (new_deps.keys - old_deps.keys).map { |n| { name: n, requirements: new_deps[n] } } removed = (old_deps.keys - new_deps.keys).map { |n| { name: n, requirements: old_deps[n] } } changed = (old_deps.keys & new_deps.keys).filter_map do |n| next if old_deps[n] == new_deps[n] { name: n, old_requirements: old_deps[n], new_requirements: new_deps[n] } end { name: name, old_version: old_version, new_version: new_version, old_ruby_version: ["ruby_version"], new_ruby_version: ["ruby_version"], dependencies: { added: added, removed: removed, changed: changed, unchanged: (old_deps.keys & new_deps.keys).count - changed.length } } end render(result) end |