class JiraCommand::Prompt::Base

Attributes

config[W]
prompt[W]

Public Class Methods

new() click to toggle source
# File lib/jira_command/prompt/base.rb, line 12
def initialize
  @prompt = TTY::Prompt.new
  @config = JiraCommand::Config.new.read
end

Public Instance Methods

select_board(message: 'Please select board', refresh: false) click to toggle source
# File lib/jira_command/prompt/base.rb, line 17
def select_board(message: 'Please select board', refresh: false)
  baord_list = if @config[:boards].nil? || refresh
                 agile_board = JiraCommand::Jira::Board.new(@config)
                 agile_board.list
               else
                 @config[:boards]
               end

  @prompt.select(message) do |menu|
    baord_list.each do |item|
      menu.choice name: item[:name], value: item[:id]
    end
  end
end
select_issue_type(message:, refresh: false) click to toggle source
# File lib/jira_command/prompt/base.rb, line 32
def select_issue_type(message:, refresh: false)
  issue_types = if @config[:issue_types].nil? || refresh
                  jira_issue_type = JiraCommand::Jira::IssueType.new(@config)
                  jira_issue_type.list
                else
                  @config[:issue_types]
                end

  @prompt.select(message) do |menu|
    issue_types.each do |item|
      menu.choice name: item[:name], value: { id: item[:id], name: item[:name] }
    end
  end
end
select_project(message:, refresh: false) click to toggle source
# File lib/jira_command/prompt/base.rb, line 47
def select_project(message:, refresh: false)
  projects = if @config[:projects].nil? || refresh
               jira_project = JiraCommand::Jira::Project.new(@config)
               jira_project.list
             else
               @config[:projects]
             end

  @prompt.select(message) do |menu|
    projects.each do |item|
      menu.choice name: item[:name], value: { id: item[:id], key: item[:key] }
    end
  end
end
select_sprint(message: 'Please select sprint:', board_id:, state: 'active,future') click to toggle source
# File lib/jira_command/prompt/base.rb, line 83
def select_sprint(message: 'Please select sprint:', board_id:, state: 'active,future')
  jira_sprint = JiraCommand::Jira::Sprint.new(@config)
  res = jira_sprint.list(
    board_id: board_id,
    query: { state: state }
  )

  @prompt.select(message) do |menu|
    res.each do |item|
      menu.choice name: item[:name], value: item[:id]
    end
  end
end
select_user(message:, project_key: nil, refresh: false, additional: []) click to toggle source
# File lib/jira_command/prompt/base.rb, line 62
def select_user(message:,
                project_key: nil,
                refresh: false,
                additional: [])
  user_list = if @config[:users].nil? || refresh
                user_api = JiraCommand::Jira::User.new(@config)
                user_api.all_list(project: project_key)
              else
                @config[:users]
              end

  @prompt.select(message) do |menu|
    additional.each do |item|
      menu.choice name: item[:name], value: item[:account_id]
    end
    user_list.each do |item|
      menu.choice name: item[:name], value: item[:account_id]
    end
  end
end