Class: Lita::Handlers::JiraIssues

Inherits:
Handler
  • Object
show all
Defined in:
lib/lita/handlers/jira_issues.rb

Instance Method Summary collapse

Instance Method Details

#assignee(data) ⇒ Object



50
51
52
53
54
55
# File 'lib/lita/handlers/jira_issues.rb', line 50

def assignee(data)
  if assigned_to = data[:assignee]
    return ", assigned to #{assigned_to[:displayName]}"
  end
  ', unassigned'
end

#fix_version(data) ⇒ Object



61
62
63
64
65
66
67
68
# File 'lib/lita/handlers/jira_issues.rb', line 61

def fix_version(data)
  fix_versions = data[:fixVersions]
  if fix_versions and fix_versions.first
    ", fixVersion: #{fix_versions.first[:name]}"
  else
    ', fixVersion: NONE'
  end
end

#handle_key(response, key) ⇒ Object



23
24
25
26
27
28
# File 'lib/lita/handlers/jira_issues.rb', line 23

def handle_key(response, key)
  data = @jira.data_for_issue(key)
  return if data.empty?
  issue = issue_details(data)
  response.reply issue
end

#issue_details(data) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/lita/handlers/jira_issues.rb', line 30

def issue_details(data)
  key = data[:key]
  data = data[:fields]
  issue = summary(key, data)
  issue << status(data)
  issue << assignee(data)
  issue << reporter(data)
  issue << fix_version(data)
  issue << priority(data)
  issue << issue_link(key)
end


78
79
80
# File 'lib/lita/handlers/jira_issues.rb', line 78

def issue_link(key)
  "\n#{config.url}/browse/#{key}"
end

#jira_message(response) ⇒ Object



16
17
18
19
20
21
# File 'lib/lita/handlers/jira_issues.rb', line 16

def jira_message(response)
  @jira ||= JiraGateway.new(http, config)
  Set.new(response.matches).each do | key |
    handle_key(response, key)
  end
end

#priority(data) ⇒ Object



70
71
72
73
74
75
76
# File 'lib/lita/handlers/jira_issues.rb', line 70

def priority(data)
  if data[:priority]
    ", priority: #{data[:priority][:name]}" 
  else
    ""
  end
end

#reporter(data) ⇒ Object



57
58
59
# File 'lib/lita/handlers/jira_issues.rb', line 57

def reporter(data)
  ", rep. by #{data[:reporter][:displayName]}"
end

#status(data) ⇒ Object



46
47
48
# File 'lib/lita/handlers/jira_issues.rb', line 46

def status(data)
  "\nStatus: #{data[:status][:name]}"
end

#summary(key, data) ⇒ Object



42
43
44
# File 'lib/lita/handlers/jira_issues.rb', line 42

def summary(key, data)
  "[#{key}] #{data[:summary]}"
end