class TimeLogRobot::JIRA::IssueKeyParser

Constants

ISSUE_KEY_REGEX

Public Class Methods

parse(entry) click to toggle source
# File lib/time_log_robot/jira/issue_key_parser.rb, line 7
def parse(entry)
  get_key_from_description(entry.description) ||
  get_key_from_project(entry.project_name) ||
  get_key_from_key_mapping(entry.description)
end

Private Class Methods

default_keymap_file_path() click to toggle source
# File lib/time_log_robot/jira/issue_key_parser.rb, line 39
def default_keymap_file_path
  path = File.join(ENV['HOME'], '.time_log_robot_mapping.yml')
  return path if File.file?(path)
  File.new(path, "w+").path
end
get_key_from_description(description) click to toggle source
# File lib/time_log_robot/jira/issue_key_parser.rb, line 15
def get_key_from_description(description)
  description.match(ISSUE_KEY_REGEX).to_a[1]
end
get_key_from_key_mapping(description) click to toggle source
# File lib/time_log_robot/jira/issue_key_parser.rb, line 23
def get_key_from_key_mapping(description)
  if found_key = mappings.keys.find { |key| description.include?(key) }
    mappings[found_key]
  end
end
get_key_from_project(project_name) click to toggle source
# File lib/time_log_robot/jira/issue_key_parser.rb, line 19
def get_key_from_project(project_name)
  project_name.match(ISSUE_KEY_REGEX).to_a[1]
end
keymap_file_path() click to toggle source
# File lib/time_log_robot/jira/issue_key_parser.rb, line 35
def keymap_file_path
  ENV['MAPPING_FILE_PATH'] || default_keymap_file_path
end
mappings() click to toggle source
# File lib/time_log_robot/jira/issue_key_parser.rb, line 29
def mappings
  YAML.load_file(keymap_file_path) || {}
rescue Errno::ENOENT
  {}
end