class Jira::Command::All

Public Instance Methods

run() click to toggle source
# File lib/jira/commands/all.rb, line 14
def run
  if tickets.empty?
    puts 'No tickets'
    return
  end
  return if json.empty?
  return unless errors.empty?
  render_table(header, rows)
end

Private Instance Methods

branches() click to toggle source
# File lib/jira/commands/all.rb, line 66
def branches
  `git branch`.strip.split("\n")
end
errors() click to toggle source
# File lib/jira/commands/all.rb, line 41
def errors
  @errors ||= (json['errorMessages'] || []).join('. ')
end
header() click to toggle source
# File lib/jira/commands/all.rb, line 26
def header
  [ 'Ticket', 'Assignee', 'Status', 'Summary' ]
end
json() click to toggle source
# File lib/jira/commands/all.rb, line 45
def json
  @json ||= api.get "search", params: params
end
params() click to toggle source
# File lib/jira/commands/all.rb, line 49
def params
  {
    jql: "key in (#{tickets.join(',')})"
  }
end
rows() click to toggle source
# File lib/jira/commands/all.rb, line 30
def rows
  json['issues'].map do |issue|
    [
      issue['key'],
      issue['fields']['assignee']['name'] || 'Unassigned',
      issue['fields']['status']['name'] || 'Unknown',
      truncate(issue['fields']['summary'], 45)
    ]
  end
end
tickets() click to toggle source
# File lib/jira/commands/all.rb, line 55
def tickets
  @tickets ||= (
    tickets = []
    branches.each do |branch|
      ticket = branch.delete('*').strip
      tickets << ticket if Jira::Core.ticket?(ticket, false)
    end
    tickets
  )
end