class Lita::Handlers::JiraIssues
Public Instance Methods
build_attachment(text)
click to toggle source
build the attachment object for slack
# File lib/lita/handlers/jira_issues.rb, line 65 def build_attachment(text) Lita::Adapters::Slack::Attachment.new(text, { :color => 'danger', :title => 'Recently mentioned defects', :thumb_url => 'http://i.imgur.com/Z5HdCsT.png', }) end
build_issue_link(response)
click to toggle source
build a link to ratus1 here
# File lib/lita/handlers/jira_issues.rb, line 18 def build_issue_link(response) Lita.logger.warn "triggered " # don't respond to own messages -- why does this happen? if response.user.name == Lita.config.robot.name Lita.logger.warn "received message from myself, ignoring..." return end visible_issues = load_issues(response.matches.flatten) Lita.logger.info("visible_issues count: #{visible_issues.length}") if visible_issues.any? case robot.config.robot.adapter when :slack target = response.message.source.room_object || response.message.source.user urls = format_urls_for_slack(visible_issues) robot.chat_service.send_attachment(target, build_attachment(urls.join(', '))) else response.reply(render_template('issue', issue: visible_issues.first, url: visible_issues.first.url)) end visible_issues.map(&:mentioned!) end end
format_url(issue)
click to toggle source
# File lib/lita/handlers/jira_issues.rb, line 50 def format_url(issue) "<#{issue.url}|#{issue.name}>" end
format_urls_for_slack(issues)
click to toggle source
# File lib/lita/handlers/jira_issues.rb, line 42 def format_urls_for_slack(issues) links = [] issues.each do |issue| links << format_url(issue) end links end
load_issues(issue_list)
click to toggle source
# File lib/lita/handlers/jira_issues.rb, line 54 def load_issues(issue_list) links = [] issue_list.each do |issue| jira_issue = JiraIssue.new(issue, redis) Lita.logger.info "ISSUE #{jira_issue.name} mention status #{jira_issue.mentioned_recently?}" links << jira_issue unless jira_issue.mentioned_recently? end links end