Class: Aireview::DiffFetcher

Inherits:
Object
  • Object
show all
Defined in:
lib/aireview/diff_fetcher.rb

Defined Under Namespace

Classes: Entry

Constant Summary collapse

NO_TEXT_CHANGES =
'[no text changes]'
DIFF_UNAVAILABLE =
'[diff not available]'
BINARY_DIFF =
/\ABinary files .* differ/

Instance Method Summary collapse

Constructor Details

#initialize(ignore_paths:, logger: Logger.new($stderr)) ⇒ DiffFetcher

Returns a new instance of DiffFetcher.



82
83
84
85
# File 'lib/aireview/diff_fetcher.rb', line 82

def initialize(ignore_paths:, logger: Logger.new($stderr))
  @ignore_paths = Array(ignore_paths).compact
  @logger = logger
end

Instance Method Details

#entries(changes) ⇒ Object



93
94
95
# File 'lib/aireview/diff_fetcher.rb', line 93

def entries(changes)
  Array(changes).map { |change| Entry.new(change) }
end

#filter(changes) ⇒ Object



87
88
89
90
91
# File 'lib/aireview/diff_fetcher.rb', line 87

def filter(changes)
  Array(changes).reject do |change|
    ignored_path?(change['new_path']) || ignored_path?(change['old_path'])
  end
end

#render(changes) ⇒ Object



97
98
99
# File 'lib/aireview/diff_fetcher.rb', line 97

def render(changes)
  entries(changes).map(&:render).join("\n")
end