class Danger::Suggester::Hunk

Public Class Methods

new(hunk) click to toggle source

@param [GitDiff::Hunk] hunk

# File lib/danger/suggester/hunk.rb, line 8
def initialize(hunk)
  @hunk = hunk
end

Public Instance Methods

changes() click to toggle source

@return [Array<Danger::Suggester::Change>]

# File lib/danger/suggester/hunk.rb, line 13
def changes
  chunks_without_context.map do |chunk|
    ::Danger::Suggester::Change.new(chunk)
  end
end
chunks() click to toggle source

@return [Array<Array<GitDiff::Line::Context>>]

# File lib/danger/suggester/hunk.rb, line 20
def chunks
  @hunk.lines.chunk_while do |a, b|
    a.instance_of?(::GitDiff::Line::Context) && b.instance_of?(::GitDiff::Line::Context) ||
      a.instance_of?(::GitDiff::Line::Deletion) && b.instance_of?(::GitDiff::Line::Deletion) ||
      a.instance_of?(::GitDiff::Line::Deletion) && b.instance_of?(::GitDiff::Line::Addition) ||
      a.instance_of?(::GitDiff::Line::Addition) && b.instance_of?(::GitDiff::Line::Addition)
  end
end
chunks_without_context() click to toggle source

@return [Array<Array<GitDiff::Line::Context>>]

# File lib/danger/suggester/hunk.rb, line 30
def chunks_without_context
  chunks.reject do |chunk|
    chunk.first.instance_of?(::GitDiff::Line::Context)
  end
end