class JiraCommand::Command::List

Public Instance Methods

all() click to toggle source
# File lib/jira_command/command/list.rb, line 19
def all
  jql = []
  jql << 'sprint in openSprints()' unless options['current'].nil?
  jql << 'status not in (resolved)' unless options['unresolved'].nil?

  config = JiraCommand::Config.new.read
  list = JiraCommand::Jira::List.new(config)
  issues_list = list.list({ jql: jql.join('&') })
  show_in_console(config[:jira_url], issues_list['issues'])
end
my() click to toggle source
# File lib/jira_command/command/list.rb, line 33
def my
  jql = ['assignee=currentUser()']
  jql << 'sprint in openSprints()' unless options['current'].nil?
  jql << 'status not in (resolved)' unless options['unresolved'].nil?

  config = JiraCommand::Config.new.read
  list = JiraCommand::Jira::List.new(config)
  issues_list = list.list({ fields: 'id,key,status,issuetype,assignee,summary',
                            jql: jql.join('&') })

  show_in_console(config[:jira_url], issues_list['issues'])
end
without_epic() click to toggle source
# File lib/jira_command/command/list.rb, line 47
def without_epic
  config = JiraCommand::Config.new.read
  agile_epic = JiraCommand::Jira::Epic.new(config)

  jql = ["key in (#{agile_epic.issue_key_without_epic.join(', ')})"]

  list = JiraCommand::Jira::List.new(config)

  issues_list = list.list({ fields: 'id,key,status,issuetype,assignee,summary',
                            jql: jql.join('&') })

  show_in_console(config[:jira_url], issues_list['issues'])
end

Private Instance Methods

show_in_console(jira_url, issues) click to toggle source
# File lib/jira_command/command/list.rb, line 63
def show_in_console(jira_url, issues)
  issue_list = issues.map do |issue|
    { key: issue['key'],
      summary: issue['fields']['summary'],
      assignee: issue['fields']['assignee'].nil? ? 'not assinged' : issue['fields']['assignee']['displayName'],
      type: issue['fields']['issuetype']['name'],
      status: issue['fields']['status']['name'],
      link: jira_url + 'browse/' + issue['key'] }
  end

  table = Terminal::Table.new
  table.headings = issue_list.first.keys
  table.rows = issue_list.sort_by { |data| "#{data['status']}-#{data['key']}-#{data['type']}" }.map(&:values)

  puts table
end