class JIRADiff::Story
Attributes
description[R]
sha[R]
stories[R]
Public Class Methods
new(story)
click to toggle source
# File lib/jira_diff/story.rb, line 4 def initialize(story) unless story =~ /\w{40}|.*/ raise ArgumentError, 'story must follow "SHA|description" format' end @sha, description = story.split("|") @stories, @description = split_story description raise ArgumentError if @sha.nil? || @description.nil? end
Public Instance Methods
split_story(description)
click to toggle source
# File lib/jira_diff/story.rb, line 17 def split_story(description) raise RuntimeError, "description cannot be blank" unless description stories = [] story_pattern = /\[?(((SRMPRT|OSMCLOUD)\-\d+)|NO-JIRA)\]?[,:\-\s]?\s*(.*)$/m line = description.match(story_pattern) stories.push line ? line.captures[0] : "JIRA-NOT-FOUND" desc = (line ? line.captures[3] : description).strip # Perform recursion if there are multiple tickets in the description if desc =~ story_pattern new_story, new_desc = split_story desc stories.push new_story desc = new_desc end [stories.flatten, desc] end
subject()
click to toggle source
# File lib/jira_diff/story.rb, line 37 def subject @description.split("\n")[0].gsub(/[*:-]/, " ").strip rescue "No Description Provided" end
to_s()
click to toggle source
# File lib/jira_diff/story.rb, line 41 def to_s "[%07.07s] %-14s - %.80s" % [sha, stories.join(", "), subject] end