Class: Aidp::AutoUpdate::BundlerAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/aidp/auto_update/bundler_adapter.rb

Overview

Adapter for querying gem versions via Bundler

Instance Method Summary collapse

Instance Method Details

#latest_version_for(gem_name) ⇒ Gem::Version?

Get the latest version of a gem according to bundle outdated



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/aidp/auto_update/bundler_adapter.rb', line 12

def latest_version_for(gem_name)
  Aidp.log_debug("bundler_adapter", "checking_gem_version", gem: gem_name)

  # Use mise exec to ensure correct Ruby version
  stdout, stderr, status = Open3.capture3(
    "mise", "exec", "--", "bundle", "outdated", gem_name, "--parseable"
  )

  unless status.success?
    Aidp.log_debug("bundler_adapter", "bundle_outdated_failed",
      gem: gem_name,
      stderr: stderr.strip)
    return nil
  end

  # Parse bundle outdated output
  # Format: "gem_name (newest version, installed version, requested version)"
  # Example: "aidp (0.25.0, 0.24.0, >= 0)"
  parse_bundle_outdated(stdout, gem_name)
rescue => e
  Aidp.log_error("bundler_adapter", "version_check_failed",
    gem: gem_name,
    error: e.message)
  nil
end