Class: BundleSafeUpdate::AuditChecker

Inherits:
Object
  • Object
show all
Defined in:
lib/bundle_safe_update/audit_checker.rb

Defined Under Namespace

Classes: AuditResult, Vulnerability

Constant Summary collapse

AUDIT_COMMAND =
%w[bundle audit check --update].freeze

Instance Method Summary collapse

Constructor Details

#initialize(executor: nil) ⇒ AuditChecker

Returns a new instance of AuditChecker.



13
14
15
# File 'lib/bundle_safe_update/audit_checker.rb', line 13

def initialize(executor: nil)
  @executor = executor || method(:execute_command)
end

Instance Method Details

#audit_available?Boolean

Returns:

  • (Boolean)


24
25
26
27
28
29
30
31
# File 'lib/bundle_safe_update/audit_checker.rb', line 24

def audit_available?
  Bundler.with_unbundled_env do
    _stdout, _stderr, status = Open3.capture3('bundle', 'audit', '--version')
    status.success?
  end
rescue Errno::ENOENT
  false
end

#checkObject



17
18
19
20
21
22
# File 'lib/bundle_safe_update/audit_checker.rb', line 17

def check
  return unavailable_result unless audit_available?

  stdout, stderr, status = @executor.call(AUDIT_COMMAND)
  parse_result(stdout, stderr, status)
end