class Worktree::TabCompletion::BranchCompletion
Constants
- JIRA_ISSUE_ID_REGEX
- JIRA_ISSUE_ID_REGEX_TEMPLATE
Public Class Methods
new(compl)
click to toggle source
# File lib/worktree/tab_completion/branch_completion.rb, line 11 def initialize(compl) @compl = compl end
Public Instance Methods
list()
click to toggle source
# File lib/worktree/tab_completion/branch_completion.rb, line 15 def list issue_id = find_jira_issue_by(@compl) if issue_id jira_issue = jira_client.Issue.find(issue_id) ["#{issue_id}-#{clean_jira_summary(jira_issue)}"] else [] end end
Private Instance Methods
clean_jira_summary(jira_issue)
click to toggle source
# File lib/worktree/tab_completion/branch_completion.rb, line 41 def clean_jira_summary(jira_issue) raw_summary = jira_issue.summary raw_summary = raw_summary.strip # translate raw summary to branch name summary = raw_summary.split(' ').map(&:underscore).join('-') summary.gsub!('&&', 'and') summary.gsub!(/\(|\)/, '') # remove brackets summary.gsub!(/"|'|”|“|«|»/, '') # remove quotes summary.gsub!(/\.$/, '') # remove end period summary.gsub!(%r{/}, '-') # change back slash to minus summary.gsub!(/:|;/, '') summary end
find_jira_issue_by(comp_line)
click to toggle source
# File lib/worktree/tab_completion/branch_completion.rb, line 27 def find_jira_issue_by(comp_line) (comp_line.match(JIRA_ISSUE_ID_REGEX) || [])[0] end
jira_client()
click to toggle source
# File lib/worktree/tab_completion/branch_completion.rb, line 31 def jira_client @jira_client ||= JIRA::Client.new( username: ENV['JIRA_USERNAME'], password: ENV['JIRA_PASSWORD'], site: ENV['JIRA_SITE'], context_path: '', auth_type: :basic ) end