Class: PullRequestSummarizer::Summarizer

Inherits:
Object
  • Object
show all
Defined in:
lib/pull_request_summarizer/summarizer.rb

Defined Under Namespace

Classes: Error

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pull_request_number) ⇒ Summarizer

Returns a new instance of Summarizer.



10
11
12
# File 'lib/pull_request_summarizer/summarizer.rb', line 10

def initialize(pull_request_number)
  @pull_request_number = pull_request_number
end

Instance Attribute Details

#pull_request_numberObject (readonly)

Returns the value of attribute pull_request_number.



8
9
10
# File 'lib/pull_request_summarizer/summarizer.rb', line 8

def pull_request_number
  @pull_request_number
end

Instance Method Details

#summarizeObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/pull_request_summarizer/summarizer.rb', line 14

def summarize
  pull_request = github.pull_request(everypolitician_data_repo, pull_request_number)
  files = github.pull_request_files(everypolitician_data_repo, pull_request_number)
  popolo_before_after = FindPopoloFiles.from(files).map do |file|
    {
      path:   file[:filename],
      before: open(file[:raw_url].sub(pull_request[:head][:sha], pull_request[:base][:sha])).read,
      after:  open(file[:raw_url]).read,
    }
  end

  begin
    ReviewChanges.new(popolo_before_after).to_html
  rescue Octokit::UnprocessableEntity => e
    raise Error, "Unable to review pull request #{pull_request_number}: #{e.message}"
  end
end