Module: Terjira::OptionSelector
- Defined in:
- lib/terjira/option_support/option_selector.rb
Instance Method Summary collapse
- #select_assignee ⇒ Object
- #select_board(type = nil) ⇒ Object
- #select_issue_status ⇒ Object
- #select_issuetype ⇒ Object
- #select_priority ⇒ Object
- #select_project ⇒ Object
- #select_resolution ⇒ Object
- #select_sprint ⇒ Object
- #write_comment ⇒ Object
- #write_description ⇒ Object
- #write_epic_name ⇒ Object
- #write_epiclink_key ⇒ Object
- #write_parent_issue_key ⇒ Object
- #write_summary ⇒ Object
Instance Method Details
#select_assignee ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/terjira/option_support/option_selector.rb', line 42 def select_assignee fetch(:assignee) do users = fetch(:users) do if issue = get(:issue) Client::User.assignables_by_issue(issue) elsif board = get(:board) Client::User.assignables_by_board(board) elsif sprint = get(:sprint) Client::User.assignables_by_sprint(sprint) else users = Client::User.assignables_by_project(select_project) end end option_prompt.select('Choose assignee?', per_page: per_page(users)) do || users.each { |user| .choice user_choice_title(user), user } end end end |
#select_board(type = nil) ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/terjira/option_support/option_selector.rb', line 19 def select_board(type = nil) fetch(:board) do boards = fetch(:boards) { Client::Board.all(type: type) } option_prompt.select('Choose board?', per_page: per_page(boards)) do || boards.sort_by(&:id).each do |board| .choice "#{board.key_value} - #{board.name}", board end end end end |
#select_issue_status ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/terjira/option_support/option_selector.rb', line 79 def select_issue_status fetch(:status) do statuses = fetch(:statuses) do project = if issue = get(:issue) if issue.respond_to?(:project) issue.project else set(:issue, Client::Issue.find(issue)).project end else select_project end Client::Status.all(project) end option_prompt.select('Choose status?') do || statuses.each do |status| .choice status.name, status end end end end |
#select_issuetype ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/terjira/option_support/option_selector.rb', line 62 def select_issuetype fetch(:issuetype) do project = get(:issue).try(:project).try(:key) project ||= select_project if project.is_a? String project = Client::Project.find(project) set(:project, project) end option_prompt.select('Choose issue type?') do || project.issuetypes.each do |issuetype| .choice issuetype.name, issuetype end end end end |
#select_priority ⇒ Object
102 103 104 105 106 107 108 109 110 111 |
# File 'lib/terjira/option_support/option_selector.rb', line 102 def select_priority fetch(:priority) do priorities = fetch(:priorities) { Terjira::Client::Priority.all } option_prompt.select('Choose priority?') do || priorities.each do |priority| .choice priority.name, priority end end end end |
#select_project ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/terjira/option_support/option_selector.rb', line 10 def select_project fetch :project do projects = fetch(:projects) { Client::Project.all } option_prompt.select('Choose project?', per_page: per_page(projects)) do || projects.each { |project| .choice project_choice_title(project), project } end end end |
#select_resolution ⇒ Object
113 114 115 116 117 118 119 120 121 122 |
# File 'lib/terjira/option_support/option_selector.rb', line 113 def select_resolution fetch(:resolution) do resolutions = fetch(:resolutions) { Terjira::Client::Resolution.all } option_prompt.select('Choose resolution?') do || resolutions.each do |resolution| .choice resolution.name, resolution end end end end |
#select_sprint ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/terjira/option_support/option_selector.rb', line 30 def select_sprint fetch(:sprint) do board = select_board('scrum') sprints = fetch(:sprints) { Client::Sprint.all(board) } option_prompt.select('Choose sprint?') do || sort_sprint_by_state(sprints).each do |sprint| .choice sprint_choice_title(sprint), sprint end end end end |
#write_comment ⇒ Object
134 135 136 137 138 139 |
# File 'lib/terjira/option_support/option_selector.rb', line 134 def write_comment fetch(:comment) do comment = option_prompt.multiline("Comment? (Return empty line for finish)\n") comment.join("") if comment end end |
#write_description ⇒ Object
141 142 143 144 145 146 |
# File 'lib/terjira/option_support/option_selector.rb', line 141 def write_description fetch(:description) do desc = option_prompt.multiline("Description? (Return empty line for finish)\n") desc.join("") if desc end end |
#write_epic_name ⇒ Object
130 131 132 |
# File 'lib/terjira/option_support/option_selector.rb', line 130 def write_epic_name option_prompt.ask('Epic name?') end |
#write_epiclink_key ⇒ Object
124 125 126 127 128 |
# File 'lib/terjira/option_support/option_selector.rb', line 124 def write_epiclink_key fetch(:epiclink) do option_prompt.ask('Epic key?') end end |
#write_parent_issue_key ⇒ Object
152 153 154 |
# File 'lib/terjira/option_support/option_selector.rb', line 152 def write_parent_issue_key fetch(:parent) { option_prompt.ask('Parent issue key?') } end |
#write_summary ⇒ Object
148 149 150 |
# File 'lib/terjira/option_support/option_selector.rb', line 148 def write_summary fetch(:summary) { option_prompt.ask('Summary?') } end |