Class: CleoQualityReview::TargetResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/cleo_quality_review/target_resolver.rb

Overview

Resolves target files for quality review based on git changes and configuration

Defined Under Namespace

Classes: Target

Constant Summary collapse

BASE_REF =
GitDiffBase::DEFAULT_BASE_REF

Instance Method Summary collapse

Constructor Details

#initialize(command_runner:, configuration: Configuration.load, base_ref: GitDiffBase::DEFAULT_BASE_REF) ⇒ TargetResolver

Returns a new instance of TargetResolver.

Parameters:

  • command_runner (CommandRunner)

    for executing git commands

  • configuration (Configuration) (defaults to: Configuration.load)

    file filtering configuration

  • base_ref (String) (defaults to: GitDiffBase::DEFAULT_BASE_REF)

    git ref to compare changed files against



25
26
27
28
29
# File 'lib/cleo_quality_review/target_resolver.rb', line 25

def initialize(command_runner:, configuration: Configuration.load, base_ref: GitDiffBase::DEFAULT_BASE_REF)
  @command_runner = command_runner
  @configuration = configuration
  @base_ref = base_ref || GitDiffBase::DEFAULT_BASE_REF
end

Instance Method Details

#resolve(files, changed: false) ⇒ Target

Resolve target files for quality review

Parameters:

  • files (Array<String>)

    explicit file paths

  • changed (Boolean) (defaults to: false)

    when true, filter to git-changed files only

Returns:



36
37
38
39
40
41
42
43
# File 'lib/cleo_quality_review/target_resolver.rb', line 36

def resolve(files, changed: false)
  target_files = resolve_target_files(files, changed: changed)

  Target.new(
    files: target_files,
    ruby_files: target_files,
  )
end