class Jira::Command::Tickets

Attributes

jql[RW]

Public Class Methods

new(jql) click to toggle source
# File lib/jira/commands/tickets.rb, line 16
def initialize(jql)
  self.jql = jql
end

Public Instance Methods

run() click to toggle source
# File lib/jira/commands/tickets.rb, line 20
def run
  return if jql.empty?
  return if metadata.empty?
  return unless metadata['errorMessages'].nil?

  if rows.empty?
    puts "There are no tickets for jql=#{jql}."
    return
  end
  render_table(header, rows)
end

Private Instance Methods

header() click to toggle source
# File lib/jira/commands/tickets.rb, line 34
def header
  [ 'Ticket', 'Assignee', 'Status', 'Summary']
end
metadata() click to toggle source
# File lib/jira/commands/tickets.rb, line 49
def metadata
  @metadata ||= api.get("search?jql=#{jql}")
end
rows() click to toggle source
# File lib/jira/commands/tickets.rb, line 38
def rows
  metadata['issues'].map do |issue|
    [
      issue['key'],
      (issue['fields']['assignee']['name'] unless issue['fields']['assignee'].nil?) || 'Unassigned',
      (issue['fields']['status']['name'] unless issue['fields']['status'].nil?) || 'Unknown',
      truncate(issue['fields']['summary'] || '', 45)
    ]
  end
end