Module: JiraRefParser

Defined in:
lib/jira_ref_parser.rb,
lib/jira_ref_parser/version.rb

Constant Summary collapse

RefKeywords =

keywords used to reference issues

%w(refs references issueid)
FixKeywords =

keywords used to fix issues

%w(fixes closes)
KeywordRegex =
(RefKeywords + FixKeywords).join("|")
IssueIdRegex =
'[A-Z]+-\d+'
IssueDelimeterRegex =
'[\s,;&]+'
IssueReferencesRegex =
/(?:[\s\(\[,-]|^)(#{KeywordRegex})[\s:]+(#?#{IssueIdRegex}(?:#{IssueDelimeterRegex}#?#{IssueIdRegex})*)(?=[[:punct:]]|\s|<|$)/i
VERSION =
"1.0.1"

Class Method Summary collapse

Class Method Details

.scan_message_for_issue_ids(message) ⇒ Object

returns an array of [issue_id, for_fix_boolean], which might be empty



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/jira_ref_parser.rb', line 14

def self.scan_message_for_issue_ids(message)
  results = []
  message.scan(IssueReferencesRegex) do |keyword, issue_ids|
    for_fix = FixKeywords.include?(keyword.downcase)
    issue_ids.scan(/#?(#{IssueIdRegex})/) do |issue_id|
      issue_id = issue_id[0]
      results << [issue_id, for_fix]
    end
  end

  results
end