Class: Codebot::Formatters::PullRequest

Inherits:
Codebot::Formatter show all
Defined in:
lib/codebot/formatters/pull_request.rb

Overview

This class formats pull_request events.

Instance Attribute Summary

Attributes inherited from Codebot::Formatter

#payload

Instance Method Summary collapse

Methods inherited from Codebot::Formatter

#abbreviate, #action, #ary_to_sentence, #closed?, #extract, #format_branch, #format_dangerous, #format_event, #format_hash, #format_number, #format_repository, #format_url, #format_user, #gitlab_action, #gitlab_closed?, #gitlab_opened?, #gitlab_repository_url, #gitlab_url, #initialize, #opened?, #prettify, #repository_name, #repository_url, #sanitize, #sender_name, #shorten_url, #url

Constructor Details

This class inherits a constructor from Codebot::Formatter

Instance Method Details

#default_formatObject



29
30
31
32
# File 'lib/codebot/formatters/pull_request.rb', line 29

def default_format
  '[%<repository>s] %<sender>s %<action>s pull request #%<number>s: ' \
  '%<title>s (%<base_ref>s...%<head_title>s)'
end

#formatArray<String>

Formats IRC messages for a pull_request event.

Returns:

  • (Array<String>)

    the formatted messages



13
14
15
# File 'lib/codebot/formatters/pull_request.rb', line 13

def format
  ["#{summary}: #{format_url url}"] if opened? || closed?
end

#pull_base_labelObject



42
43
44
# File 'lib/codebot/formatters/pull_request.rb', line 42

def pull_base_label
  extract(:pull_request, :base, :label)
end

#pull_base_refObject



46
47
48
# File 'lib/codebot/formatters/pull_request.rb', line 46

def pull_base_ref
  pull_base_label.to_s.split(':').last
end

#pull_head_labelObject



50
51
52
# File 'lib/codebot/formatters/pull_request.rb', line 50

def pull_head_label
  extract(:pull_request, :head, :label)
end

#pull_head_refObject



54
55
56
# File 'lib/codebot/formatters/pull_request.rb', line 54

def pull_head_ref
  pull_head_label.to_s.split(':').last
end

#pull_head_titleObject



58
59
60
61
62
63
64
# File 'lib/codebot/formatters/pull_request.rb', line 58

def pull_head_title
  if pull_head_ref == pull_base_ref
    pull_head_ref
  else
    pull_head_label
  end
end

#pull_numberObject



34
35
36
# File 'lib/codebot/formatters/pull_request.rb', line 34

def pull_number
  extract(:pull_request, :number)
end

#pull_titleObject



38
39
40
# File 'lib/codebot/formatters/pull_request.rb', line 38

def pull_title
  extract(:pull_request, :title)
end

#summaryObject



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/codebot/formatters/pull_request.rb', line 17

def summary
  default_format % {
    repository: format_repository(repository_name),
    sender: format_user(sender_name),
    action: action,
    number: pull_number,
    title: pull_title,
    base_ref: pull_base_ref,
    head_title: pull_head_title
  }
end

#summary_urlObject



66
67
68
# File 'lib/codebot/formatters/pull_request.rb', line 66

def summary_url
  extract(:pull_request, :html_url).to_s
end