class FindChangedFiles::BetweenRefs

Constants

GIT_MERGE_BASE_COMMAND

Attributes

base_ref[R]
diff_ref[R]

Public Class Methods

new(base_ref:, diff_ref:) click to toggle source
# File lib/find_changed_files/between_refs.rb, line 8
def initialize(base_ref:, diff_ref:)
  @base_ref = base_ref
  @diff_ref = diff_ref
end

Public Instance Methods

call() click to toggle source
# File lib/find_changed_files/between_refs.rb, line 13
def call
  differed_files(merge_base_ref, diff_ref)
end

Private Instance Methods

differed_files(from_ref, to_ref) click to toggle source
# File lib/find_changed_files/between_refs.rb, line 27
def differed_files(from_ref, to_ref)
  @differed_files ||= begin
    diff_output = `#{GIT_DIFF_COMMAND} #{from_ref} #{to_ref} #{GIT_DIFF_OPTIONS} #{REDIRECT_STDERR_TO_STDOUT}`

    raise ArgumentError.new("Bad git diff arguments; #{base_ref} #{diff_ref}") unless $CHILD_STATUS.success?

    diff_output.split("\n")
  end
end
merge_base_ref() click to toggle source
# File lib/find_changed_files/between_refs.rb, line 19
def merge_base_ref
  merge_base = `#{GIT_MERGE_BASE_COMMAND} #{base_ref} #{diff_ref} #{REDIRECT_STDERR_TO_STDOUT}`

  raise ArgumentError.new("Bad git diff arguments; #{base_ref} #{diff_ref}") unless $CHILD_STATUS.success?

  merge_base.strip
end